TylerYep / torchinfo

View model summaries in PyTorch!
MIT License
2.48k stars 117 forks source link

googlenet layer info is incorrect #97

Closed xiangyun-hz closed 2 years ago

xiangyun-hz commented 2 years ago

Describe the bug the torchinfo of googlenet is not match with print(geegolenet)

main.py

! /usr/bin/env python3

! -- coding: utf-8 --

import torch import torchvision.models as models from torchinfo import summary

if name == 'main': print(torch.version)

model = models.googlenet()
print(model)
model_stats = summary(model, (1, 3, 112, 112), depth=500, verbose=1)
print(model_stats)

log: 1.10.0+cu113 /usr/local/lib/python3.6/dist-packages/torchvision/models/googlenet.py:80: FutureWarning: The default weight initialization of GoogleNet will be changed in future releases of torchvision. If you wish to keep the old behavior (which leads to long initialization times due to scipy/scipy#11299), please set init_weights=True. ' due to scipy/scipy#11299), please set init_weights=True.', FutureWarning) GoogLeNet( (conv1): BasicConv2d( (conv): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (maxpool1): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=True) (conv2): BasicConv2d( (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (conv3): BasicConv2d( (conv): Conv2d(64, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(192, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (maxpool2): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=True) (inception3a): Inception( (branch1): BasicConv2d( (conv): Conv2d(192, 64, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (branch2): Sequential( (0): BasicConv2d( (conv): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(96, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(96, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch3): Sequential( (0): BasicConv2d( (conv): Conv2d(192, 16, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(16, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(32, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch4): Sequential( (0): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=True) (1): BasicConv2d( (conv): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(32, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) ) (inception3b): Inception( (branch1): BasicConv2d( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (branch2): Sequential( (0): BasicConv2d( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(128, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(192, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch3): Sequential( (0): BasicConv2d( (conv): Conv2d(256, 32, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(32, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(32, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(96, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch4): Sequential( (0): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=True) (1): BasicConv2d( (conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) ) (maxpool3): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=True) (inception4a): Inception( (branch1): BasicConv2d( (conv): Conv2d(480, 192, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(192, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (branch2): Sequential( (0): BasicConv2d( (conv): Conv2d(480, 96, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(96, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(96, 208, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(208, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch3): Sequential( (0): BasicConv2d( (conv): Conv2d(480, 16, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(16, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(16, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(48, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch4): Sequential( (0): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=True) (1): BasicConv2d( (conv): Conv2d(480, 64, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) ) (inception4b): Inception( (branch1): BasicConv2d( (conv): Conv2d(512, 160, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (branch2): Sequential( (0): BasicConv2d( (conv): Conv2d(512, 112, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(112, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(112, 224, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(224, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch3): Sequential( (0): BasicConv2d( (conv): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(24, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(24, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch4): Sequential( (0): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=True) (1): BasicConv2d( (conv): Conv2d(512, 64, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) ) (inception4c): Inception( (branch1): BasicConv2d( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (branch2): Sequential( (0): BasicConv2d( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch3): Sequential( (0): BasicConv2d( (conv): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(24, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(24, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch4): Sequential( (0): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=True) (1): BasicConv2d( (conv): Conv2d(512, 64, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) ) (inception4d): Inception( (branch1): BasicConv2d( (conv): Conv2d(512, 112, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(112, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (branch2): Sequential( (0): BasicConv2d( (conv): Conv2d(512, 144, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(144, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(144, 288, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(288, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch3): Sequential( (0): BasicConv2d( (conv): Conv2d(512, 32, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(32, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch4): Sequential( (0): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=True) (1): BasicConv2d( (conv): Conv2d(512, 64, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(64, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) ) (inception4e): Inception( (branch1): BasicConv2d( (conv): Conv2d(528, 256, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (branch2): Sequential( (0): BasicConv2d( (conv): Conv2d(528, 160, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(160, 320, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(320, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch3): Sequential( (0): BasicConv2d( (conv): Conv2d(528, 32, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(32, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(32, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch4): Sequential( (0): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=True) (1): BasicConv2d( (conv): Conv2d(528, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) ) (maxpool4): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=True) (inception5a): Inception( (branch1): BasicConv2d( (conv): Conv2d(832, 256, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(256, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (branch2): Sequential( (0): BasicConv2d( (conv): Conv2d(832, 160, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(160, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(160, 320, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(320, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch3): Sequential( (0): BasicConv2d( (conv): Conv2d(832, 32, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(32, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(32, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch4): Sequential( (0): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=True) (1): BasicConv2d( (conv): Conv2d(832, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) ) (inception5b): Inception( (branch1): BasicConv2d( (conv): Conv2d(832, 384, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(384, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (branch2): Sequential( (0): BasicConv2d( (conv): Conv2d(832, 192, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(192, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(192, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(384, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch3): Sequential( (0): BasicConv2d( (conv): Conv2d(832, 48, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(48, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (1): BasicConv2d( (conv): Conv2d(48, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) (branch4): Sequential( (0): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=True) (1): BasicConv2d( (conv): Conv2d(832, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) ) ) (aux1): InceptionAux( (conv): BasicConv2d( (conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (fc1): Linear(in_features=2048, out_features=1024, bias=True) (fc2): Linear(in_features=1024, out_features=1000, bias=True) ) (aux2): InceptionAux( (conv): BasicConv2d( (conv): Conv2d(528, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=0.001, momentum=0.1, affine=True, track_running_stats=True) ) (fc1): Linear(in_features=2048, out_features=1024, bias=True) (fc2): Linear(in_features=1024, out_features=1000, bias=True) ) (avgpool): AdaptiveAvgPool2d(output_size=(1, 1)) (dropout): Dropout(p=0.2, inplace=False) (fc): Linear(in_features=1024, out_features=1000, bias=True) )

========================================================================================== Layer (type:depth-idx) Output Shape Param #

GoogLeNet -- -- ├─BasicConv2d: 1-1 [1, 64, 56, 56] -- │ └─Conv2d: 2-1 [1, 64, 56, 56] 9,408 │ └─BatchNorm2d: 2-2 [1, 64, 56, 56] 128 ├─MaxPool2d: 1-2 [1, 64, 28, 28] -- ├─BasicConv2d: 1-3 [1, 64, 28, 28] -- │ └─Conv2d: 2-3 [1, 64, 28, 28] 4,096 │ └─BatchNorm2d: 2-4 [1, 64, 28, 28] 128 ├─BasicConv2d: 1-4 [1, 192, 28, 28] -- │ └─Conv2d: 2-5 [1, 192, 28, 28] 110,592 │ └─BatchNorm2d: 2-6 [1, 192, 28, 28] 384 ├─MaxPool2d: 1-5 [1, 192, 14, 14] -- ├─Inception: 1-6 [1, 256, 14, 14] -- │ └─BasicConv2d: 2-7 [1, 64, 14, 14] -- │ │ └─Conv2d: 3-1 [1, 64, 14, 14] 12,288 │ │ └─BatchNorm2d: 3-2 [1, 64, 14, 14] 128 │ └─Sequential: 2-8 [1, 128, 14, 14] -- │ │ └─BasicConv2d: 3-3 [1, 96, 14, 14] -- │ │ │ └─Conv2d: 4-1 [1, 96, 14, 14] 18,432 │ │ │ └─BatchNorm2d: 4-2 [1, 96, 14, 14] 192 │ │ └─BasicConv2d: 3-4 [1, 128, 14, 14] -- │ │ │ └─Conv2d: 4-3 [1, 128, 14, 14] 110,592 │ │ │ └─BatchNorm2d: 4-4 [1, 128, 14, 14] 256 │ └─Sequential: 2-9 [1, 32, 14, 14] -- │ │ └─BasicConv2d: 3-5 [1, 16, 14, 14] -- │ │ │ └─Conv2d: 4-5 [1, 16, 14, 14] 3,072 │ │ │ └─BatchNorm2d: 4-6 [1, 16, 14, 14] 32 │ │ └─BasicConv2d: 3-6 [1, 32, 14, 14] -- │ │ │ └─Conv2d: 4-7 [1, 32, 14, 14] 4,608 │ │ │ └─BatchNorm2d: 4-8 [1, 32, 14, 14] 64 │ └─Sequential: 2-10 [1, 32, 14, 14] -- │ │ └─MaxPool2d: 3-7 [1, 192, 14, 14] -- │ │ └─BasicConv2d: 3-8 [1, 32, 14, 14] -- │ │ │ └─Conv2d: 4-9 [1, 32, 14, 14] 6,144 │ │ │ └─BatchNorm2d: 4-10 [1, 32, 14, 14] 64 ├─Inception: 1-7 [1, 480, 14, 14] -- │ └─BasicConv2d: 2-11 [1, 128, 14, 14] -- │ │ └─Conv2d: 3-9 [1, 128, 14, 14] 32,768 │ │ └─BatchNorm2d: 3-10 [1, 128, 14, 14] 256 │ └─Sequential: 2-12 [1, 192, 14, 14] -- │ │ └─BasicConv2d: 3-11 [1, 128, 14, 14] -- │ │ │ └─Conv2d: 4-11 [1, 128, 14, 14] 32,768 │ │ │ └─BatchNorm2d: 4-12 [1, 128, 14, 14] 256 │ │ └─BasicConv2d: 3-12 [1, 192, 14, 14] -- │ │ │ └─Conv2d: 4-13 [1, 192, 14, 14] 221,184 │ │ │ └─BatchNorm2d: 4-14 [1, 192, 14, 14] 384 │ └─Sequential: 2-13 [1, 96, 14, 14] -- │ │ └─BasicConv2d: 3-13 [1, 32, 14, 14] -- │ │ │ └─Conv2d: 4-15 [1, 32, 14, 14] 8,192 │ │ │ └─BatchNorm2d: 4-16 [1, 32, 14, 14] 64 │ │ └─BasicConv2d: 3-14 [1, 96, 14, 14] -- │ │ │ └─Conv2d: 4-17 [1, 96, 14, 14] 27,648 │ │ │ └─BatchNorm2d: 4-18 [1, 96, 14, 14] 192 │ └─Sequential: 2-14 [1, 64, 14, 14] -- │ │ └─MaxPool2d: 3-15 [1, 256, 14, 14] -- │ │ └─BasicConv2d: 3-16 [1, 64, 14, 14] -- │ │ │ └─Conv2d: 4-19 [1, 64, 14, 14] 16,384 │ │ │ └─BatchNorm2d: 4-20 [1, 64, 14, 14] 128 ├─MaxPool2d: 1-8 [1, 480, 7, 7] -- ├─Inception: 1-9 [1, 512, 7, 7] -- │ └─BasicConv2d: 2-15 [1, 192, 7, 7] -- │ │ └─Conv2d: 3-17 [1, 192, 7, 7] 92,160 │ │ └─BatchNorm2d: 3-18 [1, 192, 7, 7] 384 │ └─Sequential: 2-16 [1, 208, 7, 7] -- │ │ └─BasicConv2d: 3-19 [1, 96, 7, 7] -- │ │ │ └─Conv2d: 4-21 [1, 96, 7, 7] 46,080 │ │ │ └─BatchNorm2d: 4-22 [1, 96, 7, 7] 192 │ │ └─BasicConv2d: 3-20 [1, 208, 7, 7] -- │ │ │ └─Conv2d: 4-23 [1, 208, 7, 7] 179,712 │ │ │ └─BatchNorm2d: 4-24 [1, 208, 7, 7] 416 │ └─Sequential: 2-17 [1, 48, 7, 7] -- │ │ └─BasicConv2d: 3-21 [1, 16, 7, 7] -- │ │ │ └─Conv2d: 4-25 [1, 16, 7, 7] 7,680 │ │ │ └─BatchNorm2d: 4-26 [1, 16, 7, 7] 32 │ │ └─BasicConv2d: 3-22 [1, 48, 7, 7] -- │ │ │ └─Conv2d: 4-27 [1, 48, 7, 7] 6,912 │ │ │ └─BatchNorm2d: 4-28 [1, 48, 7, 7] 96 │ └─Sequential: 2-18 [1, 64, 7, 7] -- │ │ └─MaxPool2d: 3-23 [1, 480, 7, 7] -- │ │ └─BasicConv2d: 3-24 [1, 64, 7, 7] -- │ │ │ └─Conv2d: 4-29 [1, 64, 7, 7] 30,720 │ │ │ └─BatchNorm2d: 4-30 [1, 64, 7, 7] 128 ├─Inception: 1-10 [1, 512, 7, 7] -- │ └─BasicConv2d: 2-19 [1, 160, 7, 7] -- │ │ └─Conv2d: 3-25 [1, 160, 7, 7] 81,920 │ │ └─BatchNorm2d: 3-26 [1, 160, 7, 7] 320 │ └─Sequential: 2-20 [1, 224, 7, 7] -- │ │ └─BasicConv2d: 3-27 [1, 112, 7, 7] -- │ │ │ └─Conv2d: 4-31 [1, 112, 7, 7] 57,344 │ │ │ └─BatchNorm2d: 4-32 [1, 112, 7, 7] 224 │ │ └─BasicConv2d: 3-28 [1, 224, 7, 7] -- │ │ │ └─Conv2d: 4-33 [1, 224, 7, 7] 225,792 │ │ │ └─BatchNorm2d: 4-34 [1, 224, 7, 7] 448 │ └─Sequential: 2-21 [1, 64, 7, 7] -- │ │ └─BasicConv2d: 3-29 [1, 24, 7, 7] -- │ │ │ └─Conv2d: 4-35 [1, 24, 7, 7] 12,288 │ │ │ └─BatchNorm2d: 4-36 [1, 24, 7, 7] 48 │ │ └─BasicConv2d: 3-30 [1, 64, 7, 7] -- │ │ │ └─Conv2d: 4-37 [1, 64, 7, 7] 13,824 │ │ │ └─BatchNorm2d: 4-38 [1, 64, 7, 7] 128 │ └─Sequential: 2-22 [1, 64, 7, 7] -- │ │ └─MaxPool2d: 3-31 [1, 512, 7, 7] -- │ │ └─BasicConv2d: 3-32 [1, 64, 7, 7] -- │ │ │ └─Conv2d: 4-39 [1, 64, 7, 7] 32,768 │ │ │ └─BatchNorm2d: 4-40 [1, 64, 7, 7] 128 ├─Inception: 1-11 [1, 512, 7, 7] -- │ └─BasicConv2d: 2-23 [1, 128, 7, 7] -- │ │ └─Conv2d: 3-33 [1, 128, 7, 7] 65,536 │ │ └─BatchNorm2d: 3-34 [1, 128, 7, 7] 256 │ └─Sequential: 2-24 [1, 256, 7, 7] -- │ │ └─BasicConv2d: 3-35 [1, 128, 7, 7] -- │ │ │ └─Conv2d: 4-41 [1, 128, 7, 7] 65,536 │ │ │ └─BatchNorm2d: 4-42 [1, 128, 7, 7] 256 │ │ └─BasicConv2d: 3-36 [1, 256, 7, 7] -- │ │ │ └─Conv2d: 4-43 [1, 256, 7, 7] 294,912 │ │ │ └─BatchNorm2d: 4-44 [1, 256, 7, 7] 512 │ └─Sequential: 2-25 [1, 64, 7, 7] -- │ │ └─BasicConv2d: 3-37 [1, 24, 7, 7] -- │ │ │ └─Conv2d: 4-45 [1, 24, 7, 7] 12,288 │ │ │ └─BatchNorm2d: 4-46 [1, 24, 7, 7] 48 │ │ └─BasicConv2d: 3-38 [1, 64, 7, 7] -- │ │ │ └─Conv2d: 4-47 [1, 64, 7, 7] 13,824 │ │ │ └─BatchNorm2d: 4-48 [1, 64, 7, 7] 128 │ └─Sequential: 2-26 [1, 64, 7, 7] -- │ │ └─MaxPool2d: 3-39 [1, 512, 7, 7] -- │ │ └─BasicConv2d: 3-40 [1, 64, 7, 7] -- │ │ │ └─Conv2d: 4-49 [1, 64, 7, 7] 32,768 │ │ │ └─BatchNorm2d: 4-50 [1, 64, 7, 7] 128 ├─Inception: 1-12 [1, 528, 7, 7] -- │ └─BasicConv2d: 2-27 [1, 112, 7, 7] -- │ │ └─Conv2d: 3-41 [1, 112, 7, 7] 57,344 │ │ └─BatchNorm2d: 3-42 [1, 112, 7, 7] 224 │ └─Sequential: 2-28 [1, 288, 7, 7] -- │ │ └─BasicConv2d: 3-43 [1, 144, 7, 7] -- │ │ │ └─Conv2d: 4-51 [1, 144, 7, 7] 73,728 │ │ │ └─BatchNorm2d: 4-52 [1, 144, 7, 7] 288 │ │ └─BasicConv2d: 3-44 [1, 288, 7, 7] -- │ │ │ └─Conv2d: 4-53 [1, 288, 7, 7] 373,248 │ │ │ └─BatchNorm2d: 4-54 [1, 288, 7, 7] 576 │ └─Sequential: 2-29 [1, 64, 7, 7] -- │ │ └─BasicConv2d: 3-45 [1, 32, 7, 7] -- │ │ │ └─Conv2d: 4-55 [1, 32, 7, 7] 16,384 │ │ │ └─BatchNorm2d: 4-56 [1, 32, 7, 7] 64 │ │ └─BasicConv2d: 3-46 [1, 64, 7, 7] -- │ │ │ └─Conv2d: 4-57 [1, 64, 7, 7] 18,432 │ │ │ └─BatchNorm2d: 4-58 [1, 64, 7, 7] 128 │ └─Sequential: 2-30 [1, 64, 7, 7] -- │ │ └─MaxPool2d: 3-47 [1, 512, 7, 7] -- │ │ └─BasicConv2d: 3-48 [1, 64, 7, 7] -- │ │ │ └─Conv2d: 4-59 [1, 64, 7, 7] 32,768 │ │ │ └─BatchNorm2d: 4-60 [1, 64, 7, 7] 128 ├─Inception: 1-13 [1, 832, 7, 7] -- │ └─BasicConv2d: 2-31 [1, 256, 7, 7] -- │ │ └─Conv2d: 3-49 [1, 256, 7, 7] 135,168 │ │ └─BatchNorm2d: 3-50 [1, 256, 7, 7] 512 │ └─Sequential: 2-32 [1, 320, 7, 7] -- │ │ └─BasicConv2d: 3-51 [1, 160, 7, 7] -- │ │ │ └─Conv2d: 4-61 [1, 160, 7, 7] 84,480 │ │ │ └─BatchNorm2d: 4-62 [1, 160, 7, 7] 320 │ │ └─BasicConv2d: 3-52 [1, 320, 7, 7] -- │ │ │ └─Conv2d: 4-63 [1, 320, 7, 7] 460,800 │ │ │ └─BatchNorm2d: 4-64 [1, 320, 7, 7] 640 │ └─Sequential: 2-33 [1, 128, 7, 7] -- │ │ └─BasicConv2d: 3-53 [1, 32, 7, 7] -- │ │ │ └─Conv2d: 4-65 [1, 32, 7, 7] 16,896 │ │ │ └─BatchNorm2d: 4-66 [1, 32, 7, 7] 64 │ │ └─BasicConv2d: 3-54 [1, 128, 7, 7] -- │ │ │ └─Conv2d: 4-67 [1, 128, 7, 7] 36,864 │ │ │ └─BatchNorm2d: 4-68 [1, 128, 7, 7] 256 │ └─Sequential: 2-34 [1, 128, 7, 7] -- │ │ └─MaxPool2d: 3-55 [1, 528, 7, 7] -- │ │ └─BasicConv2d: 3-56 [1, 128, 7, 7] -- │ │ │ └─Conv2d: 4-69 [1, 128, 7, 7] 67,584 │ │ │ └─BatchNorm2d: 4-70 [1, 128, 7, 7] 256 ├─MaxPool2d: 1-14 [1, 832, 4, 4] -- ├─Inception: 1-15 [1, 832, 4, 4] -- │ └─BasicConv2d: 2-35 [1, 256, 4, 4] -- │ │ └─Conv2d: 3-57 [1, 256, 4, 4] 212,992 │ │ └─BatchNorm2d: 3-58 [1, 256, 4, 4] 512 │ └─Sequential: 2-36 [1, 320, 4, 4] -- │ │ └─BasicConv2d: 3-59 [1, 160, 4, 4] -- │ │ │ └─Conv2d: 4-71 [1, 160, 4, 4] 133,120 │ │ │ └─BatchNorm2d: 4-72 [1, 160, 4, 4] 320 │ │ └─BasicConv2d: 3-60 [1, 320, 4, 4] -- │ │ │ └─Conv2d: 4-73 [1, 320, 4, 4] 460,800 │ │ │ └─BatchNorm2d: 4-74 [1, 320, 4, 4] 640 │ └─Sequential: 2-37 [1, 128, 4, 4] -- │ │ └─BasicConv2d: 3-61 [1, 32, 4, 4] -- │ │ │ └─Conv2d: 4-75 [1, 32, 4, 4] 26,624 │ │ │ └─BatchNorm2d: 4-76 [1, 32, 4, 4] 64 │ │ └─BasicConv2d: 3-62 [1, 128, 4, 4] -- │ │ │ └─Conv2d: 4-77 [1, 128, 4, 4] 36,864 │ │ │ └─BatchNorm2d: 4-78 [1, 128, 4, 4] 256 │ └─Sequential: 2-38 [1, 128, 4, 4] -- │ │ └─MaxPool2d: 3-63 [1, 832, 4, 4] -- │ │ └─BasicConv2d: 3-64 [1, 128, 4, 4] -- │ │ │ └─Conv2d: 4-79 [1, 128, 4, 4] 106,496 │ │ │ └─BatchNorm2d: 4-80 [1, 128, 4, 4] 256 ├─Inception: 1-16 [1, 1024, 4, 4] -- │ └─BasicConv2d: 2-39 [1, 384, 4, 4] -- │ │ └─Conv2d: 3-65 [1, 384, 4, 4] 319,488 │ │ └─BatchNorm2d: 3-66 [1, 384, 4, 4] 768 │ └─Sequential: 2-40 [1, 384, 4, 4] -- │ │ └─BasicConv2d: 3-67 [1, 192, 4, 4] -- │ │ │ └─Conv2d: 4-81 [1, 192, 4, 4] 159,744 │ │ │ └─BatchNorm2d: 4-82 [1, 192, 4, 4] 384 │ │ └─BasicConv2d: 3-68 [1, 384, 4, 4] -- │ │ │ └─Conv2d: 4-83 [1, 384, 4, 4] 663,552 │ │ │ └─BatchNorm2d: 4-84 [1, 384, 4, 4] 768 │ └─Sequential: 2-41 [1, 128, 4, 4] -- │ │ └─BasicConv2d: 3-69 [1, 48, 4, 4] -- │ │ │ └─Conv2d: 4-85 [1, 48, 4, 4] 39,936 │ │ │ └─BatchNorm2d: 4-86 [1, 48, 4, 4] 96 │ │ └─BasicConv2d: 3-70 [1, 128, 4, 4] -- │ │ │ └─Conv2d: 4-87 [1, 128, 4, 4] 55,296 │ │ │ └─BatchNorm2d: 4-88 [1, 128, 4, 4] 256 │ └─Sequential: 2-42 [1, 128, 4, 4] -- │ │ └─MaxPool2d: 3-71 [1, 832, 4, 4] -- │ │ └─BasicConv2d: 3-72 [1, 128, 4, 4] -- │ │ │ └─Conv2d: 4-89 [1, 128, 4, 4] 106,496 │ │ │ └─BatchNorm2d: 4-90 [1, 128, 4, 4] 256 ├─AdaptiveAvgPool2d: 1-17 [1, 1024, 1, 1] -- ├─Dropout: 1-18 [1, 1024] -- ├─Linear: 1-19 [1, 1000] 1,025,000

Total params: 6,624,904 Trainable params: 6,624,904 Non-trainable params: 0 Total mult-adds (M): 384.08

Input size (MB): 0.15 Forward/backward pass size (MB): 13.05 Params size (MB): 26.50 Estimated Total Size (MB): 39.70

To Reproduce Steps to reproduce the behavior:

  1. Go to 'python3 main.py'
  2. look at the log, thr torch info of list is not match print,such as the num of Linear
  3. Scroll down to '....'
  4. See error

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Smartphone (please complete the following information):

Additional context Add any other context about the problem here.

xiangyun-hz commented 2 years ago

In other owrds, two InceptionAux structs is missing.

TylerYep commented 2 years ago

Thank you for opening this. I can confirm this is an issue and am investigating a fix.

TylerYep commented 2 years ago

This has been resolved in 71e89b6 and will be released into v1.6.2!