python - 自适应训练率优化器.minimize
问题描述
有这样的功能:
for i in range(0,200):
train = opt.minimize(loss, var_list=[tf_weights])
print(loss().numpy())
current_learning_rate = opt._decayed_lr(tf.float32)
print(current_learning_rate)
损失函数不是分类问题。我需要覆盖 model.fit() 还是有更简单的方法来实现自适应学习率。我猜想, opt.minimize() 不使用自适应学习率。
解决方案
要创建自适应 learning_rate,您可以在 tensorflow 中使用自定义回调。
举个例子:
def CustomCallback(tf.keras.callvacks.Callback):
on_epoch_end(self,logs=None):
lr=float(tf.keras.backend.get_value(self.model.optimizer.learning_rate))
decay_rate=0.5
new_lr=self.schedule(epoch,lr)*decay_rate
tf.keras.backend.set_value(self.model.optimizer.lr,new_lr)
print("Epoch:{},Current lr:{}".format(epoch,new_lr))
...
创建模型后:
model.fit(...,callbacks=[CustomCallback()])
推荐阅读
- join - 如何在yii2中加入两个表格并在gridview中显示?
- javascript - 多个字段的 Jquery 自动完成(动态创建)
- unix - 出现意外的 JVM 参数(-Xms512M 和 -Xmx1024M)
- ios - iOS 向 JWplayer 7 控制栏添加一个按钮来控制
- vue.js - 动态添加自定义组件
- hibernate - 使用@RepositoryRestResource 插入级联,外键始终为空
- java - 在 jScrollPane 中调整 JTextArea 的大小?
- angular - 无法从对话框中访问 Ionic/Angular 中“this”的父引用
- javascript - 在 Nexus Player、Android Cordova 应用程序上打开时输入第一个字符的虚拟键盘
- php - 为什么找不到Route类?