我对tensorflow很新,为了学习使用它我目前正在尝试实现一个非常简单的DNNRegressor,它可以预测2D中对象的移动但我似乎无法使用预测函数。
为此我有一些输入数据 - 在以前的许多时间步骤中对象的x和y坐标。如果对象继续以相同的速度向同一方向移动,我希望输出合理估计对象的位置。
我使用的是tensorflow版本1.8.0
我的回归定义如下:
CSV_COLUMN_NAMES = ['X_0', 'X_1', 'X_2', 'X_3', 'X_4', 'Y_0', 'Y_1', 'Y_2', 'Y_3', 'Y_4', 'Y_5']
my_feature_columns = []
for key in columnNames:
my_feature_columns.append(tf.feature_column.numeric_column(key=key))
regressor = estimator.DNNRegressor(feature_columns=my_feature_columns,
label_dimension=1,
hidden_units=hidden_layers,
model_dir=MODEL_PATH,
dropout=dropout,
config=test_config)
我的输入就像预制估算器的tensorflow教程中的那个,是一个以列为关键字的字典。 可以看到此输入的示例here。
regressor.train(参数)和regressor.evaluate(参数)似乎工作正常,但预测却没有。
与tensorflow site上的代码并行,我尝试这样做:
y_pred = regressor.predict(input_fn=eval_input_fn(X_test, labels=None, batch_size=1))
似乎也有效。
我现在面临的问题是我无法从y_pred
对象中获得任何内容。
当我输入print(y_pred)
时,我得到<generator object Estimator.predict at 0x7fd9e8899888>
,这对我来说应该可以迭代但是
for elem in y_pred:
print(elem)
结果为TypeError: unsupported callable
同样,我对此很陌生,如果答案很明显,我很抱歉,如果有人能告诉我这里的错误,我将非常感激。
答案 0 :(得分:1)
input_fn
到regressor.predict
应该是一个功能。请参阅definition:
input_fn:构造特征的函数。
您需要将代码更改为:
y_pred = regressor.predict(input_fn=eval_input_fn)