1. pytorch
2. torchsummary或torchinfo
个人更喜欢torchinfo。具体使用方法:
import torchinfo
# input_size: 不需要包含batch维度
# batch_dim: batch在input数据中所处维度
# verbose:在jupyter中使用时,verbose需要设为0
torchinfo.summary(model, input_size=(C, W, H), batch_dim=b0,
col_names = ('input_size', 'output_size', 'num_params', 'kernel_size', 'mult_adds'), verbose = 1)
某个模型运行效果:
Layer (type:depth-idx) Input Shape Output Shape Param # Kernel Shape Mult-Adds
=====================================================================================================================================================================
LunaModel [1, 1, 32, 48, 48] [1, 2] -- -- --
├─BatchNorm3d: 1-1 [1, 1, 32, 48, 48] [1, 1, 32, 48, 48] 2 -- 2
├─LunaBlock: 1-2 [1, 1, 32, 48, 48] [1, 8, 16, 24, 24] -- -- --
│ └─Conv3d: 2-1 [1, 1, 32, 48, 48] [1, 8, 32, 48, 48] 224 [3, 3, 3] 16,515,072
│ └─ReLU: 2-2 [1, 8, 32, 48, 48] [1, 8, 32, 48, 48] -- -- --
│ └─Conv3d: 2-3 [1, 8, 32, 48, 48] [1, 8, 32, 48, 48] 1,736 [3, 3, 3] 127,991,808
│ └─ReLU: 2-4 [1, 8, 32, 48, 48] [1, 8, 32, 48, 48] -- -- --
│ └─MaxPool3d: 2-5 [1, 8, 32, 48, 48] [1, 8, 16, 24, 24] -- 2 --
├─LunaBlock: 1-3 [1, 8, 16, 24, 24] [1, 16, 8, 12, 12] -- -- --
│ └─Conv3d: 2-6 [1, 8, 16, 24, 24] [1, 16, 16, 24, 24] 3,472 [3, 3, 3] 31,997,952
│ └─ReLU: 2-7 [1, 16, 16, 24, 24] [1, 16, 16, 24, 24] -- -- --
│ └─Conv3d: 2-8 [1, 16, 16, 24, 24] [1, 16, 16, 24, 24] 6,928 [3, 3, 3] 63,848,448
│ └─ReLU: 2-9 [1, 16, 16, 24, 24] [1, 16, 16, 24, 24] -- -- --
│ └─MaxPool3d: 2-10 [1, 16, 16, 24, 24] [1, 16, 8, 12, 12] -- 2 --
├─LunaBlock: 1-4 [1, 16, 8, 12, 12] [1, 32, 4, 6, 6] -- -- --
│ └─Conv3d: 2-11 [1, 16, 8, 12, 12] [1, 32, 8, 12, 12] 13,856 [3, 3, 3] 15,962,112
│ └─ReLU: 2-12 [1, 32, 8, 12, 12] [1, 32, 8, 12, 12] -- -- --
│ └─Conv3d: 2-13 [1, 32, 8, 12, 12] [1, 32, 8, 12, 12] 27,680 [3, 3, 3] 31,887,360
│ └─ReLU: 2-14 [1, 32, 8, 12, 12] [1, 32, 8, 12, 12] -- -- --
│ └─MaxPool3d: 2-15 [1, 32, 8, 12, 12] [1, 32, 4, 6, 6] -- 2 --
├─LunaBlock: 1-5 [1, 32, 4, 6, 6] [1, 64, 2, 3, 3] -- -- --
│ └─Conv3d: 2-16 [1, 32, 4, 6, 6] [1, 64, 4, 6, 6] 55,360 [3, 3, 3] 7,971,840
│ └─ReLU: 2-17 [1, 64, 4, 6, 6] [1, 64, 4, 6, 6] -- -- --
│ └─Conv3d: 2-18 [1, 64, 4, 6, 6] [1, 64, 4, 6, 6] 110,656 [3, 3, 3] 15,934,464
│ └─ReLU: 2-19 [1, 64, 4, 6, 6] [1, 64, 4, 6, 6] -- -- --
│ └─MaxPool3d: 2-20 [1, 64, 4, 6, 6] [1, 64, 2, 3, 3] -- 2 --
├─Linear: 1-6 [1, 1152] [1, 2] 2,306 -- 2,306
├─Softmax: 1-7 [1, 2] [1, 2] -- -- --
=====================================================================================================================================================================
Total params: 222,220
Trainable params: 222,220
Non-trainable params: 0
Total mult-adds (M): 312.11
=====================================================================================================================================================================
Input size (MB): 0.29
Forward/backward pass size (MB): 13.12
Params size (MB): 0.89
Estimated Total Size (MB): 14.31