使用 tensorflow 进行预测 estimator.DNNRegressor
Making Prediction with tensorflow's estimator.DNNRegressor
我对 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(arguments) 和 regressor.evaluate(arguments) 似乎工作得很好,但预测没有。
与 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
同样,我对此很陌生,如果答案很明显,我很抱歉,但如果有人能告诉我我在这里做错了什么,我将不胜感激。
input_fn
到regressor.predict
应该是一个函数。见 definition:
input_fn: A function that constructs the features.
您需要将代码更改为:
y_pred = regressor.predict(input_fn=eval_input_fn)
我对 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(arguments) 和 regressor.evaluate(arguments) 似乎工作得很好,但预测没有。
与 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
同样,我对此很陌生,如果答案很明显,我很抱歉,但如果有人能告诉我我在这里做错了什么,我将不胜感激。
input_fn
到regressor.predict
应该是一个函数。见 definition:
input_fn: A function that constructs the features.
您需要将代码更改为:
y_pred = regressor.predict(input_fn=eval_input_fn)