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
Machine learning 我们应该尝试什么:低学习率还是高学习率?_Machine Learning_Tensorflow_Neural Network_Deep Learning - Fatal编程技术网

Machine learning 我们应该尝试什么:低学习率还是高学习率?

Machine learning 我们应该尝试什么:低学习率还是高学习率?,machine-learning,tensorflow,neural-network,deep-learning,Machine Learning,Tensorflow,Neural Network,Deep Learning,我正在调整SGD和Adam的学习速度。我会先试试SGD。我有一个关于学习率选择的问题。我应该先尝试什么:低学习率还是高学习率?我读了一些参考资料,建议尝试高学习率,然后通过安排时间来降低学习率。是这样吗? 对于Adam来说,这是一个自适应学习速率。Adam方法的学习率通常低于SGD学习率的5倍或10倍,这是正确的吗?学习率取决于您的数据和您的问题。然而,Adam优化器通常被认为是更高级的优化器,因为它在训练时调整学习速率。在训练过程中调整学习速率可以使您不陷入局部最优,也不会对训练集中的某些类型

我正在调整SGD和Adam的学习速度。我会先试试SGD。我有一个关于学习率选择的问题。我应该先尝试什么:低学习率还是高学习率?我读了一些参考资料,建议尝试高学习率,然后通过安排时间来降低学习率。是这样吗?
对于Adam来说,这是一个自适应学习速率。Adam方法的学习率通常低于SGD学习率的5倍或10倍,这是正确的吗?

学习率取决于您的数据和您的问题。然而,Adam优化器通常被认为是更高级的优化器,因为它在训练时调整学习速率。在训练过程中调整学习速率可以使您不陷入局部最优,也不会对训练集中的某些类型的数据产生偏见。我不确定您使用的是什么库,但无论如何,绘制您的培训和验证图将有助于可视化您的损失,以便更好地了解发生了什么。例如,如果您正在使用Keras,这是非常容易的

# Record the Keras history object for plotting
keras_history_object = model.fit_generator(batch_generator(training_data, batch_size),
                                            steps_per_epoch=(len(training_data) * 3) / batch_size,
                                            epochs=epochs,
                                            verbose=1,
                                            validation_data=batch_generator(validation_data, batch_size),
                                            validation_steps=(len(validation_data) * 3) / batch_size)


# Plot the training and validation losses for visualization of this session
plt.figure(1, figsize=(25, 15))
plt.subplot(211)
plt.plot(keras_history_object.history['loss'])
plt.plot(keras_history_object.history['val_loss'])
plt.title(loss)
plt.ylabel(loss)
plt.xlabel('Epoch')
plt.legend(['Training set', 'Validation set'], loc='upper right')
plt.show()

取决于您的数据集。您可以使用交叉验证选择正确的学习率。谢谢。这个问题很耗时。我在训练集中有5门课。我将使用4个科目进行培训,1个科目进行验证。不要担心有限的数据集,因为这是我的任务。我将使用交叉验证,随机选取1名受试者进行验证,剩余4名受试者进行培训,并选择一个学习率。对于每一次,我必须花一天的时间来完成它。因此,对于4次交叉验证,我必须花费大约4天的时间。再次改变学习速度。你有关于交叉验证的提示吗?