溫馨提示×

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

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

pytorch?SummaryWriter怎么保存日志

發(fā)布時(shí)間:2023-03-21 13:45:52 來(lái)源:億速云 閱讀:182 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“pytorch SummaryWriter怎么保存日志”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“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ù)

pytorch?SummaryWriter怎么保存日志

  • 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/

pytorch?SummaryWriter怎么保存日志

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

pytorch?SummaryWriter怎么保存日志

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

pytorch?SummaryWriter怎么保存日志

從源碼中我們能看到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()

pytorch?SummaryWriter怎么保存日志

4 直方圖的記錄

畫(huà)直方圖主要為了看參數(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怎么保存日志”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

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

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

AI