python神經(jīng)網(wǎng)絡Pytorch中Tensorboard函數(shù)使用
所需庫的安裝
很多人問Pytorch要怎么可視化,于是決定搞一篇。
tensorboardX==2.0 tensorflow==1.13.2
由于tensorboard原本是在tensorflow里面用的,所以需要裝一個tensorflow。會自帶一個tensorboard。
也可以不裝tensorboardX,直接使用pytorch當中的自帶的Tensorboard。導入方式如下:
from torch.utils.tensorboard import SummaryWriter
不過由于我使用pytorch當中的自帶的Tensorboard的時候有一些bug。所以還是使用tensorboardX來寫這篇博客。
常用函數(shù)功能
1、SummaryWriter()
這個函數(shù)用于創(chuàng)建一個tensorboard文件,其中常用參數(shù)有:
log_dir:tensorboard文件的存放路徑flush_secs:表示寫入tensorboard文件的時間間隔
調用方式如下:
writer = SummaryWriter(log_dir='logs',flush_secs=60)
2、writer.add_graph()
這個函數(shù)用于在tensorboard中創(chuàng)建Graphs,Graphs中存放了網(wǎng)絡結構,其中常用參數(shù)有:
model:pytorch模型
input_to_model:pytorch模型的輸入
如下所示為graphs:
調用方式如下:
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()
這個函數(shù)用于在tensorboard中加入loss,其中常用參數(shù)有:
- tag:標簽,如下圖所示的Train_loss
- scalar_value:標簽的值
- global_step:標簽的x軸坐標
調用方式如下:
writer.add_scalar('Train_loss', loss, (epoch*epoch_size + iteration))
4、tensorboard --logdir=
在完成tensorboard文件的生成后,可在命令行調用該文件,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、計算梯度 loss.backward() # 3、進行optimizer優(yōu)化 optimizer.step() writer.add_scalar('loss',loss, t) writer.close()
效果如下:
以上就是python神經(jīng)網(wǎng)絡Pytorch中Tensorboard函數(shù)使用的詳細內容,更多關于Pytorch Tensorboard函數(shù)的資料請關注腳本之家其它相關文章!
相關文章
如何在Python?中使用?join()?函數(shù)把列表拼接成一個字符串
這篇文章主要介紹了如何在Python?中使用?join()?函數(shù)把列表拼接成一個字符串,文章圍繞?join()?函數(shù)的相關資料展開詳細內容,需要的小伙伴可以參考一下,希望對你有幫助2022-03-03Python實時監(jiān)控網(wǎng)站瀏覽記錄實現(xiàn)過程詳解
這篇文章主要介紹了Python實時監(jiān)控網(wǎng)站瀏覽記錄實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07Python實現(xiàn)將json文件生成C語言的結構體的腳本分享
這篇文章主要為大家詳細介紹了Python如何實現(xiàn)將json文件生成C語言的結構體,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2022-09-09python基于paramiko庫遠程執(zhí)行 SSH 命令,實現(xiàn) sftp 下載文件
這篇文章主要介紹了python基于paramiko庫遠程執(zhí)行 SSH 命令,實現(xiàn) sftp 下載文件的方法,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下2021-03-03