了解不同 tensorflow AdagradOptimizer API 之间的关系

Understand relation between different tensorflow AdagradOptimizer APIs

我是 tf 的新手,在阅读模型代码时,我注意到它使用了 1),但我能找到的大多数文档都使用 2) 和 3)。那么tensorflow.python库是做什么用的,官方文档好像没有? 1和2,3是什么关系?

  1. 从 tensorflow.python.training.adagrad 导入 AdagradOptimizer
  2. 从 tf.compat.v1.train 导入 AdagradOptimizer
  3. 来自 tf.keras.optimizers 进口 Adagrad

基本上:

  1. tensorflow.python 本质上是“内部”代码,而不是 public API 的一部分。你不应该直接在那里使用任何东西。它可能有效,但它也可能导致不稳定,如果你更新你的 TF 版本等会完全崩溃。
  2. 这是旧 TF 版本的保留,在 Keras 与它紧密集成之前。恕我直言,您应该忘记它的存在,他们应该完全删除它。这将与过时的图层界面一起使用 (tf.compat.v1.layers)。
  3. 如果使用 tf.keras(模型 and/or 层),这是您应该使用的,并且应该是您的首选界面(不一定是 Adagrad,但 [=13= 中的所有优化器) ]).