画阶梯学习率


from matplotlib import pyplot as plt
import matplotlib.ticker as mticker
import numpy as np
import matplotlib.patches as patches

x = [0, 2,3,4,5,6,7]
y = [1.0,1.0, 0.5, 0.25, 0.125, 0.0625,0.03125]

with plt.style.context(['science','ieee','grid','no-latex']):
    fig = plt.figure()
    plt.ylim(0.0,1.1) # 设置最小最大值,设置y轴的数值显示范围
    plt.xlim(1.0,10)

    y_ticks = np.arange(0.0,1.1,0.1)
    #x_ticks = np.arange(0, 13, 1)  ##原始数据有13个点,故此处为设置从0开始,间隔为1
    plt.yticks(y_ticks)
    #plt.xticks(x_ticks)
    plt.gca().xaxis.set_major_formatter(mticker.FormatStrFormatter('%.0f00k'))
    plt.step(x, y,'b', where="pre")
    #plt.grid()
    plt.text(1.1,1.15,'×$10^{-4}$')
    plt.xlabel('Iteration')
    plt.ylabel('Learning Rate')
    plt.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习率和损失函数的变化曲线,可以使用`matplotlib`库。具体步骤如下: 1. 在模型编译时,使用`tf.keras.callbacks.LearningRateScheduler`回调函数来动态调整学习率,并在回调函数中记录学习率的变化。例如: ``` def scheduler(epoch, lr): if epoch < 10: return lr else: return lr * tf.math.exp(-0.1) model.compile(optimizer=tf.keras.optimizers.Adam(), loss=tf.keras.losses.CategoricalCrossentropy(), metrics=['accuracy']) lr_scheduler = tf.keras.callbacks.LearningRateScheduler(scheduler) ``` 在上面的例子中,学习率会在前10个epoch内保持不变,之后会按指数衰减。 2. 在模型训练时,将`lr_scheduler`回调函数作为参数传入`model.fit()`方法中,并在回调函数中记录损失函数的变化。例如: ``` history = model.fit(x_train, y_train, validation_data=(x_val, y_val), epochs=20, callbacks=[lr_scheduler]) lr = history.history['lr'] train_loss = history.history['loss'] val_loss = history.history['val_loss'] ``` 在上面的例子中,`history.history`记录了训练过程中的所有指标值,包括学习率、训练损失和验证损失。可以通过指定不同的键来获取不同的指标值。 3. 使用`matplotlib`库将学习率和损失函数的变化曲线出来。例如: ``` import matplotlib.pyplot as plt fig, ax1 = plt.subplots() color = 'tab:red' ax1.set_xlabel('epoch') ax1.set_ylabel('loss', color=color) ax1.plot(train_loss, color=color) ax1.plot(val_loss, color=color, linestyle='--') ax1.tick_params(axis='y', labelcolor=color) ax2 = ax1.twinx() color = 'tab:blue' ax2.set_ylabel('learning rate', color=color) ax2.plot(lr, color=color) ax2.tick_params(axis='y', labelcolor=color) fig.tight_layout() plt.show() ``` 在上面的例子中,使用`plt.subplots()`创建了一个布和一个子图。在子图中,使用`ax1.plot()`和`ax2.plot()`分别出了训练损失、验证损失和学习率的变化曲线。可以通过`ax1.tick_params()`和`ax2.tick_params()`调整坐标轴的属性。最后,使用`fig.tight_layout()`调整子图的布局,并使用`plt.show()`显示图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值