拟合模型时的Tensorflow(Contrib.learn)KeyError

时间:2016-11-11 03:02:32

标签: python tensorflow

我对编码有点新,对Tensorflow来说很新,但是我已经参加了在线机器学习课程,所以我有一些背景和一个例子。

我正在使用Contrib.learn模块(?),它为用户提供了Tensorflow的scikit-learn风格体验。无论如何,我的数据集是20列的float64值,只有2000多行。每列都有名称。我用,

设置了我的feature_columns
feature_columns = []
for i in X_train.columns:
    feature_columns.append(tf.contrib.layers.real_valued_column(i, dtype=type(X_train[i][0])))

然后我用

实例化我的深度神经网络模型
classifier = learn.DNNClassifier(hidden_units=[10,10,10], 
                                 feature_columns=feature_columns, 
                                 n_classes=2)

到目前为止,这么好。然后我尝试使用我的模型,

classifier.fit(X_train, y_train, steps=100, batch_size=32)

我得到一个非常深刻的引用,最终结束,

KeyError: 'IQR'

这是我的第6个数据列的名称。

没有很多人使用Contrib.learn的例子,而且我猜测使用它的少数人并不像我一样无能为力。如果有人碰巧知道它可能指的是什么,我真的可以使用帮助,因为我基本上没有想法。如果您需要我的更多信息,或者您希望我粘贴整个Traceback,请告诉我。

谢谢你的时间!

编辑:Link to Traceback (via Pastebin)

2 个答案:

答案 0 :(得分:0)

我最终放弃了Contrib.learn并且这样做了#34;艰难的方式"使用Tensorflow的核心功能构建多层感知器。

很酷的东西!

答案 1 :(得分:0)

功能会在查找功能IQR(在feature_columns中定义)时抛出。

要使用predict,您需要执行以下操作:

predicted_values = list(m.predict(input_fn=lambda: input_fn(df_test), as_iterable=False))

input_fn是输入函数,df_test是Panda的DataFrame,具有所需的功能

希望这有帮助。