中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

python中如何輸出結果刷新及進度條

發布時間:2020-07-15 16:00:29 來源:億速云 閱讀:978 作者:小豬 欄目:開發技術

這篇文章主要為大家展示了python中如何輸出結果刷新及進度條,內容簡而易懂,下面讓小編帶大家一起學習一下吧。

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',最終打印結果如下:

python中如何輸出結果刷新及進度條

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

顯示結果如下,顯示有百分比,以及當前處理到多少個

python中如何輸出結果刷新及進度條

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))

python中如何輸出結果刷新及進度條

以上就是關于python中如何輸出結果刷新及進度條的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌什县| 元谋县| 福安市| 濮阳县| 丹巴县| 泌阳县| 新和县| 乐至县| 锦州市| 措勤县| 仪征市| 安塞县| 泗洪县| 石渠县| 泰兴市| 扶绥县| 贡嘎县| 铁岭市| 渑池县| 贵港市| 铜川市| 昌宁县| 中西区| 彰化县| 谢通门县| 平定县| 辽中县| 无棣县| 郎溪县| 尚志市| 太谷县| 保亭| 湖南省| 郸城县| 台州市| 抚宁县| 西林县| 石柱| 柳河县| 余庆县| 广灵县|