日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Pytorch的网络结构可视化(tensorboardX)(详细)

發布時間:2023/11/28 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pytorch的网络结构可视化(tensorboardX)(详细) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

20210610

?

  if config.test is True:model = load_test_model(model, config)print(model)

打印網絡結構

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/xiaoxifei/article/details/82735355
最近剛剛發現一個非常好用的顯示模型神器Netron

https://github.com/lutzroeder/Netron

借助這個工具可以像windows的軟件一樣導入已經訓練好的模型加權重即可一鍵生成

我目前看了下visdom實現pytorch的網絡結構查找還是很困難,在stackflow上有很多人使用自己編寫的基于matplotlib來實現網絡結構可視化適用性也不是很好,后來查找到使用基于tensorboard所開發的tensorboardX可以很方便的實現pytorch網絡結構的可視化,因此決定采用這種方式。

1. tensorboardX的簡介

tensorboardX的項目路徑:https://github.com/lanpa/tensorboardX

tensorboardX是基于tensorboard的思想用來寫tensorboard events的工具,可以實現對傳統的tensorboard中 scalar,image,figure,histogram,audio,text,graph,onnx_graph等事件進行編寫。

tensorboardX同時具有論壇供大家提出問題解決問題? ?,論壇地址:https://github.com/lanpa/tensorboardX/wiki

它的支持性是比較好的

2. tensorboardX的使用

tensorboardX的安裝以及依賴如下所示:

pip install tensorboard

pip install tensorflow

pip install tensorboardX

?

tensorboardX的路徑下帶的有一個規范的demo,可以供大家參考。我這里公布一個我自己測試過的代碼,代碼來源于:https://blog.csdn.net/sunqiande88/article/details/80155925

?

import torch
import torch.nn as nn
from tensorboardX import SummaryWriter
class LeNet(nn.Module):
def __init__(self):
super(LeNet, self).__init__()
self.conv1 = nn.Sequential( #input_size=(1*28*28)
nn.Conv2d(1, 6, 5, 1, 2),
nn.ReLU(), #(6*28*28)
nn.MaxPool2d(kernel_size=2, stride=2), #output_size=(6*14*14)
)
self.conv2 = nn.Sequential(
nn.Conv2d(6, 16, 5),
nn.ReLU(), #(16*10*10)
nn.MaxPool2d(2, 2) #output_size=(16*5*5)
)
self.fc1 = nn.Sequential(
nn.Linear(16 * 5 * 5, 120),
nn.ReLU()
)
self.fc2 = nn.Sequential(
nn.Linear(120, 84),
nn.ReLU()
)
self.fc3 = nn.Linear(84, 10)

# 定義前向傳播過程,輸入為x
def forward(self, x):
x = self.conv1(x)
x = self.conv2(x)
# nn.Linear()的輸入輸出都是維度為一的值,所以要把多維度的tensor展平成一維
x = x.view(x.size()[0], -1)
x = self.fc1(x)
x = self.fc2(x)
x = self.fc3(x)
return x

dummy_input = torch.rand(13, 1, 28, 28) #假設輸入13張1*28*28的圖片
model = LeNet()
with SummaryWriter(comment='LeNet') as w:
w.add_graph(model, (dummy_input, ))
運行該代碼后會自動生成一個runs文件夾,并且在文件夾下會有一個對應的event,如下圖所示:

?

此時需要在terminal或者cmd下運行tensorboard --logdir = path

此處千萬要注意,如果按照上面的參考文檔的方式是會報錯的:No graph definition files were found 或者 No definition files were found,總之無法正常顯示網絡結構圖。

此處的path 是event對應的確切,完整的路徑

在運行后會出現一個http url,此時需要將該url 拷貝到chrome下即可看到如下所示框圖

?

結構框圖如下所示:

?

此時雙擊紅圈所示的LeNet模塊即可看到LeNet的細節信息,如下所示:

?

至此即可完成使用tensorboardX 對pytorch網絡結構的可視化
————————————————
版權聲明:本文為CSDN博主「xiaoxifei」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xiaoxifei/article/details/82735355

?

總結

以上是生活随笔為你收集整理的Pytorch的网络结构可视化(tensorboardX)(详细)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。