python - 使用张量、lambda 和 python 变量绑定自定义学习率衰减
问题描述
我正在尝试构建一个自定义 TensorFlow 估计器并对其进行训练。
我希望能够通过额外的参数来修改它的行为。具体来说,设置优化器,并指定一个取决于时期的学习率公式。
例如,理想情况下,我可以这样做:
model = tf.estimator.Estimator(
model_fn=model_fn,
params={
...
"optimizer": tf.train.MomentumOptimizer(
learning_rate=0.001 * tf.train.global_step()**(-0.75),
momentum=0.5
),
...
}
)
model.train()
我该怎么办?
我现在知道的
经过一番摸索,对我来说很明显上述方法行不通,因为tf.train.global_step()
取决于有一个会话,而且至少在我打电话之前我没有会话model.train()
。
我也知道可能有某种巫术让我将调用推迟tf.train.global_step()
到 model_fn 实际运行我的tf.Estimator
.
我对整个事情如何协同工作感到茫然,并且希望能得到一些帮助 1. 解决这个问题 2. 了解变量绑定的工作原理 3. 了解如何tf.train.global_step()
获取张量对象,以及张量到底是什么。
可能的重复
tensorflow:在应用于优化器之前使用 py_func 定义自定义学习率衰减 这家伙对自定义优化器很感兴趣。我不想参与其中。
TensorFlow:如何根据时期设置学习率衰减? 我不关心时代。
TensorFlow 学习率衰减 - 如何正确提供衰减的步数? 这看起来像我希望我能做的,但我不知道如何将它翻译成
tf.Estimators
.
解决方案
推荐阅读
- sublimetext3 - sublime text 3, C++ 中没有代码输出。我在以前的帖子中尝试过解决方案
- postgresql - 尝试 phppgadmin docker 容器查看主机上的 postgres 数据库:它说登录失败
- python - Python将日期时间转换为int用于训练模型
- python - “元组”对象不支持项目分配 - DataFrame
- python - 我收到错误:“NoneType”对象没有“get”属性,我不知道如何解决上述问题
- vb.net - 数据表和两行排序
- r - 如何在 R 中将 '2020-10-31T00:00:00.0000000' 从因子转换为日期?
- java - 使用 Selenium 和 Java 进行可视化测试
- java - androidx.preference.SwitchPreference Android Studio 的问题
- javascript - 铬扩展。JS 适用于弹出窗口而不是主窗口