- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试了几种方法来显示在 Keras 的最后一个时期有效使用的模型的学习率。
一些研究表明,可以使用回调更改学习率,或使用自定义指标显示学习率。但无论我尝试什么方法,显示的学习率始终是原始学习率。
一些答案暗示应该根据公式重新计算多少费率。但是我想要的只是简单地得到用于反向传播的学习率,而不是根据算法计算它。
这是我使用的一些代码:
callback_list = []
metric_list = ['accuracy']
# Add checkpoints to save weights in case the test set acc improved
#...
if show_learn_param:
learn_param = Callback_show_learn_param()
callback_list.append(learn_param)
# Add metric if needed
def get_lr_metric(optimizer):
def lr(y_true, y_pred):
return optimizer.lr #K.eval(optimizer.lr)
return lr
lr_metric = get_lr_metric(optimizer)
metric_list.append(lr_metric)
这里是回调的定义:
class Callback_show_learn_param(Callback):
def on_epoch_end(self, epoch, logs=None):
lr = self.model.optimizer.lr
decay = self.model.optimizer.decay
iterations = self.model.optimizer.iterations
lr_with_decay = lr / (1. + decay * K.cast(iterations, K.dtype(decay)))
# Beta values
beta_1=self.model.optimizer.beta_1
beta_2=self.model.optimizer.beta_2
print("lr", K.eval(lr), "decay", K.eval(decay), "lr_with_decay", K.eval(lr_with_decay),
"beta_1", K.eval(beta_1), "beta_2", K.eval(beta_2))
基本上,显示的值是恒定的,不会改变。它对 beta 值和衰减有意义。显示的学习率似乎是初始的。对于学习率,我找不到一种方法来显示这个简单的值:实际使用的有效学习率。
顺便说一句,有一种更简单的方法来显示这个初始学习率:
import keras.backend as K
print(K.eval(model.optimizer.lr))
最佳答案
您需要使用K.get_value
来获取学习率。看看LearningRateScheduler以及该回调如何从模型中获取学习率。在您的情况下,您应该能够打印学习率:
def on_epoch_end(self, epoch, logs=None):
lr = float(K.get_value(self.model.optimizer.lr))
print("Learning rate:", lr)
关于keras - 如何显示一个epoch后最后使用的学习率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50487633/
我使用 QBFC v13 和 Delphi XE6。 目标是从我的应用程序创建 Estimate 并将其参数设置到 QuickBooks 中。 我从 QBFC13 导入类型库并将其添加到我的项目中。
我有一个数据库,其中有很多格式不正确的地址。在这个地址中,我只有一个街道地址或带有城市名称的街道。在我的应用程序中,用户选择一些类别,然后我想在 map 上显示例如 50,100,300 等地址。(不
在大多数软件项目中,缺陷源自需求、设计、编码和缺陷更正。根据我的经验,大多数缺陷都源于编码阶段。 我有兴趣了解软件开发人员使用哪些实用方法来降低缺陷注入(inject)率。 我已经看到以下方法的使用取
我正在使用实时 API 中的标签订阅构建一个应用程序,并且有一个与容量规划相关的问题。我们可能有大量用户同时发布到订阅的主题标签,因此问题是 API 实际发布到我们的订阅处理端点的频率是多少?例如,如
尝试使用 NULLIF 或 IFNULL 函数,但仍收到被零除的消息。 SELECT client_id ,COUNT(distinct CASE WHEN status = 'failed' THE
我目前正在开发一个使用 Django-rest-framework 制作的 API。我必须根据每个用户组设置限制率。 我们目前使用默认配置的 memcached 作为缓存后端,即按站点缓存。 在使用
我认为有时在神经网络(特别是一般对抗网络)训练期间改变丢失率可能是一个好主意,从高丢失率开始,然后线性地将丢失率降低到零。您认为这有意义吗?如果是的话,是否有可能在 tensorflow 中实现这一点
我有一个 Windows Server 2008,Plesk 运行着两个网站。有时服务器运行缓慢,并且有一个 named.exe 进程使 CPU 峰值达到 100%。它持续很短的时间,过一会儿它又来了
我正在使用 scikit-learn 随机森林分类器,我想通过将成功投票所需的树数量从大于 50% 增加到 75% 来降低 FP 率,在阅读文档后我不这样做确定如何做到这一点。有没有人有什么建议。 (
当我连续按下按键事件(字母 k)时,为什么以下按键事件不会减慢 3000 密耳?如果我按住手指,计数会迅速增加,因为 mcount 上没有 setTimeout。这是为什么?每次计数之间应该有延迟,但
我是一名优秀的程序员,十分优秀!