CNN中的权重矩阵集及其维度如何
数据挖掘
分类
多类分类
混淆矩阵
2022-02-24 06:14:59
1个回答
1176是最后一层之前的层中的神经元个数,是卷积层中但是扁平化的像素个数( height*width*n_filters, ie 7*7*24=1176)。3 来自最后一层中的神经元数量,因为您有 3 个类,所以您的最后一层有 3 个神经元,每个类 1 个(将输出 0 或 1)。3x1176然后,这给出了倒数第二层和最后一层之间权重的权重矩阵。使用torch我们可以显示网络中各层之间传递的数据的维度。在下面的示例中,我省略了批量标准化和 relu 层,因为它们不会影响尺寸。尺寸定义如下:batch_size * n_channels * height * width.
import torch
x = torch.randn(1, 1, 28, 28)
x.shape
# torch.Size([1, 1, 28, 28])
conv1 = torch.nn.Conv2d(in_channels=1, out_channels=12, kernel_size=3, padding=1)(x)
conv1.shape
# torch.Size([1, 12, 28, 28])
pool1 = torch.nn.MaxPool2d(kernel_size=2, stride=2)(conv1)
pool1.shape
# torch.Size([1, 12, 14, 14])
conv2 = torch.nn.Conv2d(in_channels=12, out_channels=24, kernel_size=3, padding=1)(pool1)
conv2.shape
# torch.Size([1, 24, 14, 14])
pool2 = torch.nn.MaxPool2d(kernel_size=2, stride=2)(conv2)
pool2.shape
# torch.Size([1, 24, 7, 7])
pool2.view(-1).shape
# torch.Size([1176])
