PyTorch ニューラル ネットワーク モデルの視覚化 (Netron)

PyTorch ニューラル ネットワーク モデルの視覚化 (Netron)

Netron は深層学習モデルを視覚化するためのツールであり、モデルの構造とパラメーターをより深く理解するのに役立ちます。

次の形式のモデル ストレージ ファイルがサポートされています。

フォーマット テンプレート(ファイル) ダウンロードせずに開く
ONNX スクイーズネット 開ける
TensorFlow Lite ヤムネット 開ける
TensorFlow チェスボット 開ける
難しい モバイルネット 開ける
トーチスクリプト トレース_オンライン_プレド_レイヤー 開ける
コアML エクサモート 開ける
ダークネット ヨロ 開ける

GitHub リンク: https://github.com/lutzroeder/netron

公式サイト:https: //netron.app


ONNX

(1) PyTorch では、torch.onnx.export関数を使用してモデルを ONNX 形式にエクスポートできます。

import torch
import netron


# 定义 PyTorch 模型
class MyModel(torch.nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.conv = torch.nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1)
        self.bn = torch.nn.BatchNorm2d(64)
        self.relu = torch.nn.ReLU(inplace=True)
        self.pool = torch.nn.MaxPool2d(kernel_size=2, stride=2)
        self.fc = torch.nn.Linear(64 * 8 * 8, 10)

    def forward(self, x):
        x = self.conv(x)
        x = self.bn(x)
        x = self.relu(x)
        x = self.pool(x)
        x = x.view(-1, 64 * 8 * 8)
        x = self.fc(x)
        return x


# 创建模型实例并加载预训练权重
model = MyModel()

# 设置示例输入
input = torch.randn(1, 3, 32, 32)

# 将模型导出为 ONNX 格式
torch.onnx.export(model, input, './model/Test/onnx_model.onnx')  # 导出后 netron.start(path) 打开

(2) Netron のコマンドを使用して、netron.startエクスポートされた ONNX モデル ファイルを開きます。

import netron

# 打开导出的 ONNX 模型文件
netron.start('./model/Test/onnx_model.onnx')
Serving './model/Test/onnx_model.onnx' at http://localhost:8080

Netron ツールがブラウザで自動的に起動し、モデル ファイルが視覚化されます。

知らせ:

モデルを ONNX 形式にエクスポートすると、指定したディレクトリにサフィックス.onnxが付いた、それをNetron 公式 Web サイトにアップロードして視覚化することもできます。

Netron では、モデルの構造、パラメーター、入力と出力、その他の情報を表示できます。モデルの視覚化は、モデルの構造とパラメーターをより深く理解するために、ズーム、回転、移動によって調整できます。

トーチ.保存

torch.save保存されたモデルを次のように視覚化する場合:

# 保存模型
torch.save(model.state_dict(), './model/Test/saved_model.pt')

# 可视化
netron.start('./model/Test/saved_model.pt')

次の図に示すように、このメソッドではモデルの詳細情報は表示されません。

Netron は、torch.save PyTorch によってエクスポートされたモデル ファイルをサポートしていません。

トーチ.jit.スクリプト

参考: torch.jit.script および torch.jit.trace

torch.jit.scriptまずモデルをスクリプトに変換するために使用し、次にtorch.jit.saveモデルを視覚化するために保存します。

# TorchScript:script
scripted_model = torch.jit.script(model)

# 保存模型
torch.jit.save(scripted_model, './model/Test/scripted_model.pth')

# 可视化
netron.start('./model/Test/scripted_model.pth')

トーチ.ジット.トレース

参考: torch.jit.script および torch.jit.trace

を使用して、torch.jit.trace最初にモデルをモデルの実行を追跡するツールに変換し、次に を使用してtorch.jit.saveモデルを保存し、最後にそれを視覚化します。

# TorchScript:trace
traced_model = torch.jit.trace(model, torch.randn(1, 3, 32, 32))

# 保存模型
torch.jit.save(traced_model, './model/Test/traced_model.pth')

# 可视化
netron.start('./model/Test/traced_model.pth')

おすすめ

転載: blog.csdn.net/m0_70885101/article/details/131527770