文章目录

  • 1.Keras版本模型训练
    • 1)案例1:keras版本模型训练
    • 2)使用样本加权与类别加权
    • 3)使用回调函数
      • 3.1EarlyStopping(早停)
      • 3.2checkpoint模型
      • 3.3使用回调函数实现动态学习率调整
    • 4)案例四:将数据传递到多输入、多输出模型
      • 4.1损失函数
      • 4.2指标函数
  • 2.完整运行


掌握keras版本模型训练操作以及回调函数的使用

1.Keras版本模型训练

 - 构建模型(顺序模型、函数式模型、子类模型)- 模型训练:model.fit()- 模型验证:model.evaluate()- 模型预测:model.predict()- 使用样本加权和类别加权

1)案例1:keras版本模型训练





2)使用样本加权与类别加权

除了输入数据和目标数据外,还可以在使用时将样本权重或类权重传递给模型fit:从Numpy数据进行训练时:通过sample_weight和class_weight参数。 从数据集训练时:通过使数据集返回
一个元组(input_batch, target_batch, sample_weight_batch)。 “样本权重”数组是一个数字数组,
用于指定批次中每个样本在计算总损失时应具有的权重。它通常用于不平衡的分类问题中(这种想法是为很少
见的班级赋予更多的权重)。当所使用的权重为1和0时,该数组可用作损失函数的掩码(完全丢弃某些样本对
总损失的贡献)。“类别权重”字典是同一概念的一个更具体的实例:它将类别索引映射到应该用于属于该类别的样本的样本权重。
例如,如果在数据中类“ 0”的表示量比类“ 1”的表示量少两倍,则可以使用
class_weight={0: 1., 1: 0.5}。这是一个Numpy示例,其中我们使用类权重或样本权重来更加重视第5类的正确分类。



样本加权
*

3)使用回调函数

Keras中的回调是在训练期间(在某个时期开始时,在批处理结束时,在某个时期结束时等)在不同时间点调用
的对象,这些对象可用于实现以下行为:在训练过程中的不同时间点进行验证(除了内置的按时间段验证)
定期或在超过特定精度阈值时对模型进行检查
当训练似乎停滞不前时,更改模型的学习率
当训练似乎停滞不前时,对顶层进行微调
在训练结束或超出特定性能阈值时发送电子邮件或即时消息通知 等等。 回调可以作为列表传递给model.fit
许多内置的回调可用:ModelCheckpoint:定期保存模型。
EarlyStopping:当培训不再改善验证指标时,停止培训。
TensorBoard:定期编写可在TensorBoard中可视化的模型日志(更多详细信息,请参见“可视化”部分)。
CSVLogger:将损失和指标数据流式传输到CSV文件。 等等
3.1EarlyStopping(早停)
monitor: 被监测的数据。
min_delta: 在被监测的数据中被认为是提升的最小变化, 例如,小于 min_delta 的绝对变化会被认为没有
提升。
patience: 没有进步的训练轮数,在这之后训练就会被停止。
verbose: 详细信息模式。
mode: {auto, min, max} 其中之一。 在 min 模式中, 当被监测的数据停止下降,训练就会停止;
在 max 模式中,当被监测的数据停止上升,训练就会停止;在 auto 模式中,方向会自动从被监测的数据
的名字中判断出来。

3.2checkpoint模型
在相对较大的数据集上训练模型时,至关重要的是要定期保存模型的checkpoint。最简单的方法是使用ModelCheckpoint回调:

3.3使用回调函数实现动态学习率调整
由于优化程序无法访问验证指标,因此无法使用这些计划对象来实现动态学习率计划(例如,当验证损失不再改
善时降低学习率)。但是,回调确实可以访问所有指标,包括验证指标!因此,可以通过使用回调来修改优化程序上的当前学习率,
从而实现此模式。实际上,它是作为ReduceLROnPlateau回调内置的。
ReduceLROnPlateau参数monitor: 被监测的指标。
factor: 学习速率被降低的因数。新的学习速率 = 学习速率 * 因数
patience: 没有进步的训练轮数,在这之后训练速率会被降低。
verbose: 整数。0:安静,1:更新信息。
mode: {auto, min, max} 其中之一。如果是 min 模式,学习速率会被降低如果被监测的数据已经停止下
降; 在 max 模式,学习塑料会被降低如果被监测的数据已经停止上升; 在 auto 模式,方向会被从被监测
的数据中自动推断出来。
min_delta: 衡量新的最佳阈值,仅关注重大变化。
cooldown: 在学习速率被降低之后,重新恢复正常操作之前等待的训练轮数量。
min_lr: 学习速率的下边界。

4)案例四:将数据传递到多输入、多输出模型

考虑以下模型,该模型具有形状的图像输入(32, 32, 3)(即(height, width, channels))和形状的时间
序列输入(None, 10)(即(timesteps, features))。我们的模型将具有根据这些输入的组合计算出的两个
输出:“得分”(形状(1,))和五类(形状(5,))的概率分布。


