pytorch?SummaryWriter保存日志的方法
在pytorch框架中,關(guān)于日志的保存,其中一種方式就是借鑒使用了tensorboard的庫(kù)。所以我們需要在環(huán)境中安裝tensorboard庫(kù),然后再在工程中進(jìn)行該庫(kù)的調(diào)用
1 安裝與導(dǎo)入
安裝:conda install tensorboardX 或者 pip install tensorboardX
導(dǎo)入
from tensorboardX import SummaryWriter writer = SummaryWriter(logPath) ... writer.close()
2 添加需要保存標(biāo)量數(shù)據(jù)

- add_scalar(tag, scalar_value, global_step=None) 從源碼中我們能看到核心的三個(gè)參數(shù)為前三個(gè)。通俗的講分別代表
- tag:圖的標(biāo)簽名,唯一標(biāo)識(shí)
- scalar_value:y軸數(shù)據(jù),標(biāo)量數(shù)據(jù)的具體數(shù)值
- global_step:x軸數(shù)據(jù),要記錄的全局步長(zhǎng)值
- add_scalars(main_tag, tag_scalar_dit)多項(xiàng)標(biāo)題記錄方法,其中:
- main_tag —— 該圖的標(biāo)簽
- tag_salar_dict —— 字典形式的tag-scalar_value對(duì)
源碼中也有例子:
from tensorboardX import SummaryWriter
import numpy as np
writer = SummaryWriter('run/logs')
max_epoch = 100
for x in range(max_epoch):
writer.add_scalar('t/y=2x', x * 2, x) #x*2為y軸數(shù)據(jù),x為x軸數(shù)據(jù)
writer.add_scalar('t/y=pow_2_x', 2^x, x)
writer.add_scalars('scalar_group', {"xsinx": x * np.sin(x),
"xcosx": x * np.cos(x)}, x)
writer.close()運(yùn)行完該腳本后,運(yùn)行tensorboard命令:tensorboard --logdir=./run/

在瀏覽器中打開(kāi)鏈接:【http://localhost:6006/】

3 添加需要保存圖片數(shù)據(jù)

從源碼中我們能看到add_image的主要參數(shù)如下。通俗的講分別代表
- tag:曲線圖名字,唯一標(biāo)識(shí)
- img_tensor:圖片數(shù)據(jù),類型要求為 tensor/numpy/string 等
- global_step:要記錄的全局步長(zhǎng)值
- dataformats:圖片輸入的默認(rèn)維度。注意是"CHW"
from tensorboardX import SummaryWriter
import numpy as np
img = np.zeros((3, 100, 100))
img[0] = np.arange(0, 10000).reshape(100, 100) / 10000
img[1] = 1 - np.arange(0, 10000).reshape(100, 100) / 10000
img_HWC = np.zeros((100, 100, 3))
img_HWC[:, :, 0] = np.arange(0, 10000).reshape(100, 100) / 10000
img_HWC[:, :, 1] = 1 - np.arange(0, 10000).reshape(100, 100) / 10000
writer = SummaryWriter('run/logs')
writer.add_image('my_image', img, 0)
# If you have non-default dimension setting, set the dataformats argument.
writer.add_image('my_image_HWC', img_HWC, 0, dataformats='HWC')
writer.close()
4 直方圖的記錄
畫直方圖主要為了看參數(shù)的分布狀態(tài),使用add_histogram(tag, values, global_step=None, bins=’tensorflow’, walltime=None),其中tag, value, global_step的含義同上,示例如下:
# 每個(gè)epoch,記錄梯度,權(quán)值
for name, param in net.named_parameters():
writer.add_histogram(name + '_grad', param.grad, epoch)
writer.add_histogram(name + '_data', param, epoch)5 網(wǎng)絡(luò)結(jié)構(gòu)的記錄
展示結(jié)構(gòu)圖使用add_graph(model, input_to_model=None, verbose=False)
writer = SummaryWriter(comment='test_your_comment', filename_suffix="_test_your_filename_suffix") # 模型 fake_img = torch.randn(1, 3, 32, 32) yolo = Yolo(classes=2) writer.add_graph(yolo, fake_img) writer.close()
到此這篇關(guān)于pytorch SummaryWriter保存日志的文章就介紹到這了,更多相關(guān)pytorch 保存日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python在后臺(tái)自動(dòng)解壓各種壓縮文件的實(shí)現(xiàn)方法
這篇文章主要介紹了Python在后臺(tái)自動(dòng)解壓各種壓縮文件的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
python實(shí)戰(zhàn)串口助手_解決8串口多個(gè)發(fā)送的問(wèn)題
今天小編就為大家分享一篇python實(shí)戰(zhàn)串口助手_解決8串口多個(gè)發(fā)送的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Django 使用Ajax進(jìn)行前后臺(tái)交互的示例講解
今天小編就為大家分享一篇Django 使用Ajax進(jìn)行前后臺(tái)交互的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python實(shí)現(xiàn)多線程并發(fā)請(qǐng)求測(cè)試的腳本
這篇文章主要為大家分享了一個(gè)Python實(shí)現(xiàn)多線程并發(fā)請(qǐng)求測(cè)試的腳本,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,需要的小伙伴可以了解一下2023-06-06
Python djanjo之csrf防跨站攻擊實(shí)驗(yàn)過(guò)程
csrf攻擊,即cross site request forgery跨站(域名)請(qǐng)求偽造,這里的forgery就是偽造的意思。這篇文章主要給大家介紹了關(guān)于Python djanjo之csrf防跨站攻擊的相關(guān)資料,需要的朋友可以參考下2021-05-05
最詳細(xì)的python工具Anaconda+Pycharm安裝教程
這篇文章主要介紹了最詳細(xì)的python工具Anaconda+Pycharm安裝教程,文中有非常詳細(xì)的圖文示例,對(duì)不會(huì)安裝的小伙伴們有很好的幫助,需要的朋友可以參考下2021-04-04

