keras课程5-callbacks

32 篇文章 4 订阅
订阅专栏

1. 简述

callbacks中文含义为回调。该模块主要是一些回调函数,即在模型训练的某个时刻执行该回调函数。如early stopping,模型训练过程中,发现n次效果都不再提升,即停止训练。

2. EarlyStopping

早停,第一章简述已经提过,其参数如下:
在这里插入图片描述
案例:

callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=3)
model = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
model.compile(tf.keras.optimizers.SGD(), loss='mse')
history = model.fit(np.arange(100).reshape(5, 20), np.zeros(5),
                    epochs=10, batch_size=1, callbacks=[callback],
                    verbose=0)

备注:这里的monitor是被观察指标,这个指标都有哪些取值,可参照第6章LambdaCallback:它是由每个epoch中的最后一个进度条决定的,最后一个进度条显示了训练集和验证集的loss(compile中的loss)及metrics(compile中的metrics),monitor可选择其中任何一个:
在这里插入图片描述

3. ModelCheckpoint

在模型训练的时候,我们需要保存模型,ModelCheckpoint即确定保存模型的时刻及保存符合某条件的模型。
在这里插入图片描述
注意上述参数中,只有save_freq为"epoch"时,filepath才能写成"model_{epoch:02d}-{val_acc:.2f}.hdf5"或者weight.{epoch:02d}-{val_acc:.2f}.hdf5等形式。
案例:

EPOCHS = 10
checkpoint_filepath = '/tmp/model.h5'
model_checkpoint_callback = tf.keras.callbacks.ModelCheckpoint(
    filepath=checkpoint_filepath,
    save_weights_only=True,
    monitor='val_acc',
    mode='max',
    save_best_only=True)

# Model weights are saved at the end of every epoch, if it's the best seen
# so far.
model.fit(epochs=EPOCHS, callbacks=[model_checkpoint_callback])

# The model weights (that are considered the best) are loaded into the model.
model.load_weights(checkpoint_filepath)

4. History

该回调函数,自动应用于每个keras模型的fit方法
如第二章讲述EarlyStopping时的案例。直接history=model.fit(…),也不需要from tensorflow.keras.callbacks import History。history记录了训练过程中的结果,如每个epoch的train_loss/train_acc/val_loss/val_acc等。

5. LearningRateSchedule

该函数为动态调整学习率(每个epoch的初始学习率不同),其默认表达如下:

tf.keras.callbacks.LearningRateScheduler(
    schedule, verbose=0
)

可以看到一个重要参数schedule,该参数为自定义函数,输入为epoch,输入为浮点型的学习率。通过以下案例说明:

def scheduler(epoch):
  if epoch < 10:  
    return 0.001   
  else:
    return 0.001 * tf.math.exp(0.1 * (10 - epoch))

callback = tf.keras.callbacks.LearningRateScheduler(scheduler)
model.fit(data, labels, epochs=100, callbacks=[callback],
          validation_data=(val_data, val_labels))

以下为实际当中的一个例子

def schedule(epoch_idx):
    if epoch_idx < 10:
        return 0.1 / 10 * (epoch_idx+1)
    else:
        t = (epoch_idx - 10) * math.pi / 90 
        return  1/2 * (1 + math.cos(t)) * 0.1


scheduler = LearningRateScheduler(schedule=schedule)
model = bi_lstm_attention(max_len, max_cnt, embed_size, embedding_matrix)  # 模型实例化
model.compile(loss='categorical_crossentropy',
                      optimizer=tf.keras.optimizers.SGD(lr=0.0, momentum=0.9, decay=0.0, 	   
                      nesterov=False),
                      metrics=['accuracy'])    # 使用了学习率调整,sgd的lr可设置为0
history = model.fit(X_train, X_train_label,
                  validation_data=(X_val, X_val_label),
                  epochs=100, batch_size=64,
                  shuffle=True,
                  callbacks=[early_stopping, scheduler],
                 )

学习率调整的方法,见博客:https://www.cnblogs.com/xym4869/p/11654611.html,keras中的具体实现后续补充

6. LambdaCallback

其结构如下:

tf.keras.callbacks.LambdaCallback(
    on_epoch_begin=None, on_epoch_end=None, on_batch_begin=None,  
    on_batch_end=None,
    on_train_begin=None, on_train_end=None, **kwargs
)

每一个参数都是一个lambda的函数,lambda函数必须有两个参数或一个参数,具体要求如下:
在这里插入图片描述
举例:

