在运行代码时,会有一个进度条,显示当前代码运行的进度,但是有时会出现进度条总是换行的情况,这就让人很不爽,必须找个方法解决了。
我们来看一下tqdm的参数,及其说明:
def __init__(self, iterable=None, desc=None, total=None, leave=True, file=None,
ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None,
ascii=None, disable=False, unit='it', unit_scale=False,
dynamic_ncols=False, smoothing=0.3, bar_format=None, initial=0,
position=None, postfix=None, unit_divisor=1000, write_bytes=None,
lock_args=None, nrows=None, colour=None, delay=0, gui=False,
**kwargs):
iterable :可迭代,可选
可迭代以使用进度条进行装饰。
留空以手动管理更新。
desc:str,可选,传入一个字符串,是进度条的前缀。
total:整数或浮点数,可选
预期的迭代次数。如果未指定,
如果可能,将使用 len(可迭代)。如果 float(“inf”) 或作为最后一个
度假村,仅显示基本进度统计信息
(没有ETA,没有进度条)。
如果“gui”为 True,并且此参数需要后续更新,
指定一个初始任意大正数,
例如 9e9。
leave:bool,可选
如果 [默认值:True],则保留进度条的所有痕迹
迭代终止时。
file:'io.TextIOWrapper“或”io.”StringIO',可选
指定输出进度消息的位置
(默认值:sys.stderr)。使用 'file.write(str)' 和 'file.flush()'
方法。 有关编码,请参阅“write_bytes”。
ncols:int,可选
整个输出消息的宽度。如果指定,
动态调整进度条的大小以保持在此范围内。
如果未指定,则尝试使用环境宽度。这
回退是 10 米宽,计数器和计数器没有限制
统计学。如果为 0,则不会打印任何仪表(仅统计)。
mininterval:float,可选
最小进度显示更新间隔 [默认:0.1] 秒。
maxinterval:float,可选
最大进度显示更新间隔 [默认:10] 秒。
自动调整“最小值”以对应于“最小值”
长时间显示更新滞后。仅当“dynamic_miniters”时才有效
或启用了监视线程。
miniters:整数或浮点数,可选
最小进度显示迭代更新间隔。
如果 0 和 “dynamic_miniters”,将自动调整为相等
“mininterval”(CPU 效率更高,适合紧密循环)。
如果> 0,将跳过显示指定的迭代次数。调整这个和“mininterval”以获得非常有效的循环。
如果您的进度不稳定,快速和缓慢的迭代
(网络,跳过项目等)您应该设置最小值 = 1。
ascii:布尔或 str,可选
如果未指定或为 False,请使用 unicode(平滑块)填充
计量器。回退是使用 ASCII 字符“123456789#”。
disable:布尔,可选
是否禁用整个进度条包装器
[默认值:假]。如果设置为“无”,则在非 TTY 上禁用。
unit:str,可选
将用于定义每次迭代单位的字符串
[默认值:它]。
unit_scale:布尔或int或float,可选
如果为 1 或 True,则迭代次数将减少/缩放
自动和指标前缀,跟在
将增加国际单位制标准
(公斤、兆等)[默认值:假]。如果任何其他非零
数字,将缩放“总计”和“n”。
dynamic_ncols:布尔,可选
如果设置,则不断将“ncols”和“nrows”更改为
环境(允许窗口调整大小)[默认值:False]。
smoothing:float,可选
用于速度估计的指数移动平均线平滑因子
(在 GUI 模式下忽略)。范围从 0(平均速度)到 1
(当前/瞬时速度)[默认值:0.3]。
bar_format:str,可选
指定自定义条形字符串格式。可能会影响性能。
[默认值:'{l_bar}{bar}{r_bar}'],其中
l_bar='{desc}: {percentage:3.0f}%|' and
r_bar='|{n_fmt}/{total_fmt} [{elapsed}<{remaining}, '
'{rate_fmt}{postfix}]'
initial:整数或浮点数,可选
初始计数器值。在重新启动进度时很有用
如果使用浮点数,请考虑指定 '{n:.3f}'
或在“bar_format”中类似,或指定“unit_scale”。
position:int,可选
指定打印此条形图的线偏移量(从 0 开始)
如果未指定,则自动。
一次管理多个柱非常有用(例如,从线程)。
postfix:dict 或 *,可选
指定要在栏尾显示的其他统计信息。
如果可能,请调用“set_postfix(**后缀)”(字典)。
unit_divisor:float,可选
[默认值:1000],除非“unit_scale”为 True,否则将忽略。
write_bytes:布尔,可选
如果(默认值:无)和“文件”未指定,
字节将用Python 2编写。如果“True”也会写
字节。在所有其他情况下,将默认为 unicode。
lock_args:元组,可选
传递给中间输出的“刷新”
(初始化、迭代和更新)。
nrows:int,可选
屏幕高度。如果指定,则将嵌套条隐藏在此栏之外
绑定。如果未指定,则尝试使用环境高度。
回退为 20。
colour:str,可选
条形图颜色(例如“绿色”、“#00ff00”)。
delay:float,可选
在 [默认值: 0] 秒过去之前不显示。
gui:布尔,可选
警告:内部参数 - 请勿使用。
改用 tqdm.gui.tqdm(...)。如果设置,将尝试使用
用于图形输出的 matplotlib 动画 [默认值:False]。
回到最开始的进度条问题:
我们去修改tqdm的 ncols,指定进度条的长度,可以根据自己的显示设备进行指定:
train_bar = tqdm(train_loader,ncols=85)
解决问题: