如何获取CNN模型的输入和输出特征图?

我正在尝试找出图像在通过卷积神经网络的每一层时的尺寸。例如,如果应用了最大池化或卷积操作,我想知道图像在该层的形状,适用于所有层。我知道可以使用nOut=image+2p-f / s + 1公式,但考虑到PyTorch模型的规模,这会过于繁琐和复杂。有什么简单的方法可以做到这一点吗?或许有可视化工具/脚本之类的东西?


回答:

你可以使用torchinfo库:https://github.com/TylerYep/torchinfo

让我们来看他们的例子:

from torchinfo import summarymodel = ConvNet()batch_size = 16summary(model, input_size=(batch_size, 1, 28, 28))

这里(1, 28, 28)是输入的大小,分别对应图像的(通道, 宽度, 高度)

该库将打印如下内容:

================================================================================================================Layer (type:depth-idx)          Input Shape          Output Shape         Param #            Mult-Adds================================================================================================================SingleInputNet                  --                   --                   --                  --├─Conv2d: 1-1                   [7, 1, 28, 28]       [7, 10, 24, 24]      260                1,048,320├─Conv2d: 1-2                   [7, 10, 12, 12]      [7, 20, 8, 8]        5,020              2,248,960├─Dropout2d: 1-3                [7, 20, 8, 8]        [7, 20, 8, 8]        --                 --├─Linear: 1-4                   [7, 320]             [7, 50]              16,050             112,350├─Linear: 1-5                   [7, 50]              [7, 10]              510                3,570================================================================================================================Total params: 21,840Trainable params: 21,840Non-trainable params: 0Total mult-adds (M): 3.41================================================================================================================Input size (MB): 0.02Forward/backward pass size (MB): 0.40Params size (MB): 0.09Estimated Total Size (MB): 0.51================================================================================================================

我认为输出中的7是错误的,应该是16

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注