【问题标题】:Tensorflow 2.0: Optimizer.minimize ('Adam' object has no attribute 'minimize')Tensorflow 2.0:Optimizer.minimize('Adam' 对象没有属性'minimize')
【发布时间】:2019-04-01 15:53:10
【问题描述】:

对于我的强化学习应用程序,我需要能够应用自定义渐变/最小化不断变化的损失函数。根据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'

【问题讨论】:

标签: tensorflow tensorflow2.0


【解决方案1】:

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

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))

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

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2020-04-07
    • 2019-08-04
    • 1970-01-01
    • 2016-11-09
    • 2018-01-29
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多