Pytorch查看网络参数
net = YourNet()
print(net)
params = list(net.parameters())
k = 0
for i in params:
l = 1
# print("该层的结构:"+ str(list(i.size())))
for j in i.size():
l *= j
# print("该层参数和:"+ str(l))
k = k + l
print('总参数和:' + str(k))
- 用summary()调出每层的输出大小和参数。
# pip install torchsummary
net = YourNet()
from torchsummary import summary
summary(net, input_size=(3, 64, 64), batch_size=1)
Pytorch简单测试自己搭建的模型是否正确
x = YourNetInput # 网络的输入,例如:x = torch.randn(1, 64, 64, 64)
y = Label # x对应的标签,如:y = torch.randn(1, 64, 64, 64)
net = YourNet() # 你自己搭建的网络
out = net(x)
criterion = nn.L1Loss()
loss = criterion(out, y)
loss.backward()
# 保存模型,可用Netron查看网络图结构
torch.save(net, './test.pt')
可使用tensorboardX查看网络图结构
from tensorboardX import SummaryWriter # pip install tensorboardX
x = YourNetInput # 例如:x = torch.randn(1, 64, 64, 64)
net = YourNet()
writer = SummaryWriter('./tensorboard')
with writer:
writer.add_graph(net, (x,))
# 终端中输入:tensorboard --logdir=tensorboard/ --host=127.0.0.1
模型和训练过程可视化
-
Netron可以可视化模型结构
-
可使用百度开发的VisualDL2.0,网址:https://github.com/PaddlePaddle/VisualDL
以上的两个方法可视化模型时似乎对Pytorch的预训练模型可视化效果不好,原因是Pytorch训练时一般保存的只是模型的参数,可以选择保存整个模型。
或者,可以将Pytorch模型转换为onnx格式,具体见:Pytorch预训练模型文件转化为onnx格式