python神經(jīng)網(wǎng)絡(luò)Pytorch中Tensorboard函數(shù)使用
所需庫(kù)的安裝
很多人問(wèn)Pytorch要怎么可視化,于是決定搞一篇。
tensorboardX==2.0 tensorflow==1.13.2
由于tensorboard原本是在tensorflow里面用的,所以需要裝一個(gè)tensorflow。會(huì)自帶一個(gè)tensorboard。
也可以不裝tensorboardX,直接使用pytorch當(dāng)中的自帶的Tensorboard。導(dǎo)入方式如下:
from torch.utils.tensorboard import SummaryWriter
不過(guò)由于我使用pytorch當(dāng)中的自帶的Tensorboard的時(shí)候有一些bug。所以還是使用tensorboardX來(lái)寫(xiě)這篇博客。
常用函數(shù)功能
1、SummaryWriter()
這個(gè)函數(shù)用于創(chuàng)建一個(gè)tensorboard文件,其中常用參數(shù)有:
log_dir:tensorboard文件的存放路徑flush_secs:表示寫(xiě)入tensorboard文件的時(shí)間間隔
調(diào)用方式如下:
writer = SummaryWriter(log_dir='logs',flush_secs=60)
2、writer.add_graph()
這個(gè)函數(shù)用于在tensorboard中創(chuàng)建Graphs,Graphs中存放了網(wǎng)絡(luò)結(jié)構(gòu),其中常用參數(shù)有:
model:pytorch模型
input_to_model:pytorch模型的輸入
如下所示為graphs:
調(diào)用方式如下:
if Cuda: graph_inputs = torch.from_numpy(np.random.rand(1,3,input_shape[0],input_shape[1])).type(torch.FloatTensor).cuda() else: graph_inputs = torch.from_numpy(np.random.rand(1,3,input_shape[0],input_shape[1])).type(torch.FloatTensor) writer.add_graph(model, (graph_inputs,))
3、writer.add_scalar()
這個(gè)函數(shù)用于在tensorboard中加入loss,其中常用參數(shù)有:
- tag:標(biāo)簽,如下圖所示的Train_loss
- scalar_value:標(biāo)簽的值
- global_step:標(biāo)簽的x軸坐標(biāo)
調(diào)用方式如下:
writer.add_scalar('Train_loss', loss, (epoch*epoch_size + iteration))
4、tensorboard --logdir=
在完成tensorboard文件的生成后,可在命令行調(diào)用該文件,tensorboard網(wǎng)址。具體代碼如下:
tensorboard --logdir=D:\Study\Collection\Tensorboard-pytorch\logs
示例代碼
import torch from torch.autograd import Variable import torch.nn.functional as functional from tensorboardX import SummaryWriter import matplotlib.pyplot as plt import numpy as np # x的shape為(100,1) x = torch.from_numpy(np.linspace(-1,1,100).reshape([100,1])).type(torch.FloatTensor) # y的shape為(100,1) y = torch.sin(x) + 0.2*torch.rand(x.size()) class Net(torch.nn.Module): def __init__(self, n_feature, n_hidden, n_output): super(Net, self).__init__() # Applies a linear transformation to the incoming data: :math:y = xA^T + b # 全連接層,公式為y = xA^T + b self.hidden = torch.nn.Linear(n_feature, n_hidden) self.predict = torch.nn.Linear(n_hidden, n_output) def forward(self, x): # 隱含層的輸出 hidden_layer = functional.relu(self.hidden(x)) output_layer = self.predict(hidden_layer) return output_layer # 類的建立 net = Net(n_feature=1, n_hidden=10, n_output=1) writer = SummaryWriter('logs') graph_inputs = torch.from_numpy(np.random.rand(2,1)).type(torch.FloatTensor) writer.add_graph(net, (graph_inputs,)) # torch.optim是優(yōu)化器模塊 optimizer = torch.optim.Adam(net.parameters(), lr=1e-3) # 均方差loss loss_func = torch.nn.MSELoss() for t in range(1000): prediction = net(x) loss = loss_func(prediction, y) # 反向傳遞步驟 # 1、初始化梯度 optimizer.zero_grad() # 2、計(jì)算梯度 loss.backward() # 3、進(jìn)行optimizer優(yōu)化 optimizer.step() writer.add_scalar('loss',loss, t) writer.close()
效果如下:
以上就是python神經(jīng)網(wǎng)絡(luò)Pytorch中Tensorboard函數(shù)使用的詳細(xì)內(nèi)容,更多關(guān)于Pytorch Tensorboard函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何在Python?中使用?join()?函數(shù)把列表拼接成一個(gè)字符串
這篇文章主要介紹了如何在Python?中使用?join()?函數(shù)把列表拼接成一個(gè)字符串,文章圍繞?join()?函數(shù)的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對(duì)你有幫助2022-03-03Python實(shí)時(shí)監(jiān)控網(wǎng)站瀏覽記錄實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了Python實(shí)時(shí)監(jiān)控網(wǎng)站瀏覽記錄實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Python實(shí)現(xiàn)將json文件生成C語(yǔ)言的結(jié)構(gòu)體的腳本分享
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)將json文件生成C語(yǔ)言的結(jié)構(gòu)體,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-09-09Python游戲開(kāi)發(fā)之魔塔小游戲的實(shí)現(xiàn)
魔塔小游戲作為一款角色扮演RPG小游戲,一直深受大家的喜愛(ài)。本文將利用Python的cpgames模塊制作這一經(jīng)典小游戲,感興趣的可以跟隨小編一起動(dòng)手試一試2022-02-02python基于paramiko庫(kù)遠(yuǎn)程執(zhí)行 SSH 命令,實(shí)現(xiàn) sftp 下載文件
這篇文章主要介紹了python基于paramiko庫(kù)遠(yuǎn)程執(zhí)行 SSH 命令,實(shí)現(xiàn) sftp 下載文件的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03Python實(shí)現(xiàn)服務(wù)端渲染SSR的示例代碼
服務(wù)端渲染是一種常見(jiàn)的技術(shù)策略,特別是在需要改善網(wǎng)站的搜索引擎優(yōu)化(SEO)和首屏加載時(shí)間的場(chǎng)景下,本文將介紹如何利用?Python?實(shí)現(xiàn)?SSR,感興趣的可以了解下2024-02-02