Fan*_*nta 10 initialization deep-learning conv-neural-network
我发现Xavier神经网络中权重初始化的变化都提到了扇入和扇出 ; 你能告诉我们这两个参数是如何计算的吗?特别针对这两个例子:
1)利用形状[5,5,3,6]的滤波器(宽度,高度,输入深度,输出深度)初始化卷积层的权重;
2)初始化完全连接层的权重,形状为[400,120](即将400个输入变量映射到120个输出变量).
谢谢!
这个答案是由马修Kleinsmith的启发后对媒体CNN可视化和下面是从拍摄的插图后吉迪恩德尔斯。让我们从 MLP 开始,如下所示。
.
类似地,一个 Conv 层可以被可视化为一个线性层。
以下是我们如何将过滤器应用于图像的每个部分以产生每个结果
等式视图
紧凑方程视图
现在最重要的是神经网络视图,您可以在其中看到每个输出是从 4 个输入生成的,因此 fan_in = 4。
如果原始图像是 3 通道图像,则每个输出将由 3*4 = 12 个输入生成,因此 fan_in 将为 12。因此,
receptive_field_size = kernel_height * kernel_width
fan_in = num_input_feature_maps * receptive_field_size
fan_out = num_output_feature_maps * receptive_field_size
Run Code Online (Sandbox Code Playgroud)
我还鼓励您在这里使用 PyTorch 函数来计算 fan_in 和 fan_out 。. 有点像这样,参考上面的例子
参考
我的理解是,卷积层的扇入和扇出定义为:
fan_in = n_feature_maps_in * receptive_field_height * receptive_field_width
fan_out = n_feature_maps_out * receptive_field_height * receptive_field_width / max_pool_area
Run Code Online (Sandbox Code Playgroud)
其中receptive_field_height和receptive_field_width对应于所考虑的卷积层,并且max_pool_area是卷积层之后的最大池化的高度和宽度的乘积。
如果我错了,请纠正我。
| 归档时间: |
|
| 查看次数: |
3157 次 |
| 最近记录: |