在Pytorch中使用tensorboard

2021-10-04 12:33:34 字數 2518 閱讀 4405

在pytorch中使用tensorboard的方法也挺簡單,如果要看網路結構和訓練損失的話基本上和在tf中使用是差不多的。

import torch.nn as nn

import torch.nn.functional as f

import torch.optim as optim

import torch.utils.data as data

# 前提要在自己的環境中安裝tensorboard 直接pip安裝就行

from torch.utils.tensorboard import summarywriter

class

net(nn.module)

:def

__init__

(self)

:super

(net,self)

.__init__(

) self.conv1 = nn.conv2d(1,

6,5)

self.pool1 = nn.maxpool2d(2,

2)self.conv2 = nn.conv2d(6,

16,5)

self.pool2 = nn.maxpool2d(2,

2)self.fc1 = nn.linear(16*

4*4,

120)

self.fc2 = nn.linear(

120,84)

self.fc3 = nn.linear(84,

10)defforward

(self, x)

: x = self.pool1(f.relu(self.conv1(x)))

x = self.pool2(f.relu(self.conv2(x)))

x = x.view(-1

,16*4

*4) x = f.relu(self.fc1(x)

) x = f.relu(self.fc2(x)

) x = self.fc3(x)

return x

net = net(

)criterion = nn.crossentropyloss(

)optimizer = optim.sgd(net.parameters(

), lr=

0.001

, momentum=

0.9)

# 生成資料

transform = transforms.compose(

[transforms.totensor(),

transforms.normalize(

(0.5,)

,(0.5,))

])trainset = torchvision.datasets.fashionmnist(

'./data'

, download=

true

, train=

true

,

transform=transform)

trainloader = data.dataloader(trainset,

batch_size=4,

shuffle=

false

, num_workers=2)

dataiter =

iter

(trainloader)

img, label =

next

(dataiter)

# writer = summarywriter(

'檔案儲存路徑'

)# 與tf不太一樣的是要儲存網路結構必須要給定網路的輸入(比如batch)

writer.add_graph(net, trainloader)

writer.close(

)# 在檢視別人的原始碼時 只要使用上面這三行就夠了 找到定義的網路模型net,然後再傳入乙個batch就可以了 檢視loss就用最後一行就可以了

for step, data in

enumerate

(trainloader)

: inputs, label = data

optimizer.zero_grad(

) out = net(inputs)

loss = criterion(out, labels)

loss.backward(

) optimizer.step(

) writer.add_scalar(

'train_loss'

, loss, i)

# 使用方法也和tensorboard一樣

#開啟控制台

tensorboard -

-log=檔案路徑

在PyTorch中使用Visdom視覺化工具

在pytorch中使用visdom視覺化工具 非常詳細 參考鏈結二 1.安裝 pip install visdom conda install visdom 2.linux 伺服器端 啟動 模型訓練前 預設使用埠 8097 to view training results and loss plot...

PyTorch在NLP任務中使用預訓練詞向量

在使用pytorch或tensorflow等神經網路框架進行nlp任務的處理時,可以通過對應的embedding層做詞向量的處理,更多的時候,使用預訓練好的詞向量會帶來更優的效能。下面分別介紹使用gensim和torchtext兩種載入預訓練詞向量的方法。1.使用gensim載入預訓練詞向量 對於如...

Pytorch中使用backward 求導詳解

backward 是pytorch中用來求梯度的方法,可以分為三種情況來使用。此時可以直接使用out.backwark import torch from torch.autograd import variable 生成乙個內容為 2,3 的張量,varibale 預設是不要求梯度的,如果要求梯度...