Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在keras.compile中tf.train.AdamOptimizer和use adam之间有什么区别?_Python_Tensorflow_Optimization_Keras - Fatal编程技术网

Python 在keras.compile中tf.train.AdamOptimizer和use adam之间有什么区别?

Python 在keras.compile中tf.train.AdamOptimizer和use adam之间有什么区别?,python,tensorflow,optimization,keras,Python,Tensorflow,Optimization,Keras,我正在建立一个密集的神经网络来预测扑克手。首先,我在可复制性方面遇到了一个问题,但后来我发现了我真正的问题:我不能复制我的代码是因为adam优化器,因为sgd起了作用。 这意味着 model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy']) 不起作用,而 opti = tf.train.AdamOptimizer() model.compile(loss='sparse

我正在建立一个密集的神经网络来预测扑克手。首先,我在可复制性方面遇到了一个问题,但后来我发现了我真正的问题:我不能复制我的代码是因为adam优化器,因为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


因为复制问题,我想使用第一个。它们都是相同的。但是,在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…等设置为默认设置

您所说的“可复制性”是什么意思?据我所知,
keras
只是后端引擎的API,默认情况下是
tensorflow
。因此,根据官方实现,无论何时使用
adam
,您都在使用
tf.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')