我使用Matlab神经网络工具箱构建了CNN。如何计算网络中使用的参数总数?
例如,我可以使用支持插件中的analyzeNetwork(),这可以显示每层可学习参数的数量。添加这些是否正确?
layers = [
imageInputLayer([128 300 1])
convolution2dLayer([7 7], 32, 'Stride', [2 2], 'Padding', 1)
batchNormalizationLayer
reluLayer
convolution2dLayer([5 5], 32, 'Stride', [2 2], 'Padding', 1)
batchNormalizationLayer
reluLayer
convolution2dLayer([3 3], 64, 'Stride', [2 2],'Padding', 1)
batchNormalizationLayer
reluLayer
dropoutLayer(0.2)
convolution2dLayer([3 3], 64, 'Stride', [2 2],'Padding', 1)
batchNormalizationLayer
reluLayer
dropoutLayer(0.2)
convolution2dLayer([8 1], 1024, 'Stride', [1 1],'Padding', 0)
batchNormalizationLayer
reluLayer
dropoutLayer(0.2)
averagePooling2dLayer([1 12],'Stride', [1 1]);
dropoutLayer(0.2)
fullyConnectedLayer(4096)
batchNormalizationLayer
reluLayer
dropoutLayer(0.2)
fullyConnectedLayer(1251)
softmaxLayer
classificationLayer];
答案 0 :(得分:0)
我使用了支持插件中的analyzeNetwork()
,并将所有可学习的参数相加,相当于1.4M。
然后我在matconvnet库中创建了相同的网络,并使用vl_simplenn_display
来分析网络。它还显示了1.4M参数。