python中tqdm使用,對于for和while下的兩種不同情況問題
python tqdm使用,對于for和while下兩種不同情況
while,for中使用tqdm
關(guān)于"while:"

關(guān)于"for:"

結(jié)論
進度條出現(xiàn)的形式不一樣
使用tqdm繪制進度條的三種方法
tqdm簡介
tqdm是一個python進度條庫,可以在 Python長循環(huán)中添加一個進度提示信息。

3種使用方法
1.tqdm(range)-自動更新
import time
from tqdm import range
# 自動更新
for i in tqdm(range(10)): # 共可以更新10次進度條
time. Sleep(0.5) # 每次更新間隔0.5s
range(10)意味著這里的進度條可以更新10次,由于這里是自動更新,所以一次循環(huán)就會更新進度條1,每次更新間隔0.5s。
2.trange()-自動更新
import time
from tqdm import trange
for i in trange(10):
time.sleep(0.5)
這個的效果和方法1一樣。
3.手動控制更新
from tqdm import tqdm
# 用with語句,進度條完成后會自動關(guān)閉
with tqdm(total=10) as pbar:
for i in range(10):
time. Sleep(0.5)
pbar.update(1)
# 變量在外部創(chuàng)建,進度結(jié)束后手動關(guān)閉
phar = tqdm(total=100)
for i in range(100):
time.sleep(0.1)
phar.update(1)
phar.close()這里的total=10意味著這里的進度條可以更新十次,由于這里是手動更新,需要使用update()方法,update(1)意味著每次更新進度1,每次更新間隔0.5s。

應(yīng)用舉例
以方法3在有關(guān)代碼中的使用為例,其代碼可以這樣寫:
# 開始訓(xùn)練
for epoch in range(num_epochs):
train_l_sum, train_acc_sum, n, start = 0.0, 0.0, 0, time. Time()
with tqdm(total=468, desc="Epoch: %d" % epoch) as pbar:
for idx, (X, y) in enumerate(train_iter, 0):
X = X.to(device)
y = y.to(device)
y_hat = net(X)
l = loss(y_hat, y).sum()
optimizer.zero_grad()
l.backward()
optimizer. Step()
train_l_sum += l.item()
train_acc_sum += (y_hat.argmax(dim=1) == y).float().sum().item()
n += y.shape[0]
pbar.update(1) # 更新一次進度1
test_acc = evaluate_accuracy(test_iter, net)
# 在進度條上顯示有關(guān)信息
pbar.set_postfix({
'loss': '%.4f' % (train_l_sum / n),
'train acc': '%.3f' % (train_acc_sum / n),
'test acc': '%.3f' % test_acc ,
'time': '%.1f time. Time.time() - start)
})總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)與算法之圖的基本實現(xiàn)及迭代器實例詳解
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之圖的基本實現(xiàn)及迭代器,結(jié)合實例形式詳細分析了數(shù)據(jù)結(jié)構(gòu)與算法中圖的實現(xiàn)及迭代器相關(guān)算法原理與操作技巧,需要的朋友可以參考下2017-12-12
使用Python實現(xiàn)一個蔡徐坤大戰(zhàn)籃球的小游戲(推薦)
這篇文章主要介紹了用Python實現(xiàn)一個蔡徐坤大戰(zhàn)籃球的小游戲,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
Python使用eval函數(shù)解析和執(zhí)行字符串
在Python中,eval函數(shù)是一個非常強大的函數(shù),它可以將字符串作為代碼進行解析和執(zhí)行,本文主要介紹了如何使用eval函數(shù)解析和執(zhí)行字符串,需要的可以了解下2024-01-01
使用TensorFlow對圖像進行隨機旋轉(zhuǎn)的實現(xiàn)示例
這篇文章主要介紹了使用TensorFlow對圖像進行隨機旋轉(zhuǎn)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01

