【问题标题】:Understand relation between different tensorflow AdagradOptimizer APIs了解不同 tensorflow AdagradOptimizer API 之间的关系
【发布时间】:2021-10-12 07:17:17
【问题描述】:
我是 tf 的新手,在阅读模型代码时,我注意到它使用了 1),但我能找到的大多数文档都使用 2) 和 3)。那么tensorflow.python这个库是干什么用的,好像官方文档里没有?而1到2,3之间又是什么关系呢?
- 从 tensorflow.python.training.adagrad 导入 AdagradOptimizer
- 从 tf.compat.v1.train 导入 AdagradOptimizer
- 从 tf.keras.optimizers 导入 Adagrad
【问题讨论】:
标签:
tensorflow
tensorflow2.0
【解决方案1】:
基本上:
-
tensorflow.python 本质上是“内部”代码,而不是公共 API 的一部分。你不应该直接使用那里的任何东西。它可能有效,但也可能导致不稳定、如果您更新 TF 版本会完全中断等。
- 这是旧 TF 版本的保留,在 Keras 与其紧密集成之前。恕我直言,您应该忘记它的存在,他们应该完全删除它。这将与过时的层接口 (
tf.compat.v1.layers) 一起使用。
- 这是您在使用
tf.keras(模型和/或层)时应该使用的接口,并且应该是您的首选接口(不一定是 Adagrad,而是 tf.keras.optimizers 中的所有优化器)。