You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在含model.predict的os.listdir循环中正确显示tqdm进度条?

解决tqdm与Keras predict进度条冲突的问题

问题原因

Keras的model.predict()方法默认会启用自身的进度条,当你在tqdm循环内调用该方法时,两个进度条会互相干扰,导致出现多条小型的Keras进度条,你需要的文件级tqdm进度条无法正常显示。

解决方案

方法1:关闭Keras predict的内置进度条

直接在调用model.predict()时设置verbose=0,禁用其自带的进度条输出:

for filename in tqdm(os.listdir('train')):
    path = os.path.join('train', filename)
    for i in range(9):
        # 通过verbose=0关闭Keras的进度条
        features = model.predict(some_array, verbose=0)

方法2:嵌套tqdm实现多级进度监控(可选)

如果需要同时监控文件处理进度和每个文件内的子任务进度,可以嵌套使用tqdm,同时确保关闭Keras的进度条:

for filename in tqdm.tqdm(os.listdir('train'), desc="处理文件"):
    path = os.path.join('train', filename)
    # leave=False让内层进度条完成后自动清除,避免冗余输出
    for i in tqdm.tqdm(range(9), desc=f"处理{filename}的子任务", leave=False):
        features = model.predict(some_array, verbose=0)

效果说明

修改后,原本的多条小型Keras进度条会消失,只会显示你需要的文件级(或嵌套的子任务级)tqdm进度条,清晰展示整体处理进度。

内容的提问来源于stack exchange,提问作者Lorenzo Cutrupi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 17:42:04