Keras:ModelCheckpoint和model.fit的verbose有什么差异?

article/2025/8/29 18:27:50

Keras:ModelCheckpoint和model.fit的verbose有什么差异?

  • 1.软件环境⚙️
  • 2.问题描述🔍
  • 3.解决方法🐡
    • 3.1.只打开`model.fit`的`verbose`
    • 3.2.只打开`ModelCheckpoint`的`verbose`
    • 3.3.同时打开`ModelCheckpoint`和`model.fit`的`verbose`
  • 4.结论🤔

⚡插播一条老家自产的糖心苹果,多个品种,欢迎选购!有问题随时私信我⚡:🍎🍎来自雪域高原的馈赠——海拔2000米的大凉山高原生态糖心苹果,欢迎选购!!🍎🍎
在这里插入图片描述

大凉山高原生态糖心苹果

1.软件环境⚙️

Windows10 教育版64位
Python 3.6.3
Tensorflow-GPU 2.3.0
Keras 2.4.3
CUDA 10.1

2.问题描述🔍

我们知道在Keras框架中有多个verbose的设置,比如最常见的model.fit中的verbose

  def fit(self,x=None,y=None,batch_size=None,epochs=1,verbose=1,callbacks=None,validation_split=0.,validation_data=None,shuffle=True,class_weight=None,sample_weight=None,initial_epoch=0,steps_per_epoch=None,validation_steps=None,validation_batch_size=None,validation_freq=1,max_queue_size=10,workers=1,use_multiprocessing=False):"""Trains the model for a fixed number of epochs (iterations on a dataset).Arguments:cverbose: 0, 1, or 2. Verbosity mode.0 = silent, 1 = progress bar, 2 = one line per epoch.Note that the progress bar is not particularly useful whenlogged to a file, so verbose=2 is recommended when not runninginteractively (eg, in a production environment)."""

以及ModelCheckpoint中的verbose

class EarlyStopping(Callback):def __init__(self,filepath,monitor='val_loss',verbose=0,save_best_only=False,save_weights_only=False,mode='auto',save_freq='epoch',options=None,**kwargs):"""Arguments:verbose: verbosity mode, 0 or 1."""

可以看到verbose主要控制训练模型时,训练的lossaccuracy等评价指标的具体信息:

5/5 [==============================] - ETA: 0s - loss: 3.5273 - accuracy: 0.2000 - precision: 1.0000 - recall: 0.0625
Epoch 00001: val_accuracy improved from -inf to 0.50000, saving model to model_and_log\img_aug+mixup+Xception\Xception-01-3.5273-0.2000-3.3476-0.5000.h5

其实除了上面的verbosecallbacks中还有大量的verbose,比如LearningRateSchedulerEarlyStopping等等都有自己的verbose
那为什么有多个verbose呢? 相应的问题就来了:

  1. 每个verbose控制的都是同一个东西吗?
  2. 如果同时开启会不会相互覆盖设置?
  3. 有没有优先级?

在这里插入图片描述

3.解决方法🐡

本文以model.fitModelCheckpointverbose为例,展示了不同情况的verbose会产生什么影响,其它函数的verbose也是相同的结论。

3.1.只打开model.fitverbose

