1. netronツールを使用してpytorchモデルを視覚化します。テンソルボードは醜く、直感的ではありません。
プロジェクトアドレス:https://github.com/lutzroeder/Netro
参照:https://blog.csdn.net/jieleiping/article/details/102975939
1.netronをインストールします
pip install netron
2.ケースデモ
pytorchモデル形式(.pt / .pth)のサポートはフレンドリーではないため、onnxとして保存する必要があります。幸いpytorchはサポートしています。
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.onnx
import netron
class ForwardNet(nn.Module):
def __init__(self):
super(ForwardNet, self).__init__()
self.block1 = nn.Sequential(
nn.Conv2d(64, 64, 3, padding=1, bias=False),
nn.BatchNorm2d(64),
nn.ReLU(inplace=True),
nn.Conv2d(64, 32, 1, bias=False),
nn.BatchNorm2d(32),
nn.ReLU(inplace=True),
nn.Conv2d(32, 64, 3, padding=1, bias=False),
nn.BatchNorm2d(64)
)
self.conv1 = nn.Conv2d(3, 64, 3, padding=1, bias=False)
self.output = nn.Sequential(
nn.Conv2d(64, 1, 3, padding=1, bias=True),
nn.Sigmoid()
)
def forward(self, x):
x = self.conv1(x)
identity = x
x = F.relu(self.block1(x) + identity)
x = self.output(x)
return x
input = torch.rand(1, 3, 416, 416)
model = ForwardNet()
output = model(input)
onnx_path = "netForwatch.onnx"
torch.onnx.export(model, input, onnx_path)
netron.start(onnx_path)
3.結果
上記のコードを実行した後、ローカルブラウザが呼び出されて開きます。フォームはテンソルボードに似ています。
2、機能マップの視覚化
参照:https://zhuanlan.zhihu.com/p/60753993