我已经使用Tensorflow和TFLearn工作了几个月。我取得了一些进展。但是,我期待能够构建一个功能强大的scikit-learn类型Estimator作为TFLearn.DNN
。我可以fit
,我可以predict
,但我不能进行交叉验证,因为evaluate
对我失败了。 TensorFlow投掷:
ValueError:无法使用给定的会话来评估张量:张量图与会话图不同。
当我致电evaluate
时。我认为TFLearn API的重点是从会话管理中抽象出代码。
我已经在几个论坛上询问了我与TFLearn有过的问题,包括项目的GitHub页面。不幸的是,我没有得到任何答案。
几天前,突然间我遇到了tf.contrib.learn
命名空间。我看到这些课程和TFLearn之间有很多重叠。然后,我还找到了tf.estimator
类。
最后,我刚才发现tensorflow.contrib
子包是第三方贡献。这让我想知道原来的TFLearn是否只是被吸收到更大的TensorFlow包中。代码流向哪个方向?
我不关心我使用的内容,只要我获得了scikit-learn估算器对象的所有功能。
答案 0 :(得分:0)
我认为最好使用TensorFlow的官方子模块,如tf.data
和tf.estimator
。它们应该得到很好的维护,并且可以快速添加功能。
例如,@ mrry似乎负责tf.data
,该模块非常干净,易于使用且与tf.estimator
兼容。
模块tf.estimator
稍微不那么明确,来自tf.contrib.learn
。不要相信我,但我认为tf.estimator
将慢慢取代tf.contrib.learn
,它应该是TensorFlow的官方高级API(以及tf.keras
)。
您可以在官方blog post中找到更多信息,其中介绍了所有模块之间的关系。