最近我一直在研究使用TensorFlow来创建自定义的卷积神经网络(CNN),并尝试使用教程来获取设计、训练和部署图像分类网络的最直接方法的见解。
对我来说突出的两种方法是:
TF Layers API:这个API似乎提供了定义网络最直接和直观的方式,一层一层地定义。然而,他们训练和评估模型的方式使用了tf.learn.Estimator
类,这似乎有点限制,因为网络严格使用Estimator
的fit()
方法进行训练,并使用evaluate()
方法进行验证。这个教程甚至没有使用tf.Session
。
低级API:定义网络似乎有点繁琐。此外,训练和部署是以非常手动的方式进行的,但它似乎提供了更多的控制权。
对于一个TensorFlow新手来说,想要实现和训练相对基础的CNN,并且希望能够调整网络架构和进行基本的超参数调优,最好的API是什么?
另外,如果有任何使用您偏好的接口的有用教程或示例,链接将不胜感激。
回答:
Keras是Tensorflow的一个很好的前端。听起来它应该能满足您的需求。这里有一个示例,有人使用Keras训练了一个CNN。