Deep learning 基于参数共享的卷积神经网络权值计算

Deep learning 基于参数共享的卷积神经网络权值计算,deep-learning,conv-neural-network,Deep Learning,Conv Neural Network,在阅读迈克·奥尼尔(Mike O’Neill)的一本书时,我遇到了一些关于卷积神经网络中权数的计算,我想了解一下。网络的体系结构如下所示: 这是上述文章的解释: 第2层也是一个卷积层,但有50个特征地图。每个 要素图为5x5,要素图中的每个单元为5x5 所有6个特征对应区域的卷积核 先前图层的贴图,每个图层都是13x13要素贴图。 因此#2,(5x5+1)x6x50层中有5x5x50=1250个神经元= 7800个砝码,1250x26=32500个连接 对我来说,权重数的计算,(5x5+1)x

在阅读迈克·奥尼尔(Mike O’Neill)的一本书时,我遇到了一些关于卷积神经网络中权数的计算,我想了解一下。网络的体系结构如下所示:

这是上述文章的解释:

第2层也是一个卷积层,但有50个特征地图。每个 要素图为5x5,要素图中的每个单元为5x5 所有6个特征对应区域的卷积核 先前图层的贴图,每个图层都是13x13要素贴图。 因此#2,(5x5+1)x6x50层中有5x5x50=1250个神经元= 7800个砝码,1250x26=32500个连接

对我来说,权重数的计算,(5x5+1)x6x50=7800,似乎很奇怪。不应该是这样的实际计算: (5x5x6+1)x50=7550根据解释的参数共享

我的论点如下: 我们有50个尺寸为5x5x6的过滤器,每个过滤器有1个偏差,因此权重总数为(5x5x6+1)x50=7550。这是Pytorch代码,用于验证:

import torch
import torch.nn as nn

model = nn.Conv2d(in_channels=6, out_channels=50, kernel_size=5, stride=2)
params_count = sum(param.numel() for param in model.parameters() if param.requires_grad)
print(params_count) # 7550
谁能解释一下,哪一个是正确的吗?

我的计算:

第一层深度为6,内核:5*5
第二层深度为50,内核:5*5

第二层神经元总数:5*5*50=1250

总重量为:5*5*50*6=7500

最后,第2层的偏差=50(深度为50)

我同意你的看法:总重量必须是7550