Epoch 1/30
1/5 [=====>........................] - ETA: 0s - loss: 3.7069 - accuracy: 0.2500 - precision: 0.5000 - recall: 1.0000
2/5 [===========>..................] - ETA: 0s - loss: 3.6293 - accuracy: 0.2500 - precision: 0.7143 - recall: 0.8333
3/5 [=================>............] - ETA: 0s - loss: 3.6301 - accuracy: 0.1667 - precision: 0.6000 - recall: 0.7500
4/5 [=======================>......] - ETA: 0s - loss: 3.6179 - accuracy: 0.1250 - precision: 0.6000 - recall: 0.5000
5/5 [==============================] - ETA: 0s - loss: 3.5854 - accuracy: 0.1000 - precision: 0.6364 - recall: 0.4375
5/5 [==============================] - 5s 900ms/step - loss: 3.5854 - accuracy: 0.1000 - precision: 0.6364 - recall: 0.4375 - val_loss: 3.3600 - val_accuracy: 0.5000 - val_precision: 0.0000e+00 - val_recall: 0.0000e+00
Epoch 2/30
1/5 [=====>........................] - ETA: 0s - loss: 3.4214 - accuracy: 0.2500 - precision: 0.0000e+00 - recall: 0.0000e+00
2/5 [===========>..................] - ETA: 0s - loss: 3.4038 - accuracy: 0.1250 - precision: 0.5000 - recall: 0.1667        
3/5 [=================>............] - ETA: 0s - loss: 3.3367 - accuracy: 0.1667 - precision: 0.5000 - recall: 0.1111
4/5 [=======================>......] - ETA: 0s - loss: 3.2700 - accuracy: 0.1875 - precision: 0.5000 - recall: 0.0833
5/5 [==============================] - ETA: 0s - loss: 3.2022 - accuracy: 0.2000 - precision: 0.6667 - recall: 0.1250
5/5 [==============================] - 3s 669ms/step - loss: 3.2022 - accuracy: 0.2000 - precision: 0.6667 - recall: 0.1250 - val_loss: 2.8924 - val_accuracy: 0.5000 - val_precision: 0.0000e+00 - val_recall: 0.0000e+00
Epoch 3/30
1/5 [=====>........................] - ETA: 0s - loss: 2.8710 - accuracy: 0.2500 - precision: 0.0000e+00 - recall: 0.0000e+00
2/5 [===========>..................] - ETA: 0s - loss: 2.8412 - accuracy: 0.1250 - precision: 0.0000e+00 - recall: 0.0000e+00
3/5 [=================>............] - ETA: 0s - loss: 2.8127 - accuracy: 0.1667 - precision: 0.5000 - recall: 0.1000        
4/5 [=======================>......] - ETA: 0s - loss: 2.7665 - accuracy: 0.1875 - precision: 0.3333 - recall: 0.1818
5/5 [==============================] - ETA: 0s - loss: 2.7303 - accuracy: 0.1500 - precision: 0.2857 - recall: 0.1429
5/5 [==============================] - 3s 627ms/step - loss: 2.7303 - accuracy: 0.1500 - precision: 0.2857 - recall: 0.1429 - val_loss: 2.3946 - val_accuracy: 0.5000 - val_precision: 0.0000e+00 - val_recall: 0.0000e+00

可以看到,这个时候只会以进度条的方式打印每一个Epoch的评价指标(包括默认的lossaccuracyprecisionrecall以及你自己设定的评价指标),不会打印模型的存储信息。

3.2.只打开ModelCheckpointverbose

可以看到,这个时候会根据ModelCheckpoint中设定的监控指标:

    checkpoint = ModelCheckpoint(model_x.__name__ + '-{epoch:02d}''-{loss:.4f}''-{accuracy:.4f}''-{val_loss:.4f}''-{val_accuracy:.4f}.h5',monitor='val_accuracy',verbose=1,mode='max',save_best_only=True)

只打印模型的存储信息,模型的评价指标(包括默认的lossaccuracyprecisionrecall以及你自己设定的评价指标)不会打印:

Epoch 00001: val_accuracy improved from -inf to 0.50000, saving model to model_and_log\img_aug+mixup+Xception\Xception-01-3.4481-0.2000-3.2658-0.5000.h5
Epoch 00002: val_accuracy did not improve from 0.50000
Epoch 00003: val_accuracy did not improve from 0.50000

3.3.同时打开ModelCheckpointmodel.fitverbose

