我正在构建一个密集的神经网络来预测扑克牌。首先我遇到了重现性问题,但后来我发现了真正的问题:我无法重现我的代码是因为 adam-optimizer,因为使用 sgd 它可以工作。 这意味着
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
没有工作,而
opti = tf.train.AdamOptimizer()
model.compile(loss='sparse_categorical_crossentropy', optimizer=opti, metrics=['accuracy'])
具有可重复性。 所以我现在的问题是: 使用
有什么区别吗tf.train.AdamOptimizer
和
model.compile(..., optimizer = 'adam')
因为由于重现问题我想使用第一个。
最佳答案
它们都是一样的。但是,在tensorflow.train.AdamOptimizer中您可以更改学习率
tf.compat.v1.train.AdamOptimizer(
learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False,
name='Adam')
这将提高学习成绩,并且训练时间会更长。但在 model.compile(optimizer="adam") 中,它将把学习率、beta1、beta2...等设置为默认设置
关于python - tf.train.AdamOptimizer 和在 keras.compile 中使用 adam 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61612526/