手动更改tf.train.AdamOptimizer中的learning_rate

问题在于,仅仅更改tf.train.AdamOptimizer中的learning_rate参数是否真的会导致行为上的变化:假设代码如下所示:

myLearnRate = 0.001...output = tf.someDataFlowGraphtrainLoss = tf.losses.someLoss(output)trainStep = tf.train.AdamOptimizer(learning_rate=myLearnRate).minimize(trainLoss)with tf.Session() as session:    #第一个训练步骤    session.run(trainStep, feed_dict = {input:someData, target:someTarget})    myLearnRate = myLearnRate * 0.1    #第二个训练步骤    session.run(trainStep, feed_dict = {input:someData, target:someTarget})

降低的myLearnRate会在第二个trainStep中应用吗?也就是说,节点trainStep的创建是否只被评估一次:

trainStep = tf.train.AdamOptimizer(learning_rate=myLearnRate).minimize(trainLoss)

还是说它会在每次session.run(train_step)时被评估?我怎样才能在Tensorflow的AdamOptimizer中检查学习率是否发生了变化?

免责声明1:我知道手动更改学习率是不好的做法。免责声明2:我知道有一个类似的提问,但它是通过将一个张量作为learnRate输入解决的,这个张量在每次trainStep中都会更新(这里)。这让我倾向于认为,只有当AdamOptimizer中的learning_rate输入为张量时才会起作用,但我对此并不确定,也无法理解背后的原因。


回答:

简短的回答是,不,你的新学习率没有被应用。TF在首次运行时构建图表,在运行时更改Python端的内容不会反映到图表中。然而,你可以很容易地将新的学习率输入到你的图表中:

# 在图表中使用占位符来表示用户定义的学习率learning_rate = tf.placeholder(tf.float32)# ...trainStep = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(trainLoss)applied_rate = 0.001  # 我们将在每个训练步骤更新这个值with tf.Session() as session:    #第一个训练步骤,将我们应用的速率输入到图表中    session.run(trainStep, feed_dict = {input: someData,                                        target: someTarget,                                        learning_rate: applied_rate})    applied_rate *= 0.1  # 更新我们输入到图表的速率    #第二个训练步骤    session.run(trainStep, feed_dict = {input: someData,                                        target: someTarget,                                        learning_rate: applied_rate})

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注