网站代码的重点内容是什么,医院网站管理制度,网站应该设计成什么样,荣成住房和城乡建设部网站两种方式
当我们使用pytorch进行模型训练或测试时#xff0c;有时候希望能知道模型每一层分别是什么#xff0c;具有怎样的参数。此时我们可以将模型打印出来#xff0c;输出每一层的名字、类型、参数等。 常用的命令行打印模型结构的方法有两种#xff1a;
一是直接prin…两种方式
当我们使用pytorch进行模型训练或测试时有时候希望能知道模型每一层分别是什么具有怎样的参数。此时我们可以将模型打印出来输出每一层的名字、类型、参数等。 常用的命令行打印模型结构的方法有两种
一是直接print二是使用torchsummary库的summary 但是二者在输出上有着一些区别。首先说结论 print输出结果是每一层的名字、类别、以及构造时的参数例如对于卷积层还包括用户定义的stride、bias等而torch summary则会打印类别、深度、输出Tensor的形状、参数数量等。 这也是很重要的一点print打印的每一层顺序是模型init函数中定义的顺序而torchsummary则是模型执行起来输入张量真正计算的顺序。
torch summary 安装 示例
print: summary:
打印每一层的输入输出结构
import torch
from torch import nn
#from d2l import torch as d2lnet1D nn.Sequential(nn.Conv1d(1,6,kernel_size5,padding2),nn.Sigmoid(),nn.AvgPool1d(kernel_size2,stride2),nn.Conv1d(6,16,kernel_size5),nn.Sigmoid(),nn.AvgPool1d(kernel_size2,stride2),nn.Flatten(),nn.Linear(16*5,120),nn.Sigmoid(), # 这边要根据上面的输出重新计算拉平后的大小nn.Linear(120,84),nn.Sigmoid(),nn.Linear(84,2))
Ytorch.rand(size(1,1,28),dtypetorch.float32) # 批次大小通道数长度
for layer in net1D:Ylayer(Y)print(layer.__class__.__name__, output shape: \t,Y.shape)Conv1d output shape: torch.Size([1, 6, 28])
Sigmoid output shape: torch.Size([1, 6, 28])
AvgPool1d output shape: torch.Size([1, 6, 14])
Conv1d output shape: torch.Size([1, 16, 10])
Sigmoid output shape: torch.Size([1, 16, 10])
AvgPool1d output shape: torch.Size([1, 16, 5])
Flatten output shape: torch.Size([1, 80])
Linear output shape: torch.Size([1, 120])
Sigmoid output shape: torch.Size([1, 120])
Linear output shape: torch.Size([1, 84])
Sigmoid output shape: torch.Size([1, 84])
Linear output shape: torch.Size([1, 2])