溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

tqdm庫如何在python項(xiàng)目中使用

發(fā)布時(shí)間:2020-12-01 16:02:07 來源:億速云 閱讀:268 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)tqdm庫如何在python項(xiàng)目中使用 ,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。

Tqdm庫比較常用,用于顯示進(jìn)度條。

簡單用法:

from tqdm import tqdm

 for i in tqdm(range(2)): 
 pass

100%|███████████████████| 2/2 [00:00<00:00, 1998.72it/s]

??從上面可以看到生成一個(gè)長度為2的列表傳入tqdm中,在for中迭代,此時(shí)輸出了進(jìn)度條,這里tqdm全部使用了默認(rèn)參數(shù),默認(rèn)進(jìn)度條樣式就是如上所示;通常默認(rèn)進(jìn)度條所輸出的信息并不滿足我們的需求,tqdm還可以定制進(jìn)度條樣式;
??tdqm數(shù)據(jù)參數(shù)支持的數(shù)據(jù)類型是可迭代的對象iterable,在Python中默認(rèn)的可迭代對象有:list、str、tuple、dict、file、xrange等,當(dāng)然還有自定義可迭代對象;

tqdm參數(shù)

desc=None,     str類型,作為進(jìn)度條說明
total=None,     預(yù)期的迭代次數(shù)   
file=None,     輸出方式,默認(rèn)為sys.stderr
ncols=None,    進(jìn)度條長度
mininterval=0.1,   進(jìn)度條最小的更新間隔,單位秒,默認(rèn):0.1
maxinterval=10.0,  進(jìn)度條最大更新間隔,單位秒,默認(rèn):10
unit='it',      單位,默認(rèn)it每秒迭代數(shù)
bar_format=None,  進(jìn)度條格式
postfix       字典形式信息,例如:速度=5

??這些參數(shù)為相對比較常用的參數(shù),并且全部都是可選參數(shù);在自定義進(jìn)度條當(dāng)中比較重要的的一個(gè)參數(shù)為:bar_format,用于定義進(jìn)度條的具體格式,所包含的具體數(shù)據(jù)信息;
??下面主要介紹這個(gè)參數(shù)的具體用法;

  Specify a custom bar string formatting. May impact performance.
  [default: '{l_bar}{bar}{r_bar}'], where
  l_bar='{desc}: {percentage:3.0f}%|' and
  r_bar='| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, '
   '{rate_fmt}{postfix}]'
  Possible vars: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,
   percentage, elapsed, elapsed_s, ncols, nrows, desc, unit,
   rate, rate_fmt, rate_noinv, rate_noinv_fmt,
   rate_inv, rate_inv_fmt, postfix, unit_divisor,
   remaining, remaining_s.
  Note that a trailing ": " is automatically removed after {desc}
  if the latter is empty.

上面為tqdm對bar_format的參數(shù)描述;從中可看出:
進(jìn)度條默認(rèn)格式為: {l_bar}{bar}{r_bar}
進(jìn)度條分為三部分: 中間的圖形(bar),圖形左邊(l_bar)、圖形右邊(r_bar)

  • l_bar: {desc}: {percentage:3.0f}%|

  • bar: 進(jìn)度條

  • r_bar: |{n_fmt}/{total_fmt}[{elapsed}<{remaining},{rate_fmt}{postfix}]

100%|█████████████████| 3/3 [00:03<00:00, 1.00s/it]

percentage:百分比
n_fmt:當(dāng)前數(shù)
total_fmt:總數(shù)
elapsed:消耗的時(shí)間
remaining:剩余時(shí)間
rate_fmt:速率
postifx:后綴字典描述
desc、postfix默認(rèn)為空;

自定義進(jìn)度條:

1、bar_format=
'進(jìn)度:{percentage:3.0f}%|{bar}|{n}/{total}[{elapsed}<{remaining},{rate_fmt}{postfix}]'
進(jìn)度:100%|████████████████████|3/3[00:03<00:00, 1.00s/it]

2、bar_format='進(jìn)度:{percentage:3.0f}%|{bar}|{n}/{total}[{rate_fmt}{postfix}]'
進(jìn)度:100%|████████████████████|3/3[ 1.00s/it]

批量數(shù)據(jù)進(jìn)度條

import numpy as np
from torch.utils.data import DataLoader
import time
from tqdm import tqdm, tqdm_notebook
from random import random

data =np.array([1,2,3,4])
data_loader = DataLoader(data, batch_size=2, num_workers=0, shuffle=False)

iterator = tqdm(data_loader,maxinterval=10,
        mininterval=2, ncols=80,
        bar_format='{l_bar}|{bar}| {n_fmt}/{total_fmt} [{rate_fmt}{postfix}|{elapsed}<{remaining}]',
        nrows=10,smoothing=0.1)
epoch =0
for d in iterator:
  time.sleep(2)
  epoch +=1
  print(d)
  iterator.set_description('epoch %d' %epoch)
  iterator.set_postfix_str('loss={:^7.3f}'.format(random()))

tqdm庫如何在python項(xiàng)目中使用

關(guān)于tqdm庫如何在python項(xiàng)目中使用 就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI