Tensorflow 2.0 : Optimizer. 最小化 ('Adam' 对象没有属性 'minimize' )

标签 tensorflow tensorflow2.0

对于我的强化学习应用程序,我需要能够应用自定义梯度/最小化不断变化的损失函数。根据 documentation ,应该可以使用 Optimizer.minimize() 函数。但是,我的 pip 安装版本似乎根本没有此功能。

我的代码:

from tensorflow.python.keras.optimizers import Adam, SGD
print(tf.version.VERSION)
optim = Adam()
optim.minimize(loss, var_list=network.weights)

输出:
2.0.0-alpha0
Traceback (most recent call last):
  File "/Users/ikkamens/Library/Preferences/PyCharmCE2018.3/scratches/testo.py", line 18, in <module>
    optim.minimize(loss, var_list=network.weights)
AttributeError: 'Adam' object has no attribute 'minimize'

最佳答案

其实还是有区别的。如果您打印这两个类,您将看到:

from tensorflow.python.keras.optimizers import Adam

print(Adam)
print(tf.optimizers.Adam)

<class 'tensorflow.python.keras.optimizers.Adam'>
<class 'tensorflow.python.keras.optimizer_v2.adam.Adam'>

所以在第一种情况下,Adam 继承了其他一些类。它旨在用于 Keras 训练循环内,因此,它没有最小化方法。为了确保,让我们获取所有类方法
import inspect
from tensorflow.python.keras.optimizers import Adam

print(inspect.getmembers(Adam(), predicate=inspect.ismethod))

输出显示这个类甚至没有最小化

关于Tensorflow 2.0 : Optimizer. 最小化 ('Adam' 对象没有属性 'minimize' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55459087/

相关文章:

python - tensorflow : how to feed a variable-time-step input to a RNN

tensorflow - tf.keras.backend.set_learning_phase 实际上做了什么?

tensorflow - 将神经网络的输出限制在任意范围内

python - 自定义环境的 Tensorflow 2.0 DQN 代理问题

python - 如何从内存中手动删除张量?

tensorflow - tf.get_variable 不接受张量的形状

python - TF2/Keras 切片张量使用 [ :, :, 0]

python - 无法在损失函数中使用VGG特征的MSE

python - Windows : DLL load failed while importing _pywrap_tensorflow_internal 上的 Tensorflow 安装

python - 如何让 HMM 处理 Tensorflow 中的实值数据