kit*_*tty 6 python machine-learning deep-learning keras tensorflow
我一直在试用 TensroFlow v2 beta,我正在试用 tf.keras 模型。
当我编译模型并选择优化器作为 string 时'adam'。可以正确训练模型:
model.compile(optimizer='adam', loss='categorical_crossentropy')
model.fit(x, y)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用默认优化器时,tf.keras.optimizers.Adam()它无法训练并nan在每次迭代时输出损失。
adam = tf.keras.optimizers.Adam()
model.compile(optimizer=adam, loss='categorical_crossentropy')
model.fit(x, y)
Run Code Online (Sandbox Code Playgroud)
字符串不'adam'应该是默认的亚当优化器还是我错过了什么?我已经尝试了几个超参数(learning_rate、beta_1、beta_2等),但似乎都不起作用。这很重要,因为我可能不想一直使用默认的超参数。
谁能解释这种行为?
经过一番挖掘后,似乎当您输入字符串时,'adam'它会调用另一个 adam ,它称为adam_v2。
这可以在这里找到。
from tensorflow.python.keras.optimizer_v2.adam import Adam
adam = Adam()
model.compile(optimizer=adam, loss='categorical_crossentropy')
model.fit(x, y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2334 次 |
| 最近记录: |