1

几个月来,我一直在使用 Tensorflow 和 TFLearn。我已经取得了一些进展。但是,我希望能够将功能正常的 scikit-learn 类型 Estimator 构建为TFLearn.DNN. 我可以fit,我可以predict,但我不能做交叉验证,因为evaluate对我来说失败了。TensorFlow 正在抛出:

ValueError:无法使用给定的会话来评估张量:张量的图表与会话的图表不同。

当我打电话时evaluate。我认为 TFLearn API 的全部意义在于将会话管理等内容从我的代码中抽象出来。

我曾在多个论坛(包括项目的 GitHub 页面)上就 TFLearn 遇到的问题提出问题。不幸的是,我没有得到任何答案。

前几天,突然遇到tf.contrib.learn命名空间。我看到这些类和 TFLearn 之间有很多重叠。然后,我也找到了tf.estimator班级。

最后,我才发现tensorflow.contrib子包是第三方贡献的。这让我想知道原来的 TFLearn 是否只是被吸收到更大的 TensorFlow 包中。代码流向哪个方向?

我不在乎我使用什么,只要我获得了 scikit-learn 估计器对象的所有功能。

4

1 回答 1

0

我认为最好使用 TensorFlow 的官方子模块,例如tf.datatf.estimator. 它们应该得到很好的维护,并且可以快速添加功能。

例如,@mrry 似乎负责,tf.data并且该模块非常干净,易于使用且与tf.estimator.

该模块tf.estimator不太清楚,来自tf.contrib.learn. 不要相信我的话,但我认为它tf.estimator会慢慢取代tf.contrib.learn,它应该是 TensorFlow 的官方高级 API(连同tf.keras)。


您可以在官方博客文章中找到更多信息,其中解释了所有模块之间的关系。

TensorFlow 模块的组织

于 2018-01-05T12:02:07.733 回答