neural-network - 模型层数
问题描述
我正在训练CNN。出于报告目的,我想找出我的模型具有的层数。
从我在下面的代码中看到,我一共有6层,layer1、layer2、conv2_drop、fc1、fc2、fc3。我对吗?
Net(
(layer1): Sequential(
(0): Conv2d(3, 10, kernel_size=(5, 5), stride=(1, 1))
(1): BatchNorm2d(10, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(4): Dropout(p=0.2, inplace=False)
)
(layer2): Sequential(
(0): Conv2d(10, 20, kernel_size=(5, 5), stride=(1, 1))
(1): BatchNorm2d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(4): Dropout(p=0.2, inplace=False)
)
(conv2_drop): Dropout2d(p=0.5, inplace=False)
(fc1): Linear(in_features=500, out_features=250, bias=True)
(fc2): Linear(in_features=250, out_features=50, bias=True)
(fc3): Linear(in_features=50, out_features=10, bias=True)
)
我的 NN 有 6 层,还是 layer1 和 layer2 本身又增加了 4 层?那总共是14层吗?
解决方案
不完全清楚人们会考虑什么层(是flattening
层还是只是一个操作?如果它被实现为torch.nn.Module
呢?)。本质上,神经网络是执行操作的图,层是一种有用的抽象,可以帮助我们推理它们。
在 IMO 的 PyTorch 中,它将是 的单个实例torch.nn.Module
,因此在这种情况下它将是14
. 更重要的是,BatchNorm
它被普遍认为是一个层,为了方便起见,我也会将其他层 ( ReLU
, MaxPool2d
, Dropout
) 视为层。
layer1
在这种情况下,layer2
它更像是一个块(层堆叠)。仍然是您的fc1
,fc2
并且fc3
应该是 IMO(注意我已经再次使用它)编码为另一个block
(torch.nn.Seqeuntial
可能包含在其中)。
推荐阅读
- javascript - 捕捉到多个图层上的要素
- python - 循环遍历列表及其以逗号分隔的子字符串
- javascript - 在 React 中使用 moment.js 格式化日期的问题
- java - 如何计算线程池中线程的有效执行时间,而不是线程的生命周期?
- swift - UIReferenceLibraryViewController.dictionaryHasDefinition - **返回结果非常慢** - iOS 13(模拟器和真实设备) - Xcode 11
- javascript - Javascript多人游戏-游戏/物理逻辑的requestAnimationFrame?
- c# - C# - MSBuild 参考 - 复制到 CopyToOutputDirectory 的所有项目
- google-app-maker - 应用程序制造商:将下拉值绑定到两个数据源属性
- html - 在没有模糊效果的元素周围均匀生成阴影/轮廓
- php - 如何使用phpmailer通过位置选择将邮件发送到多个邮件地址?