先上链接
pytorch-summarygithub.com使用
GitHub仓库上已经说得很明白,这里以查看视频模型TSM举例子
在opts目录下新建check_model.py,文件内容如下
import
这里的24为3*8,3为RBG通道数,8为num_segment,可通过CUDA_VISIBLE_DEVICES指定使用的GPU
输出如下,可以看到TemporalShift操作无须额外参数
----------------------------------------------------------------
Layer (type) Output Shape Param #
================================================================
Conv2d-1 [-1, 64, 14, 14] 9,408
BatchNorm2d-2 [-1, 64, 14, 14] 128
ReLU-3 [-1, 64, 14, 14] 0
MaxPool2d-4 [-1, 64, 7, 7] 0
Conv2d-5 [-1, 64, 7, 7] 4,096
TemporalShift-6 [-1, 64, 7, 7] 0
BatchNorm2d-7 [-1, 64, 7, 7] 128
ReLU-8 [-1, 64, 7, 7] 0
Conv2d-9 [-1, 64, 7, 7] 36,864
BatchNorm2d-10 [-1, 64, 7, 7] 128
ReLU-11 [-1, 64, 7, 7] 0
Conv2d-12 [-1, 256, 7, 7] 16,384
BatchNorm2d-13 [-1, 256, 7, 7] 512
Conv2d-14 [-1, 256, 7, 7] 16,384
BatchNorm2d-15 [-1, 256, 7, 7] 512
ReLU-16 [-1, 256, 7, 7] 0
Bottleneck-17 [-1, 256, 7, 7] 0
Conv2d-18 [-1, 64, 7, 7] 16,384
TemporalShift-19 [-1, 64, 7, 7] 0
BatchNorm2d-20 [-1, 64, 7, 7] 128
ReLU-21 [-1, 64, 7, 7] 0
Conv2d-22 [-1, 64, 7, 7] 36,864
BatchNorm2d-23 [-1, 64, 7, 7] 128
ReLU-24 [-1, 64, 7, 7] 0
Conv2d-25 [-1, 256, 7, 7] 16,384
BatchNorm2d-26 [-1, 256, 7, 7] 512
ReLU-27 [-1, 256, 7, 7] 0
Bottleneck-28 [-1, 256, 7, 7] 0
Conv2d-29 [-1, 64, 7, 7] 16,384
TemporalShift-30 [-1, 64, 7, 7] 0
BatchNorm2d-31 [-1, 64, 7, 7] 128
ReLU-32 [-1, 64, 7, 7] 0
Conv2d-33 [-1, 64, 7, 7] 36,864
BatchNorm2d-34 [-1, 64, 7, 7] 128
ReLU-35 [-1, 64, 7, 7] 0
Conv2d-36 [-1, 256, 7, 7] 16,384
BatchNorm2d-37 [-1, 256, 7, 7] 512
ReLU-38 [-1, 256, 7, 7] 0
Bottleneck-39 [-1, 256, 7, 7] 0
Conv2d-40 [-1, 128, 7, 7] 32,768
TemporalShift-41 [-1, 128, 7, 7] 0
BatchNorm2d-42 [-1, 128, 7, 7] 256
ReLU-43 [-1, 128, 7, 7] 0
Conv2d-44 [-1, 128, 4, 4] 147,456
BatchNorm2d-45 [-1, 128, 4, 4] 256
ReLU-46 [-1, 128, 4, 4] 0
Conv2d-47 [-1, 512, 4, 4] 65,536
BatchNorm2d-48 [-1, 512, 4, 4] 1,024
Conv2d-49 [-1, 512, 4, 4] 131,072
BatchNorm2d-50 [-1, 512, 4, 4] 1,024
ReLU-51 [-1, 512, 4, 4] 0
Bottleneck-52 [-1, 512, 4, 4] 0
Conv2d-53 [-1, 128, 4, 4] 65,536
TemporalShift-54 [-1, 128, 4, 4] 0
BatchNorm2d-55 [-1, 128, 4, 4] 256
ReLU-56 [-1, 128, 4, 4] 0
Conv2d-57 [-1, 128, 4, 4] 147,456
BatchNorm2d-58 [-1, 128, 4, 4] 256
ReLU-59 [-1, 128, 4, 4] 0
Conv2d-60 [-1, 512, 4, 4] 65,536
BatchNorm2d-61 [-1, 512, 4, 4] 1,024
ReLU-62 [-1, 512, 4, 4] 0
Bottleneck-63 [-1, 512, 4, 4] 0
Conv2d-64 [-1, 128, 4, 4] 65,536
TemporalShift-65 [-1, 128, 4, 4] 0
BatchNorm2d-66 [-1, 128, 4, 4] 256
ReLU-67 [-1, 128, 4, 4] 0
Conv2d-68 [-1, 128, 4, 4] 147,456
BatchNorm2d-69 [-1, 128, 4, 4] 256
ReLU-70 [-1, 128, 4, 4] 0
Conv2d-71 [-1, 512, 4, 4] 65,536
BatchNorm2d-72 [-1, 512, 4, 4] 1,024
ReLU-73 [-1, 512, 4, 4] 0
Bottleneck-74 [-1, 512, 4, 4] 0
Conv2d-75 [-1, 128, 4, 4] 65,536
TemporalShift-76 [-1, 128, 4, 4] 0
BatchNorm2d-77 [-1, 128, 4, 4] 256
ReLU-78 [-1, 128, 4, 4] 0
Conv2d-79 [-1, 128, 4, 4] 147,456
BatchNorm2d-80 [-1, 128, 4, 4] 256
ReLU-81 [-1, 128, 4, 4] 0
Conv2d-82 [-1, 512, 4, 4] 65,536
BatchNorm2d-83 [-1, 512, 4, 4] 1,024
ReLU-84 [-1, 512, 4, 4] 0
Bottleneck-85 [-1, 512, 4, 4] 0
Conv2d-86 [-1, 256, 4, 4] 131,072
TemporalShift-87 [-1, 256, 4, 4] 0
BatchNorm2d-88 [-1, 256, 4, 4] 512
ReLU-89 [-1, 256, 4, 4] 0
Conv2d-90 [-1, 256, 2, 2] 589,824
BatchNorm2d-91 [-1, 256, 2, 2] 512
ReLU-92 [-1, 256, 2, 2] 0
Conv2d-93 [-1, 1024, 2, 2] 262,144
BatchNorm2d-94 [-1, 1024, 2, 2] 2,048
Conv2d-95 [-1, 1024, 2, 2] 524,288
BatchNorm2d-96 [-1, 1024, 2, 2] 2,048
ReLU-97 [-1, 1024, 2, 2] 0
Bottleneck-98 [-1, 1024, 2, 2] 0
Conv2d-99 [-1, 256, 2, 2] 262,144
TemporalShift-100 [-1, 256, 2, 2] 0
BatchNorm2d-101 [-1, 256, 2, 2] 512
ReLU-102 [-1, 256, 2, 2] 0
Conv2d-103 [-1, 256, 2, 2] 589,824
BatchNorm2d-104 [-1, 256, 2, 2] 512
ReLU-105 [-1, 256, 2, 2] 0
Conv2d-106 [-1, 1024, 2, 2] 262,144
BatchNorm2d-107 [-1, 1024, 2, 2] 2,048
ReLU-108 [-1, 1024, 2, 2] 0
Bottleneck-109 [-1, 1024, 2, 2] 0
Conv2d-110 [-1, 256, 2, 2] 262,144
TemporalShift-111 [-1, 256, 2, 2] 0
BatchNorm2d-112 [-1, 256, 2, 2] 512
ReLU-113 [-1, 256, 2, 2] 0
Conv2d-114 [-1, 256, 2, 2] 589,824
BatchNorm2d-115 [-1, 256, 2, 2] 512
ReLU-116 [-1, 256, 2, 2] 0
Conv2d-117 [-1, 1024, 2, 2] 262,144
BatchNorm2d-118 [-1, 1024, 2, 2] 2,048
ReLU-119 [-1, 1024, 2, 2] 0
Bottleneck-120 [-1, 1024, 2, 2] 0
Conv2d-121 [-1, 256, 2, 2] 262,144
TemporalShift-122 [-1, 256, 2, 2] 0
BatchNorm2d-123 [-1, 256, 2, 2] 512
ReLU-124 [-1, 256, 2, 2] 0
Conv2d-125 [-1, 256, 2, 2] 589,824
BatchNorm2d-126 [-1, 256, 2, 2] 512
ReLU-127 [-1, 256, 2, 2] 0
Conv2d-128 [-1, 1024, 2, 2] 262,144
BatchNorm2d-129 [-1, 1024, 2, 2] 2,048
ReLU-130 [-1, 1024, 2, 2] 0
Bottleneck-131 [-1, 1024, 2, 2] 0
Conv2d-132 [-1, 256, 2, 2] 262,144
TemporalShift-133 [-1, 256, 2, 2] 0
BatchNorm2d-134 [-1, 256, 2, 2] 512
ReLU-135 [-1, 256, 2, 2] 0
Conv2d-136 [-1, 256, 2, 2] 589,824
BatchNorm2d-137 [-1, 256, 2, 2] 512
ReLU-138 [-1, 256, 2, 2] 0
Conv2d-139 [-1, 1024, 2, 2] 262,144
BatchNorm2d-140 [-1, 1024, 2, 2] 2,048
ReLU-141 [-1, 1024, 2, 2] 0
Bottleneck-142 [-1, 1024, 2, 2] 0
Conv2d-143 [-1, 256, 2, 2] 262,144
TemporalShift-144 [-1, 256, 2, 2] 0
BatchNorm2d-145 [-1, 256, 2, 2] 512
ReLU-146 [-1, 256, 2, 2] 0
Conv2d-147 [-1, 256, 2, 2] 589,824
BatchNorm2d-148 [-1, 256, 2, 2] 512
ReLU-149 [-1, 256, 2, 2] 0
Conv2d-150 [-1, 1024, 2, 2] 262,144
BatchNorm2d-151 [-1, 1024, 2, 2] 2,048
ReLU-152 [-1, 1024, 2, 2] 0
Bottleneck-153 [-1, 1024, 2, 2] 0
Conv2d-154 [-1, 512, 2, 2] 524,288
TemporalShift-155 [-1, 512, 2, 2] 0
BatchNorm2d-156 [-1, 512, 2, 2] 1,024
ReLU-157 [-1, 512, 2, 2] 0
Conv2d-158 [-1, 512, 1, 1] 2,359,296
BatchNorm2d-159 [-1, 512, 1, 1] 1,024
ReLU-160 [-1, 512, 1, 1] 0
Conv2d-161 [-1, 2048, 1, 1] 1,048,576
BatchNorm2d-162 [-1, 2048, 1, 1] 4,096
Conv2d-163 [-1, 2048, 1, 1] 2,097,152
BatchNorm2d-164 [-1, 2048, 1, 1] 4,096
ReLU-165 [-1, 2048, 1, 1] 0
Bottleneck-166 [-1, 2048, 1, 1] 0
Conv2d-167 [-1, 512, 1, 1] 1,048,576
TemporalShift-168 [-1, 512, 1, 1] 0
BatchNorm2d-169 [-1, 512, 1, 1] 1,024
ReLU-170 [-1, 512, 1, 1] 0
Conv2d-171 [-1, 512, 1, 1] 2,359,296
BatchNorm2d-172 [-1, 512, 1, 1] 1,024
ReLU-173 [-1, 512, 1, 1] 0
Conv2d-174 [-1, 2048, 1, 1] 1,048,576
BatchNorm2d-175 [-1, 2048, 1, 1] 4,096
ReLU-176 [-1, 2048, 1, 1] 0
Bottleneck-177 [-1, 2048, 1, 1] 0
Conv2d-178 [-1, 512, 1, 1] 1,048,576
TemporalShift-179 [-1, 512, 1, 1] 0
BatchNorm2d-180 [-1, 512, 1, 1] 1,024
ReLU-181 [-1, 512, 1, 1] 0
Conv2d-182 [-1, 512, 1, 1] 2,359,296
BatchNorm2d-183 [-1, 512, 1, 1] 1,024
ReLU-184 [-1, 512, 1, 1] 0
Conv2d-185 [-1, 2048, 1, 1] 1,048,576
BatchNorm2d-186 [-1, 2048, 1, 1] 4,096
ReLU-187 [-1, 2048, 1, 1] 0
Bottleneck-188 [-1, 2048, 1, 1] 0
AdaptiveAvgPool2d-189 [-1, 2048, 1, 1] 0
Dropout-190 [-1, 2048] 0
ResNet-191 [-1, 2048] 0
Linear-192 [-1, 101] 206,949
ConsensusModule-193 [-1, 1, 101] 0
================================================================
Total params: 23,714,981
Trainable params: 23,714,981
Non-trainable params: 0
----------------------------------------------------------------
Input size (MB): 0.07
Forward/backward pass size (MB): 5.48
Params size (MB): 90.47
Estimated Total Size (MB): 96.01
----------------------------------------------------------------