绘制这个模型,图中显示的形状是批处理形状

4.1损失函数

4.2指标函数


2.完整运行

深度学习2-keras模型训练相关推荐

  1. 深度学习学习率对模型训练的影响

    文章目录 1. 学习率和batchsize的重要性 2. 学习率如何影响模型性能 2.1 初始学习率大小对模型性能的影响 2.2 学习率变化策略对模型性能的影响 2.2.1 预设规则学习率变化法 2. ...

  2. 【20210910】【机器/深度学习】lightGBM模型训练中报错:“Cannot set reference after freed raw data“

    一.原因在于: lightGBM模型训练完之后,Dataset的数据就会被清空,虽然在变量中它还存在,但实际已经被清空了,所以要再使用的话,需要重新生成! 二.补充知识点: lightGBM 模型训练 ...

  3. [深度学习-实践]Transformer模型训练IMDB-tensorflow2 keras

    1. 引言 什么是Self-attention, Muti-attention和Transformer 2. 数据预处理 mdb影评的数据集介绍与下载 下载后执行下面预处理代码,把每个词都转化为索引. ...

  4. Python深度学习13——Keras模型的可视化(神经网络结构图)

    报错问题 Failed to import pydot. You must `pip install pydot` and install graphviz 我们在调用keras里面的高级API--p ...

  5. 【深度学习】Keras加载权重更新模型训练的教程(MobileNet)

    [深度学习]Keras加载权重更新模型训练的教程(MobileNet) 文章目录 1 重新训练 2 keras常用模块的简单介绍 3 使用预训练模型提取特征(口罩检测) 4 总结 1 重新训练 重新建 ...

  6. DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略

    DL框架之Keras:深度学习框架Keras框架的简介.安装(Python库).相关概念.Keras模型使用.使用方法之详细攻略 目录 Keras的简介 1.Keras的特点 2.Keras四大特性 ...

  7. 深度学习:Keras基础--序贯模型(sequential)

    深度学习:Keras入门(一)之基础篇 1.Keras搭建神经网络: Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模 ...

  8. Keras深度学习使用VGG16预训练神经网络实现猫狗分类

    Keras深度学习使用VGG16预训练神经网络实现猫狗分类 最近刚刚接触深度学习不久,而Keras呢,是在众多的深度学习框架中,最适合上手的,而猫狗的图像分类呢,也算是计算机视觉中的一个经典案例,下面 ...

  9. 深度学习的seq2seq模型——本质是LSTM,训练过程是使得所有样本的p(y1,...,yT‘|x1,...,xT)概率之和最大...

    from:https://baijiahao.baidu.com/s?id=1584177164196579663&wfr=spider&for=pc seq2seq模型是以编码(En ...

  10. 【深度学习】Keras和Tensorflow框架使用区别辨析

    [深度学习]Keras和Tensorflow框架使用区别辨析 文章目录 1 概述 2 Keras简介 3 Tensorflow简介 4 使用tensorflow的几个小例子 5 Keras搭建CNN ...

最新文章

  1. 渗透中poc、exp、payload与shellcode的区别
  2. es中的DiscoveryModule
  3. python导入csv文件是如何预览后10行-使用python中的csv reader只读取前N行csv文件
  4. BLE Mesh(1)—— 简述
  5. 写python的c扩展简介
  6. TensorFlow——[基本图像分类]fashion-mnist及mnist_reader.py运行错误[TypeError: Invalid dimensions for image data]
  7. NET快速信息化系统开发框架 V3.2 - “用户管理”主界面使用多表头展示、增加打印功能...
  8. 本地未安装Oracle数据库,如何连接远程Oracle数据库
  9. webpack2.0构建Reactjs基础工程
  10. GDAL被java调用 Cannot find proj.db
  11. 用where导致group by分组字段的索引失效
  12. 基于ZStack构建深度学习云平台
  13. 《WINDOWS游戏编程之从零开始》第三章学习笔记
  14. 5.一个非常好用的扒站工具IDM
  15. OSChina 周五乱弹 —— 企鹅尼克号
  16. python爬取招聘网信息并保存为csv文件
  17. AMD无悔卖掉晶圆厂:代工好处多 产能不再是问题
  18. 《金刚般若波罗蜜经》分段贯释
  19. 归因分析_归因分析:如何衡量影响? (第2部分,共2部分)
  20. 用python读取身份证信息的功能分析与实现,兼述python调用dll的方法

热门文章

  1. (转)PHP利用Curl、socket、file_get_contents POST数据
  2. 如何开始rails项目
  3. 模块电源(二):电感式DC-DC升压器
  4. 表格制作模块xlwt
  5. C#中out和ref之间的区别
  6. linux和windows下TIME_WAIT过多的解决办法
  7. Jquery点点滴滴-draggable对象和droppable对象
  8. Javascript 四种输出方式
  9. [SCOI2010]连续攻击游戏
  10. Java必知必会:异常机制详解