pytorch使用tensorboard

import torch
from tensorboardX import SummaryWriter
# 設計一個小網絡
class Net(torch.nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        self.dense = torch.nn.Linear(in_features=10,out_features=1)
    def forward(self,x):
        return self.dense(x)
 
# 根據小網絡實例化一個模型 net
net = Net()
# 創建文件寫控制器,將之後的數值以protocol buffer格式寫入到logs文件夾中,空的logs文件夾將被自動創建。
writer = SummaryWriter(log_dir='logs')
# 將網絡net的結構寫到logs裏:
data = torch.rand(2,10)
writer.add_graph(net,input_to_model=(data,))
# 注意:pytorch模型不會記錄其輸入輸出的大小,更不會記錄每層輸出的尺寸。
#      所以,tensorbaord需要一個假的數據 `data` 來探測網絡各層輸出大小,並指示輸入尺寸。
 
# 寫一個新的數值序列到logs內的文件裏,比如sin正弦波。
for i in range(100):
    x = torch.tensor(i/10,dtype=torch.float)
    y = torch.sin(x)
    # 寫入數據的標註指定爲 data/sin, 寫入數據是y, 當前已迭代的步數是i。
    writer.add_scalar('data/sin',y,i)
 
writer.close()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章