1

我试图让 aLinearRegressor工作,但我收到一个似乎没有太多文档的错误。

当我做:

regressor = tf.contrib.learn.LinearRegressor(feature_columns=linear_features)

regressor.fit(input_fn=training_input_fn, steps=10000)

regressor.evaluate(input_fn=eval_input_fn)

我得到错误:

更新说明:请切换到 tf.train.get_global_step

我不确定如何进行。

我从文档中读到:

不推荐使用某些参数。它们将在 2016-12-01 之后被删除。更新说明:Estimator 通过移动到单独的类 SKCompat 与 Scikit Learn 界面分离。参数 x、y 和 batch_size 仅在 SKCompat 类中可用,Estimator 将仅接受 input_fn。转换示例:est = Estimator(...) -> est = SKCompat(Estimator(...))

但我不确定我应该改变什么,或者如何切换到全局步骤。

我尝试使用tf.estimator.LinearRegressor主要是因为我没有想法,并且做了这样的事情:

estimator = tf.estimator.LinearRegressor(feature_columns=linear_features)

estimator.train(input_fn=training_input_fn)
estimator.evaluate(input_fn=eval_input_fn)
estimator.predict(input_fn=eval_input_fn)

但是根本没有输出。

4

1 回答 1

0

更新说明:请切换到 tf.train.get_global_step

实际上,这不是错误,而是警告。正是因为您正在使用contrib包而记录了它(请参阅此讨论,简短摘要:已弃用)。

您应该切换到核心tf.estimatorAPI,其中包括所有内容:

  • tf.estimator.LinearRegressor代替tf.contrib.learn.LinearRegressor
  • tf.estimator.inputs.numpy_input_fn代替tf.contrib.learn.io.numpy_input_fn
  • tf.feature_column.numeric_column代替tf.contrib.layers.real_valued_column
  • ...

没有看到新Estimator的任何东西的原因可能是由于eval_input_fn功能。确保您指定num_epochs=1,否则它将在评估期间一次又一次地循环数据集。

于 2018-01-13T11:49:51.503 回答