python输出结果刷新及进度条的实现操作
作者:huanghao10 发布时间:2022-09-24 15:13:15
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))
来源:https://blog.csdn.net/huanghaocs/article/details/89345059
猜你喜欢
- 在python处理数据时,经常用到DataFrame和set。train=pd.read_csv('XXX.csv')#读取
- 引言在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而
- 介绍在机器视觉领域的深度学习中,每个数据集都有一份标注好的数据用于训练神经网络。为了节省空间,很多数据集的标注文件使用RLE的格式。但是神经
- 写一个python脚本,实现简单的http服务器功能:1.浏览器中输入网站地址:172.20.52.163:200142.server接到浏
- 前言k-means算法是无监督的聚类算法,实现起来较为简单,k-means++可以理解为k-means的增强版,在初始化中心点的方式上比k-
- 一. 输出函数print在python中,print()是可以直接使用的输出函数,将数据输出到控制台上。1. print函数的使用1.1 可
- 今天给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如
- 有时我们会碰到类似下面这样的 unicode 字符串:u'\xe4\xbd\xa0\xe5\xa5\xbd'这明显不是一个正
- 效果是这样的 ↓ ↓ ↓ 一、环境要求windows系统,python3.6+ pip21+开发环境搭建地址一起来学pygame吧
- 这篇文章主要介绍了python 类的继承 实例方法.静态方法.类方法的代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定
- 首先介绍下简朝阳.现就职于阿里巴巴(中国)网络技术有限公司DBA Team运维部, 简朝阳是本次MYSQL技术征文大赛第三名得主(获奖文章:
- 在使用操作XML文件时,我们可以使用Load方法直接加载xml文件即可,在ie和ff下通用。但是是XML字符串,则在两种浏览器下就会有所不同
- 最近做有关GPS轨迹上有关的东西,花费心思较多,对两个常用的函数总结一下,求距离和求方位角,比较精确,欢迎交流!1. 求两个经纬点的方位角,
- 概述递归函数即直接或间接调用自身的函数,且递归过程中必须有一个明确的递归结束条件,称为递归出口。递归极其强大一点就是能够遍历任意的,不可预知
- Python中对于数组和列表进行切片操作是很频繁的,当然对于切片的操作可供我们直接使用的函数也是很遍历了,我们今天主要简单总结一下常用集中索
- 一.配置版本Java JDK 1.8.0_111Python 3.9.6Spark 3.1.2Hadoop 3.2.2二.配置环境 
- 小张的Pycharm最近弹出提示框 Your license has expired提示过期....纳尼!!!!是不是看到这个也很头疼,。于
- 如何做一个检索结果带链接的检索?具体代码和说明如下:<% data=request.form("search_da
- js模拟随机抽奖程序代码!相关文章推荐:随机6+1选号码摇奖程序 <html><title>模拟抽奖-asp之家&l
- 前言文接上回,我们已经使用gojs实现了一个最最最基本的树形布局。这次我们开始对图形的骨架进行一个内容展示上的丰富和显示风格上的美化。可以说