Epoch 1/30
1/5 [=====>........................] - ETA: 0s - loss: 3.5883 - accuracy: 0.5000 - precision: 0.0000e+00 - recall: 0.0000e+00
2/5 [===========>..................] - ETA: 0s - loss: 3.5933 - accuracy: 0.2500 - precision: 1.0000 - recall: 0.1667        
3/5 [=================>............] - ETA: 0s - loss: 3.5551 - accuracy: 0.2500 - precision: 0.5000 - recall: 0.1250
4/5 [=======================>......] - ETA: 0s - loss: 3.5576 - accuracy: 0.2500 - precision: 0.6667 - recall: 0.1667
5/5 [==============================] - ETA: 0s - loss: 3.5451 - accuracy: 0.2000 - precision: 0.8000 - recall: 0.2500
Epoch 00001: val_accuracy improved from -inf to 0.50000, saving model to model_and_log\img_aug+mixup+Xception\Xception-01-3.5451-0.2000-3.3282-0.5000.h5
5/5 [==============================] - 4s 889ms/step - loss: 3.5451 - accuracy: 0.2000 - precision: 0.8000 - recall: 0.2500 - val_loss: 3.3282 - val_accuracy: 0.5000 - val_precision: 0.0000e+00 - val_recall: 0.0000e+00
Epoch 2/30
1/5 [=====>........................] - ETA: 0s - loss: 3.3335 - accuracy: 0.2500 - precision: 0.0000e+00 - recall: 0.0000e+00
2/5 [===========>..................] - ETA: 0s - loss: 3.3294 - accuracy: 0.1250 - precision: 0.0000e+00 - recall: 0.0000e+00
3/5 [=================>............] - ETA: 0s - loss: 3.2696 - accuracy: 0.1667 - precision: 0.5000 - recall: 0.1111        
4/5 [=======================>......] - ETA: 0s - loss: 3.1904 - accuracy: 0.1875 - precision: 0.6667 - recall: 0.1667
5/5 [==============================] - ETA: 0s - loss: 3.1653 - accuracy: 0.1500 - precision: 0.8000 - recall: 0.2500
Epoch 00002: val_accuracy did not improve from 0.50000
5/5 [==============================] - 3s 599ms/step - loss: 3.1653 - accuracy: 0.1500 - precision: 0.8000 - recall: 0.2500 - val_loss: 2.8628 - val_accuracy: 0.5000 - val_precision: 0.5000 - val_recall: 1.0000
learning_rate= 0.00285
Epoch 3/30
1/5 [=====>........................] - ETA: 0s - loss: 2.8587 - accuracy: 0.2500 - precision: 0.5000 - recall: 0.5000
2/5 [===========>..................] - ETA: 0s - loss: 2.8461 - accuracy: 0.1250 - precision: 0.7500 - recall: 0.5000
3/5 [=================>............] - ETA: 0s - loss: 2.7913 - accuracy: 0.1667 - precision: 0.8000 - recall: 0.4000
4/5 [=======================>......] - ETA: 0s - loss: 2.7635 - accuracy: 0.2500 - precision: 0.6250 - recall: 0.4545
5/5 [==============================] - ETA: 0s - loss: 2.7230 - accuracy: 0.2500 - precision: 0.6364 - recall: 0.5000
Epoch 00003: val_accuracy did not improve from 0.50000
5/5 [==============================] - 3s 617ms/step - loss: 2.7230 - accuracy: 0.2500 - precision: 0.6364 - recall: 0.5000 - val_loss: 2.3710 - val_accuracy: 0.5000 - val_precision: 0.5000 - val_recall: 1.0000

可以看到,如果二者同时打开的话,模型的评价指标和存储信息均会打印,并不会产生影响,二者是完全独立的!

4.结论🤔

  1. model.fitverbose负责打印每一个Epoch的评价指标(包括默认的lossaccuracyprecisionrecall以及你自己设定的评价指标)
  2. ModelCheckpointverbose负责打印模型的存储信息,如存储路径存储模型的文件名
  3. 二者是完全独立的不会相互覆盖

渣男!都看到这里了,还不赶紧点赞评论收藏走一波?


http://chatgpt.dhexx.cn/article/QCL8GFcM.shtml

相关文章

keras 中的verbose详解

转载自https://www.jianshu.com/p/159a9ac413fa 在 fit 和 evaluate 中 都有 verbose 这个参数,下面详细说一下 fit 中的 verbose verbose:日志显示 verbose 0 为不在标准输出流输出日志信息 verbose 1 为输出进度条记录 verbose 2 为每个epoch输出…

力扣1002. 查找共用字符

