添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
更新时间:2020年07月13日 15:25:35   作者:huanghao10
这篇文章主要介绍了python输出结果刷新及进度条的实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

print函数

python输出主要使用print函数,print函数介绍:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

*objects表示要打印的值,表示多个无名参数或需要打印的值;

sep=' ',对应上面要打印的值中间间隔,默认一个空格;

end='\n',传入值打印完后的结束符号,默认为换行符,可以自行设置;

file=sys.stdout,设置打印输出参数,默认打印到终端,也可设置打印保存到文件;

flush=False,是否刷新打印结果。

一行输出结果并刷新

在一行中显示输出结果,每次刷新,其中'\r'表示回到当前的开头,end=''表示结束符为空,这样就可以每次更新结果

import time for i in range(15): time.sleep(0.5) # 这里为了查看输出变化,实际使用不需要sleep print('\r', i, end='') # print('\r', 15-i, end='') # 从两位变一位会有问题

上面代码有个问题,当输出i从大到小,有位数变化时,结果不正确,可用format格式化输出,可解决问题:

import time for i in range(15): time.sleep(0.5) print('\r', "{:d}".format(15-i), end='')

模型训练中loss和acc的刷新输出

我们在训练机器学习和深度学习模型中,总会隔一段时间输出损失函数和准确率,每次都直接print输出,终端会输出很多信息,这里用单行输出并刷新的方法来输出这些信息,我们设置epochs和batch的数量,每次batch输出刷新,一个epoch完后同时输出train和test的结果。

import time # 设置epochs和batch的数量 epochs = 5 n_batch = 15 # 这里是测试自己设置的loss和acc train_loss = 1.2345 train_acc = 0.345678 test_loss = 1.1234 test_acc = 0.235467 for i in range(epochs): for j in range(n_batch): time.sleep(0.5) train_loss -= 0.001 train_acc += 0.0001 print("\rEpoch: {:d} batch: {:d} loss: {:.4f} acc: {:.4f} | {:.2%}" .format(i+1, j+1, train_loss, train_acc, (j+1)*1.0/n_batch), end='') test_loss -= 0.001 test_acc += 0.0001 print("\rEpoch: {:d}/{:d} train_loss: {:.4f} test_loss: {:.4f} train_acc: {:.4f} test_acc: {:.4f}" .format(i+1, 5, train_loss, test_loss, train_acc, test_acc), end='\n')

这里注意,print里"Epoch"前面有一个"\r",这个必须要有,同时里面循环end='',外面循环end='\n',最终打印结果如下:

tqdm显示进度条

首先安装tqdm:pip install tqdm

简单使用,读取整数,直接在tqdm中传入一个list, 如果直接给定的是一个整数,可以直接用trange

import time from tqdm import tqdm, trange for i in tqdm(range(100)): time.sleep(0.05) # do something # for i in trange(100): # time.sleep(0.05) # # do something

显示结果如下,显示有百分比,以及当前处理到多少个

tdqm输入的list可以是字符串,也可以对输出进度条加一些描述

import time from tqdm import tqdm pbar = tqdm(["a", "b", "c", "d", "e"]) for char in pbar: time.sleep(0.8) pbar.set_description("Processing %s" % char) # pbar.set_description("Processing {0}".format(char))

以上这篇python输出结果刷新及进度条的实现操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • python图形绘制奥运五环实例讲解

    python图形绘制奥运五环实例讲解

    在本文里我们给大家整理了一篇关于python图形绘制奥运五环的实例内容,大家可以跟着学习下。
    2019-09-09
  • Python基于Socket实现的简单聊天程序示例

    Python基于Socket实现的简单聊天程序示例

    这篇文章主要介绍了Python基于Socket实现的简单聊天程序,结合简单实例形式分析了Python聊天程序的客户端与服务器端相关实现技巧,需要的朋友可以参考下
    2017-08-08
  • Python函数基础

    Python函数基础

    这篇文章主要从函数开始介绍展开Python函数,以最基本的函数定义方法描述,需要的朋友可以参考下文简单的介绍
    2021-08-08
  • Django限制API访问频率常用方法解析

    Django限制API访问频率常用方法解析

    这篇文章主要介绍了Django限制API访问频率常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • python发送邮件脚本

    python发送邮件脚本

    这篇文章主要为大家详细介绍了发送邮件python脚本,支持多个附件,中文,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • 关于使用python反编译apk签名出包的问题

    关于使用python反编译apk签名出包的问题

    这篇文章主要介绍了使用python反编译apk签名出包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python paramiko 模块浅谈与SSH主要功能模拟解析

    Python paramiko 模块浅谈与SSH主要功能模拟解析

    这篇文章主要介绍了Python paramiko 模块详解与SSH主要功能模拟,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • python DataFrame 取差集实例

    python DataFrame 取差集实例

    今天小编就为大家分享一篇python DataFrame 取差集实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python如何使用logging为Flask增加logid

    Python如何使用logging为Flask增加logid

    这篇文章主要介绍了Python如何使用logging为Flask增加logid,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • Python StringIO如何在内存中读写str

    Python StringIO如何在内存中读写str

    这篇文章主要介绍了python StringIO如何在内存中读写str,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01