大家好,又见面了,我是你们的朋友全栈君。
参数分析 Input:7 @ 60 × \times × 40, 7帧,图片大小60 × \times × 40
hardwired: H1 产生5通道信息,分别是gray, gradient-x, gradient-y, optflow-x, optflow-y。前三个对于每一张图片都计算得到一张图,后两个是相邻两张图片得到一张图。 因此,经过hardwired可以得到:7 × \times × 3 + 6 × \times × 2 = 33 经过hardwired可以得到33 @ 60 × \times × 40
3DCNN layer:C2 对于前面的5个通道,每个通道都用2个kernel size: 7 × \times × 7 × \times × 3 (7 × \times × 7是spatial dimension, 3是temporal dimension)的3D卷积(padding=0, stride=1) ((7-3+1) × \times × 3 + (6-3+1) × \times × 2) × \times × 2 = 23 × \times × 2 (5个通道分别有[5,5,5,4,4]个) 输出大小是:(60-7+1)/1 = 54; (40-7+1)/1 = 34 因此,经过C2可以得到 23 × \times × 2 @ 54 × \times × 34 C2的参数量:5 × \times × 2 × \times × (7 × \times × 7 × \times × 3+1)= 1480
Subsampling layer: S3 用2 × \times × 2的subsampling 输出:23 × \times × 2@27 × \times × 17 参数量:23 × \times × 2 × \times × 2=92
3DCNN layer:C4 对于前面的5个通道(5个通道分别有[5,5,5,4,4]个feature maps),每个通道都用2个kernel size: 7 × \times × 6 × \times × 3 (7 × \times × 6是spatial dimension, 3是temporal dimension)的3D卷积(padding=0, stride=1),每个位置用了3个conv ((5-3+1) × \times × 3 + (4-3+1) × \times × 2 ) × \times × 2 × \times × 3 = 13 × \times × 6 (5个通道分别有[3,3,3,2,2]个) 输出大小是:(27-7+1)/1=21;(17-6+1)/1=12 因此,经过C4可以得到 13 × \times × 6 @ 21 × \times × 12 C2的参数量:5 × \times × 6 × \times × (7 × \times × 6 × \times × 3+1)=3810
Subsampling layer: S5 用3 × \times × 3的subsampling 输出:13 × \times × 6 @7 × \times × 4 参数量:13 × \times × 6 × \times × 2=156
CNN layer:C6 kernel size: 7 × \times × 4,num output = 128 (每个都和前面S5的78个feature map连接) 因此,经过C6可以得到 128 @ 1 × \times × 1 C6的参数量:128 × \times × 78 × \times × (7 × \times × 4+1)= 289536
最后一层: 输出3 classes, 全连接 参数量:3 × \times × 128 = 384
综上,整个网络的参数量是1480 + 92 + 3810 + 156 + 289536 + 384 = 295458
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132268.html原文链接:https://javaforall.cn