题目 给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。 示例: 输入:words ["bella","…

杭电OJ 1002 题目解答

HDOJ 1002 AB Problem Ⅱ AC 代码&#xff1a; #include <iostream> #include <string> #include <algorithm> using namespace std;int x[1001],y[1001],res[1001];int main() {int n;cin>>n;for(int k1;k<n;k){//重点//不是第一组时要做两个操…

东秦oj 1002

题目描述 输入两个数A,B&#xff0c;输出AB的值。 输入描述 第一行是数据的组数N&#xff0c;从第二行开始是NN组由两个整数&#xff08;A和B&#xff09;构成的数据&#xff0c;AA和BB之间用空格隔开&#xff0c;每组输入单独占一行 输出描述 每组的两个整数&#xff08;…

PAT 1002 解析

一、题目详情 问题描述&#xff1a;写出这个数 读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10100。 输出格式&…

题1000、1001、1002

第一次使用上交的online judge&#xff0c;都翻译成了中文的&#xff0c;也还不错。只是没有提示使用环境的&#xff0c;我写的程序在VS2010下编译正确&#xff0c;但提交竟然报错&#xff0c;后来限制了一些。 1000题就是计算两个整数的相加&#xff1b; 1001题是判断一个列…

1002 写出这个数

想好好写一下这个题&#xff0c;因为一开始写了一百多行都没有写正确… 如果不想看那么多直接拉到最后看代码&#xff0c;但是也许我的解题过程会对你有帮助。 之前的思路&#xff1a; 用除10取余循环计算得到一个sum也就是各个数字的和&#xff0c;然后把sum倒转回来在除10取…

1002 写出这个数 ——c++实现

1.题目介绍 2. 思路 这道题目较好理解&#xff0c;只是实现起来有几点要注意&#xff1a; &#xff08;1&#xff09;正整数的范围。题目中规定n<10^100&#xff0c;这是个很大的数字。long long类型最大到2^63-1&#xff0c;也远小于这个数。但我最开始没有考虑这一点&am…

1002 写出这个数 (C语言实现)

题目描述&#xff1a; 读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10^100。 输出格式&#xff1a; 在一行内输出…

算法竞赛入门经典训练指南 pdf

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01; 下载地址&#xff1a;网盘下载 基本介绍 编…

《算法竞赛入门经典》Chap3

《算法竞赛入门经典&#xff08;第二版&#xff09;》第三章 思考题题目1 必要的存储量题目2 统计字符1的个数 示例程序程序3-1 逆序输出程序3-2 开灯问题程序3-3 蛇形填数程序3-4 竖式问题 例题例题3-1 Tex中的引号 (Tex Quotes, UVa 272)例题3-2 WERTYU (WERTYU, UVa 10082)例…

【算法竞赛从入门到精通】【基础算法】

基础算法 贪心法的基本思想如何判断一个题目能用贪心法&#xff1f;常见问题最少硬币问题活动安排问题&#xff08;区间调度问题&#xff09;区间覆盖问题最优装载问题多机调度问题 Huffman编码[poj 1521"Entropy"](http://poj.org/problem?id1521) 模拟退火 使用分…

算法竞赛入门经典习题

第一章&#xff1a;程序设计入门 总结 1、%.2f 表示保留两位小数 2、const double Piacos(-1.0) //尽量用const声明常量 3、三整数排序&#xff1a; If(a>b) {交换} if(a>c){交换} if(b>c){交换}第二章&#xff1a;循环结构设计 总结 1、重复次数可变、递增&…

《算法竞赛入门经典(第2版)》

《算法竞赛入门经典(第2版)》 基本信息 作者&#xff1a; 刘汝佳 丛书名&#xff1a; 算法艺术与信息学竞赛 出版社&#xff1a;清华大学出版社 ISBN&#xff1a;9787302356288 上架时间&#xff1a;2014-6-5 出版日期&#xff1a;2014 年6月 开本&#xff1a;16开 页码&…

《算法竞赛入门经典》(第二版)代码及详细解释(持续更新!)

笔者中山大学硕士&#xff0c;医学生计科学生的集合体&#xff0c;机器学习爱好者。 现发布【刘汝佳《算法竞赛入门经典》&#xff08;第二版&#xff09;——紫书】的例题和习题的代码和详细解释。 欢迎批评指正&#xff01; 另外欢迎关注本人微信公众号——程序员Yukyin …

算法竞赛入门知识干货

前言&#xff1a;本篇总结一部分来自刘汝佳老师的《算法竞赛入门经典》&#xff0c;一部分是个人竞赛学习中的一些算法知识点总结&#xff0c;是初学算法走了不弯路一点点积累起来的干货&#xff0c;对刚刚参加竞赛的盆友应该会很有帮助&#xff0c;如有不足请提出 一.程序设计…

《算法竞赛入门经典》——刘汝佳

“构造性”和“可行性”是计算机学科的两个最根本特征。 比赛的核心是算法 #1 语言篇 编程不是看会的&#xff0c;也不是听会的&#xff0c;而是练会的&#xff0c;所以应尽量在计算机旁阅读书本&#xff0c;以便把书中的程序输入到计算机中进行调试&#xff0c;顺便再做做上机…

ntoskrnl.exe占用大量cpu解决方法

ntoskrnl.exe 计划任务里面结束关于空闲时段内存自检的任务

ntoskrnl.exe占用cpu高

winr -->control 打开控制面板 还是过高&#xff0c;重启即可 转载于:https://my.oschina.net/u/2425353/blog/3081583

Win10开机提示蓝屏错误ntoskrnl.exe怎么修复?

1、下载bluescreenview软件。 2、下载后解压缩&#xff0c;启动就可以查看蓝屏原因了&#xff01;如下图所示 3、发现问题出在ntoskrnl.exe这个文件上&#xff0c;我重新下载这个文件替换也没用&#xff01; 4、继续解决问题&#xff0c;同时按下winX按键&#xff0c;如下图…