print_callback = LambdaCallback(on_batch_begin=lambda batch,logs: print(batch, logs),
                                on_batch_end=lambda batch, logs:print('=', batch, logs)
                               )

on_batch_begin表示在每个batch的开始,on_batch_end表示在每个batch的结尾。其某案例结果如下所示:
在这里插入图片描述
上图中进度条显示的是loss和acc,其中loss由compile的loss决定,acc由compile的metrics决定,如果 metrics=[‘Recall’],则结果如下图:
在这里插入图片描述
官网另一个例子如下:

# Stream the epoch loss to a file in JSON format. The file content
# is not well-formed JSON but rather has a JSON object per line.
import json
json_log = open('loss_log.json', mode='wt', buffering=1)
json_logging_callback = LambdaCallback(
    on_epoch_end=lambda epoch, logs: json_log.write(
        json.dumps({'epoch': epoch, 'loss': logs['loss']}) + '\n'),   # 每个epoch结束后将epoch、loss写入文件
    on_train_end=lambda logs: json_log.close()  # 训练结束后关闭句柄
)

Keras各种Callbacks介绍
BulletTech2021的博客
10-04 1577
1 前言 在tensorflow.keras中,callbacks能在fit、evaluate和predict过程中加入伴随着模型的生命周期运行,目前tensorflow.keras已经构建了许多种callbacks供用户使用,用于防止过拟合、可视化训练过程、纠错、保存模型checkpoints和生成TensorBoard等。通过这篇文章,我们来了解一下如何使用tensorflow.keras里的各种callbacks,以及如何自定义callbacks。 2 使用callbacks 使用callbac
Keras中的回调函数Callbacks详解
热门推荐
wf592523813的博客
07-07 2万+
介绍 回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程中网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit()中,即可在给定的训练阶段调用该函数集中的函数。 虽然我们称之为回调“函数”,但事实上Keras的回调函数是一个类 keras.callbacks.Callback() 是回调函数的抽象类,定义新的回调函数必须继承自该类 类属性 params:...
【Python深度学习系列】Keras回调函数Callbacks使用详解-训练过程可视化、早停、保存恢复(案例+源码)
最新发布
数据杂坛
07-11 756
Keras回调函数Callbacks使用详解-训练过程可视化、早停、保存恢复(案例+源码)
Keras回调函数Callbacks
wwwsssZheRen的博客
02-23 809
1、tensorboard简介 tensorboard提供了可视化界面及为机器学习过程中提供所需工具。 1)跟踪并可视化像损失(loss)和精度(accuracy)这样的矩阵。 2)可视化模型图(包括ops和layer) 3)随着时间变化而变化的权重(weights)、偏置(biases)及其他tensor的直方图可视化 。。。 ...
Tensorflow2.x tf.keras.callbacks函数分析
爱在深秋
06-04 1165
Tensorflow2.x callbacks函数分析前言新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 你好! 博主在使用tensorflow做深度学习的研究时,发现这一块的内容水太深了,tensorflow目前最
KerasCallbacks的使用
qq_37329281的博客
10-26 589
KerasCallbacks的使用 模块和方法 Modules experimental module: Public API for tf.keras.callbacks.experimental namespace. Classes class BaseLogger: Callback that accumulates epoch averages of metrics. 记录epoch的累计平均metrics class CSVLogger: Callback that streams epoch
Keras入门课5 -- 网络可视化及训练监控
史丹利复合田的博客
12-21 9167
Keras入门课5:网络可视化及训练监控本节专注于Keras中神经网络的可视化,包括网络结构可视化以及如何使用TensorBoard来监控训练过程。 这里我们借用第2课的代码内容来进行示例和讲解。网络前面的定义、数据初始化都一样,主要是fit函数启用TensorBoard在model的fit函数中加入TensorBoard的回调函数即可,训练数据就会自动保存在log_dir指定的目录内,然后在命令
Keras 入门课4 -- 使用ResNet识别cifar10数据集
史丹利复合田的博客
12-21 1万+
Keras入门课4:使用ResNet识别cifar10数据集前面几节课都是用一些简单的网络来做图像识别,这节课我们要使用经典的ResNet网络对cifar10进行分类。
Keras 入门课1 -- 用MLP识别mnist手写字符
史丹利复合田的博客
12-18 3539
Keras 入门课1: 使用Keras写一个mlpmlp就是multilayer perceptron,多层感知机。数据集用的是经典的mnist,数字分类问题。首先导入keras的各种模块keras.datasets 里面包含了多种常用数据集,如mnist,cifar10等等,可以实现自动下载和解析等等。keras.models 里面有最核心的模型结构,如顺序模型结构Sequentialkeras.
吴恩达 深度学习 编程作业(4-2)- Keras tutorial - the Happy House & Residual Networks
大树先生的博客
11-20 1万+
Part 1:Keras tutorial - the Happy House、 Part 2:Residual Networks
Keras简单入门——the Happy House
Andy的博客
05-26 531
以下来自Coursera深度学习系列课程第四课第2周编程练习 Keras tutorial - the Happy House Welcome to the first assignment of week 2. In this assignment, you will: 1. Learn to use Keras, a high-level neural networks API (p...
浅谈keras.callbacks设置模型保存策略
09-16
主要介绍了浅谈keras.callbacks设置模型保存策略,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Keras学习笔记9——keras.callbacks
winter_python的博客
09-21 1731
目录回调函数使用CallbackBaseLoggerTerminateOnNaNProgbarLoggerHistoryModelCheckpointEarlyStoppingRemoteMonitorLearningRateSchedulerTensorBoardReduceLROnPlateauCSVLoggerLambdaCallback创建一个回调函数例: 记录损失历史例: 模型检查点 来源 回调函数使用 回调函数是一个函数的合集,会在训练的阶段中所使用。你可以使用回调函数来查看训练模型的内在状态和
keras.callbacks
weixin_36670529的博客
05-30 230
Callbacks: utilities called at certain points during model training. Classes class BaseLogger: Callback that accumulates epoch averages of metrics. class CSVLogger: Callback that streams epoch resu...
10_ tf.keras Callbacks概述
Hundreays
03-25 2129
10_ 使用tf.keras Callbacks1. tf.keras Callbacks是什么2. 使用Callbacks3. tf.keras内置Callback函数4. Tensorboard详解 1. tf.keras Callbacks是什么 Keras官方文档:回调Callbacks Callbacks的本质是一组函数对象,代码层面就是一个Python List,在训练过程中的特定时期...
Keras_callback
qq_36601957的博客
01-04 233
1.ReduceLROnPlateau keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=10, verbose=0, mode='auto', epsilon=0.0001, cooldown=0, min_lr=0) 当评价指标不在提升时,减少学习率 当学习停滞时,减少2倍或10倍的学习率常常能...
Keras——callbacks使用
zzh_AI的博客
09-29 361
callbacks可以用来做这些事情: 模型断点续训:保存当前模型的所有权重 提早结束:当模型的损失不再下降的时候就终止训练,当然,会保存最优的模型。 动态调整训练时的参数,比如优化的学习速度。 推荐网址:https://www.jianshu.com/p/b05fb25de85c ...
KerasCallbacks
mjiansun的专栏
11-13 715
回调函数使用 回调函数是一个函数的合集,会在训练的阶段中所使用。你可以使用回调函数来查看训练模型的内在状态和统计。你可以传递一个列表的回调函数(作为callbacks关键字参数)到Sequential或Model类型的.fit()方法。在训练时,相应的回调函数的方法就会被在各自的阶段被调用。 Callback keras.callbacks.Callback() 用来组...
callbacks
weixin_30314631的博客
06-14 126
early_stop = EarlyStopping(monitor='val_loss',min_delta=0.001,patience=5) filepath = 'model/checkpoint/saved-model-{epoch:02d}-{val_loss:.2f}.hdf5'checkpoint = ModelCheckpoint(filepath, monitor='val_...
keras-gpt-2
09-07
Keras-GPT-2是一个基于Keras框架的GPT-2模型实现。GPT-2是OpenAI(开放人工智能)公司于2019年发布的一种先进的自然语言处理模型,是大规模无监督训练的语言生成模型。 Keras-GPT-2是由开发者将GPT-2模型迁移到...
写文章

热门文章

  • 《Python基础教程》内容总览篇(持续更新中) 193210
  • 《Python基础教程》专栏总结篇 179305
  • ModuleNotFoundError: No module named ‘torch._six‘的解决方案 151337
  • 参加2024年CSDN博客_付费内容优质创作者_颁奖仪式的收获 131633
  • ModuleNotFoundError: No module named ‘transformers_modules.chatglm-6b_v1‘的解决方案 126408

分类专栏

  • Python基础课程 付费 451篇
  • Linux解决方案 付费 66篇
  • Windows实用技巧 付费 67篇
  • 机器学习理论与实战 付费 34篇
  • 从零开始学习java 付费 30篇
  • Tensorflow2/keras基础课程 付费 19篇
  • Tensorflow实战教程 付费 14篇
  • Hadoop解决方案 付费 3篇
  • Javascript核心概念与实用练习 付费 16篇
  • 全面实战(java、python)理解进程及多线程 付费 5篇
  • 毕业论文撰写 付费 1篇
  • Excel数据分析实战 付费 1篇
  • AI资源收集汇总 付费 6篇
  • Java全栈开发教程 付费
  • 优质书籍推荐 38篇
  • 大模型 8篇
  • AI-Pytorch使用 5篇
  • Excel数据统计分析实战
  • 编程开发不得不懂的基础知识
  • 机器学习理论 6篇
  • 深度学习理论 14篇
  • NLP 5篇
  • java 5篇
  • 大数据 5篇
  • pycharm 1篇
  • Leetcode 13篇
  • colab实用技巧
  • 其他 32篇

最新评论

  • AIGC实战之如何构建出更好的大模型RAG系统

    码到三十五: 你的博客内容深入浅出,总是让我不再感到学习的困难,真的很感谢你的分享。继续前进吧!

  • 在jupyter notebook中取消代理服务器的解决方案

    码到三十五: 你的博客内容深入浅出,总是让我不再感到学习的困难,真的很感谢你的分享。继续前进吧!

  • 在jupyter notebook中取消代理服务器的解决方案

    冷风扇666: 优质好文,博主的文章细节很到位,兼顾实用性和可操作性,感谢博主的分享,期待博主持续带来更多好文

  • AIGC实战之如何构建出更好的大模型RAG系统

    张彦峰ZYF:  大模型爆火后的RAG系统发展,大体可以将其分为3个阶段,初级、高级、超级。初级阶段更多的是搭建起系统的pipeline;高级阶段是在召回生成测修修补补,根据badcase反推流程上的优化技巧;超级对应了从Agentic RAG、RAG不存在了、多模态RAG、结构化RAG、GraphRAG、MemoryRAG等技术飞速发展的阶段。

  • AIGC实战之如何构建出更好的大模型RAG系统

    Seal^_^: 博主的文章总是如一泓清泉,让我心旷神怡,每一篇博客都如一本启发书,我从中汲取灵感,你的文章总是让我拓展了视野,增长了见识,感谢你的专业分享。希望博主继续为我们献上这些珍宝。希望你继续为读者奉献智慧的涵泳。

最新文章

  • 在jupyter notebook中取消代理服务器的解决方案
  • AIGC实战之如何构建出更好的大模型RAG系统
  • ImportError: cannot import name ‘AutoTokenizer‘ from ‘modelscope‘解决方案
2024
09月 15篇
08月 34篇
07月 28篇
06月 23篇
05月 26篇
04月 32篇
03月 14篇
02月 14篇
01月 28篇
2023年344篇
2022年93篇
2021年36篇
2020年62篇
2019年104篇

目录

目录

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的喵喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家阳江玻璃钢战士人物雕塑海淀玻璃钢人物雕塑玻璃钢传统人物雕塑批发平顶山玻璃钢人物雕塑定制开封景观标识玻璃钢景观雕塑厂家十堰小区玻璃钢雕塑定做杭州广场玻璃钢雕塑生产厂家敦煌玻璃钢卡通座椅雕塑宜宾玻璃钢雕塑公司德阳玻璃钢雕塑莫斯科古姆百货商场圣诞美陈玻璃钢果蔬雕塑定制衢州玻璃钢仿真水果雕塑厂家深圳室内商场美陈供应海珠区公园玻璃钢人物雕塑铜陵商场大厅美陈嘉兴玻璃钢卡通雕塑玻璃钢花盆雕塑什么好长泰县玻璃钢雕塑上海室内商场美陈批发价德令哈玻璃钢雕塑商场节庆美陈开题报告玻璃钢雕塑制作图片曲阳玻璃钢雕塑网站广州玻璃钢雕塑摆件销售玻璃钢雕塑底座玻璃钢卡通水果雕塑怎么选商场专柜感恩节美陈宿州户外玻璃钢雕塑联系方式宿迁玻璃钢人物雕塑厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化