網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
python神經(jīng)網(wǎng)絡(luò)Pytorch中Tensorboard函數(shù)使用_python
作者:Bubbliiiing ? 更新時(shí)間: 2022-07-01 編程語(yǔ)言所需庫(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)寫這篇博客。
常用函數(shù)功能
1、SummaryWriter()
這個(gè)函數(shù)用于創(chuàng)建一個(gè)tensorboard文件,其中常用參數(shù)有:
log_dir:tensorboard文件的存放路徑flush_secs:表示寫入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()
效果如下:
原文鏈接:https://blog.csdn.net/weixin_44791964/article/details/106701052
相關(guān)推薦
- 2022-04-11 css實(shí)現(xiàn)左邊div固定寬度,右邊div自適應(yīng)撐滿剩下的寬度
- 2022-09-22 Windows MongoDB服務(wù)無(wú)法啟動(dòng),錯(cuò)誤 1053的一種情況和解決辦法
- 2022-12-12 python?打印完整異常問(wèn)題_python
- 2022-12-21 python中的sys模塊詳解_python
- 2022-05-04 關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)概述與優(yōu)缺點(diǎn)對(duì)比_數(shù)據(jù)庫(kù)其它
- 2022-10-27 計(jì)算機(jī)系統(tǒng)匯編語(yǔ)言和機(jī)器語(yǔ)言深入理解_匯編語(yǔ)言
- 2022-08-29 C語(yǔ)言八道筆試題精講帶你掌握指針_C 語(yǔ)言
- 2022-06-16 golang?gorm更新日志執(zhí)行SQL示例詳解_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支