【问题标题】:Tensor Flow - Feed Data Frame to DNNClassifier For PredictionsTensorflow - 将数据帧馈送到 KNN 分类器进行预测
【发布时间】:2019-09-21 07:21:49
【问题描述】:

在通过tf.contrib.predictor.from_saved_model 重新加载数据后,我正在努力将数据提供给tf.esitimator.DNNClassifier。非常感谢您的帮助。

我找到了 thisthis 链接,但出现错误。下面是我的实现:

保存模式:

feature_spec = tf.feature_column.make_parse_example_spec(feat_cols)
export_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec)
tuned_model.export_savedmodel('./model_dir/saved_models/', export_fn)

这成功保存了模型,并包含以下信息:

INFO:tensorflow:调用model_fn。信息:张量流:完成调用 模型_fn。 INFO:tensorflow:Signatures 包含在 Classify 的导出中: ['serving_default', 'classification'] INFO:tensorflow:Signatures 包含在 Regress 的导出中:['regression'] INFO:tensorflow:Predict 导出中包含的签名:['predict'] 信息:张量流:火车出口中包含的签名:无 信息:tensorflow:Eval 导出中包含的签名:无 信息:张量流:从恢复参数 /nimble/kdalal/model_dir/model.ckpt-28917 INFO:tensorflow:Assets 添加 作图。信息:tensorflow:没有要写的资产。 INFO:tensorflow:SavedModel 写入: ./model_dir/saved_models/temp-b'1556819228'/saved_model.pb

重新加载预测:

predict_prod = tf.contrib.predictor.from_saved_model('./model_dir/saved_models/1556819228')
predict_prod(dict(X_test))

我收到以下错误:

ValueError: 在 input_dict 中有意外的键: {'DOW', 'JOB_FUNCTION', 'ACC_SIZE'、'answered_20D'、'MatchType'、'CONTACT_STATE'、'SEASONS'、 'called_20D'、'st_cb_ans_20D'、'JOB_ROLE'、'st_cb_call_20D'、 'CALL_BLOCKS'} 预期:{'inputs'}

我的X_test 是一个我正在尝试对其进行预测的数据框。

[已编辑]:

我的输入dict 如下所示:

{'JOB_ROLE': 714859     Manager-Level
 714860     Manager-Level
 714861     Manager-Level
 714862     Manager-Level
 714863    Director-Level
 Name: JOB_ROLE, dtype: object,
 'JOB_FUNCTION': 714859    Information Technology
 714860    Information Technology
 714861    Information Technology
 714862    Information Technology
 714863    Information Technology
 Name: JOB_FUNCTION, dtype: object,
 'MatchType': 714859            Work Phone
 714860            Work Phone
 714861            Work Phone
 714862            Work Phone
 714863    Account Main Phone
 Name: MatchType, dtype: object,
 'CALL_BLOCKS': 714859    17_18
 714860    17_18
 714861    17_18
 714862    17_18
 714863    17_18
 Name: CALL_BLOCKS, dtype: object,
 'ACC_SIZE': 714859    StartUps
 714860    StartUps
 714861       Small
 714862    StartUps
 714863       Small
 Name: ACC_SIZE, dtype: object,
 'CONTACT_STATE': 714859    WA
 714860    CA
 714861    CA
 714862    CA
 714863    CA
 Name: CONTACT_STATE, dtype: object,
 'SEASONS': 714859    Spring
 714860    Spring
 714861    Spring
 714862    Spring
 714863    Spring
 Name: SEASONS, dtype: object,
 'DOW': 714859    Monday
 714860    Monday
 714861    Monday
 714862    Monday
 714863    Monday
 Name: DOW, dtype: object,
 'called_20D': 714859    0.038760
 714860    0.077519
 714861    0.217054
 714862    0.046512
 714863    0.038760
 Name: called_20D, dtype: float64,
 'answered_20D': 714859    0.000000
 714860    0.086957
 714861    0.043478
 714862    0.000000
 714863    0.130435
 Name: answered_20D, dtype: float64,
 'st_cb_called_20D': 714859    0.050233
 714860    0.282496
 714861    0.282496
 714862    0.282496
 714863    0.282496
 Name: st_cb_called_20D, dtype: float64,
 'st_cb_ans_20D': 714859    0.059761
 714860    0.314741
 714861    0.314741
 714862    0.314741
 714863    0.314741
 Name: st_cb_ans_20D, dtype: float64}

我是tf 的初学者,我不知道如何将数据帧传递给模型,以便我可以调用predcit 方法并获得预测。

另外,我是否应该将我的输入数据转换为其他dtype

【问题讨论】:

  • @EdekiOkoh - 我已经编辑了我的问题。此外,当我将输入更改为 prod_predictions = predict_prod({'inputs':X_test.values}) 时,它抛出 ValueError: Cannot feed value of shape (75116, 12) for Tensor 'input_example_tensor:0',其形状为 '(?,)' i> 错误。

标签: python-3.x tensorflow machine-learning keras


【解决方案1】:

我找到了答案。请参考link 了解如何将数据馈送到导入的estimator 模型。

【讨论】:

    【解决方案2】:

    ValueError: 无法为形状为“(?,)”的张量“input_example_tensor:0”提供形状 (75116, 12) 的值

    关于这个问题,您的模型看起来要预测一次 1 项

    您只能输入一项,例如 {'inputs': X_test.values[0]}

    你可以改变模型来预测一堆项目

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 2020-11-17
      • 2019-10-04
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      相关资源
      最近更新 更多