modelsummary icon indicating copy to clipboard operation
modelsummary copied to clipboard

AttributeError: 'list' object has no attribute 'size'

Open sizhky opened this issue 6 years ago • 0 comments

On running the following code I get the error above

def get_model(**kwargs):
    model = models.densenet121(pretrained=True).to(device)

    # Freeze parameters so we don't backprop through them
    for param in model.parameters():
        param.requires_grad = False
    model.avgpool = nn.AdaptiveAvgPool2d(output_size=(1,1))
    model.classifier = nn.Sequential(nn.Linear(512, 128, 3),
                                     nn.ReLU(),
                                     nn.Dropout(0.2),
                                     nn.Linear(128, 1),
                                     nn.Sigmoid()).to(device)

    loss_fn = nn.BCELoss()
    optimizer = torch.optim.Adam(model.parameters(), lr=kwargs.get('lr', 1e-3))
    return model, loss_fn, optimizer

try:
    from modelsummary import summary
except:
    !pip install modelsummary
    from modelsummary import summary

model, criterion, optimizer = get_model()
summary(model, torch.ones((1,3,IMAGE_SIZE,IMAGE_SIZE)).to(device), show_input=True, show_hierarchical=True)

Somehow it fails after printing an output

DenseNet(
  (features): Sequential(
    (conv0): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False), 9,408 params
    (norm0): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 128 params
    (relu0): ReLU(inplace=True), 0 params
    (pool0): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False), 0 params
    (denseblock1): _DenseBlock(
      (denselayer1): _DenseLayer(
        (norm1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 128 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 8,192 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 45,440 params
      (denselayer2): _DenseLayer(
        (norm1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 192 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(96, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 12,288 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 49,600 params
      (denselayer3): _DenseLayer(
        (norm1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 16,384 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 53,760 params
      (denselayer4): _DenseLayer(
        (norm1): BatchNorm2d(160, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 320 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(160, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 20,480 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 57,920 params
      (denselayer5): _DenseLayer(
        (norm1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 384 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(192, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 24,576 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 62,080 params
      (denselayer6): _DenseLayer(
        (norm1): BatchNorm2d(224, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 448 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(224, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 28,672 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 66,240 params
    ), 335,040 params
    (transition1): _Transition(
      (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 512 params
      (relu): ReLU(inplace=True), 0 params
      (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 32,768 params
      (pool): AvgPool2d(kernel_size=2, stride=2, padding=0), 0 params
    ), 33,280 params
    (denseblock2): _DenseBlock(
      (denselayer1): _DenseLayer(
        (norm1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 16,384 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 53,760 params
      (denselayer2): _DenseLayer(
        (norm1): BatchNorm2d(160, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 320 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(160, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 20,480 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 57,920 params
      (denselayer3): _DenseLayer(
        (norm1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 384 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(192, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 24,576 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 62,080 params
      (denselayer4): _DenseLayer(
        (norm1): BatchNorm2d(224, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 448 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(224, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 28,672 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 66,240 params
      (denselayer5): _DenseLayer(
        (norm1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 512 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 32,768 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 70,400 params
      (denselayer6): _DenseLayer(
        (norm1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 576 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(288, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 36,864 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 74,560 params
      (denselayer7): _DenseLayer(
        (norm1): BatchNorm2d(320, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 640 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(320, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 40,960 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 78,720 params
      (denselayer8): _DenseLayer(
        (norm1): BatchNorm2d(352, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 704 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(352, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 45,056 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 82,880 params
      (denselayer9): _DenseLayer(
        (norm1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 768 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(384, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 49,152 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 87,040 params
      (denselayer10): _DenseLayer(
        (norm1): BatchNorm2d(416, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 832 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(416, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 53,248 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 91,200 params
      (denselayer11): _DenseLayer(
        (norm1): BatchNorm2d(448, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 896 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(448, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 57,344 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 95,360 params
      (denselayer12): _DenseLayer(
        (norm1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 960 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(480, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 61,440 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 99,520 params
    ), 919,680 params
    (transition2): _Transition(
      (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,024 params
      (relu): ReLU(inplace=True), 0 params
      (conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False), 131,072 params
      (pool): AvgPool2d(kernel_size=2, stride=2, padding=0), 0 params
    ), 132,096 params
    (denseblock3): _DenseBlock(
      (denselayer1): _DenseLayer(
        (norm1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 512 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 32,768 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 70,400 params
      (denselayer2): _DenseLayer(
        (norm1): BatchNorm2d(288, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 576 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(288, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 36,864 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 74,560 params
      (denselayer3): _DenseLayer(
        (norm1): BatchNorm2d(320, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 640 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(320, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 40,960 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 78,720 params
      (denselayer4): _DenseLayer(
        (norm1): BatchNorm2d(352, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 704 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(352, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 45,056 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 82,880 params
      (denselayer5): _DenseLayer(
        (norm1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 768 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(384, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 49,152 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 87,040 params
      (denselayer6): _DenseLayer(
        (norm1): BatchNorm2d(416, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 832 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(416, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 53,248 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 91,200 params
      (denselayer7): _DenseLayer(
        (norm1): BatchNorm2d(448, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 896 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(448, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 57,344 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 95,360 params
      (denselayer8): _DenseLayer(
        (norm1): BatchNorm2d(480, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 960 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(480, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 61,440 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 99,520 params
      (denselayer9): _DenseLayer(
        (norm1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,024 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 65,536 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 103,680 params
      (denselayer10): _DenseLayer(
        (norm1): BatchNorm2d(544, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,088 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(544, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 69,632 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 107,840 params
      (denselayer11): _DenseLayer(
        (norm1): BatchNorm2d(576, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,152 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(576, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 73,728 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 112,000 params
      (denselayer12): _DenseLayer(
        (norm1): BatchNorm2d(608, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,216 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(608, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 77,824 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 116,160 params
      (denselayer13): _DenseLayer(
        (norm1): BatchNorm2d(640, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,280 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(640, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 81,920 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 120,320 params
      (denselayer14): _DenseLayer(
        (norm1): BatchNorm2d(672, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,344 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(672, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 86,016 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 124,480 params
      (denselayer15): _DenseLayer(
        (norm1): BatchNorm2d(704, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,408 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(704, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 90,112 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 128,640 params
      (denselayer16): _DenseLayer(
        (norm1): BatchNorm2d(736, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,472 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(736, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 94,208 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 132,800 params
      (denselayer17): _DenseLayer(
        (norm1): BatchNorm2d(768, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,536 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(768, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 98,304 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 136,960 params
      (denselayer18): _DenseLayer(
        (norm1): BatchNorm2d(800, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,600 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(800, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 102,400 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 141,120 params
      (denselayer19): _DenseLayer(
        (norm1): BatchNorm2d(832, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,664 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(832, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 106,496 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 145,280 params
      (denselayer20): _DenseLayer(
        (norm1): BatchNorm2d(864, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,728 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(864, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 110,592 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 149,440 params
      (denselayer21): _DenseLayer(
        (norm1): BatchNorm2d(896, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,792 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(896, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 114,688 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 153,600 params
      (denselayer22): _DenseLayer(
        (norm1): BatchNorm2d(928, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,856 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(928, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 118,784 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 157,760 params
      (denselayer23): _DenseLayer(
        (norm1): BatchNorm2d(960, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,920 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(960, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 122,880 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 161,920 params
      (denselayer24): _DenseLayer(
        (norm1): BatchNorm2d(992, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,984 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(992, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 126,976 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 166,080 params
    ), 2,837,760 params
    (transition3): _Transition(
      (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 2,048 params
      (relu): ReLU(inplace=True), 0 params
      (conv): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False), 524,288 params
      (pool): AvgPool2d(kernel_size=2, stride=2, padding=0), 0 params
    ), 526,336 params
    (denseblock4): _DenseBlock(
      (denselayer1): _DenseLayer(
        (norm1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,024 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 65,536 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 103,680 params
      (denselayer2): _DenseLayer(
        (norm1): BatchNorm2d(544, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,088 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(544, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 69,632 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 107,840 params
      (denselayer3): _DenseLayer(
        (norm1): BatchNorm2d(576, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,152 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(576, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 73,728 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 112,000 params
      (denselayer4): _DenseLayer(
        (norm1): BatchNorm2d(608, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,216 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(608, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 77,824 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 116,160 params
      (denselayer5): _DenseLayer(
        (norm1): BatchNorm2d(640, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,280 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(640, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 81,920 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 120,320 params
      (denselayer6): _DenseLayer(
        (norm1): BatchNorm2d(672, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,344 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(672, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 86,016 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 124,480 params
      (denselayer7): _DenseLayer(
        (norm1): BatchNorm2d(704, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,408 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(704, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 90,112 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 128,640 params
      (denselayer8): _DenseLayer(
        (norm1): BatchNorm2d(736, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,472 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(736, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 94,208 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 132,800 params
      (denselayer9): _DenseLayer(
        (norm1): BatchNorm2d(768, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,536 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(768, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 98,304 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 136,960 params
      (denselayer10): _DenseLayer(
        (norm1): BatchNorm2d(800, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,600 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(800, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 102,400 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 141,120 params
      (denselayer11): _DenseLayer(
        (norm1): BatchNorm2d(832, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,664 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(832, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 106,496 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 145,280 params
      (denselayer12): _DenseLayer(
        (norm1): BatchNorm2d(864, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,728 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(864, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 110,592 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 149,440 params
      (denselayer13): _DenseLayer(
        (norm1): BatchNorm2d(896, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,792 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(896, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 114,688 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 153,600 params
      (denselayer14): _DenseLayer(
        (norm1): BatchNorm2d(928, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,856 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(928, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 118,784 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 157,760 params
      (denselayer15): _DenseLayer(
        (norm1): BatchNorm2d(960, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,920 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(960, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 122,880 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 161,920 params
      (denselayer16): _DenseLayer(
        (norm1): BatchNorm2d(992, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 1,984 params
        (relu1): ReLU(inplace=True), 0 params
        (conv1): Conv2d(992, 128, kernel_size=(1, 1), stride=(1, 1), bias=False), 126,976 params
        (norm2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 256 params
        (relu2): ReLU(inplace=True), 0 params
        (conv2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), 36,864 params
      ), 166,080 params
    ), 2,158,080 params
    (norm5): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True), 2,048 params
  ), 6,953,856 params
  (classifier): Sequential(
    (0): Linear(in_features=512, out_features=128, bias=True), 65,664 params
    (1): ReLU(), 0 params
    (2): Dropout(p=0.2, inplace=False), 0 params
    (3): Linear(in_features=128, out_features=1, bias=True), 129 params
    (4): Sigmoid(), 0 params
  ), 65,793 params
  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1)), 0 params
), 7,019,649 params
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-59-6b3cd4462a8b> in <module>
     23 
     24 model, criterion, optimizer = get_model()
---> 25 summary(model, torch.ones((1,3,IMAGE_SIZE,IMAGE_SIZE)).to(device), show_input=True, show_hierarchical=True)

/opt/conda/lib/python3.6/site-packages/modelsummary/modelsummary.py in summary(model, batch_size, show_input, show_hierarchical, *inputs)
     68     # register hook
     69     model.apply(register_hook)
---> 70     model(*inputs)
     71 
     72     # remove these hooks

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    530             result = self._slow_forward(*input, **kwargs)
    531         else:
--> 532             result = self.forward(*input, **kwargs)
    533         for hook in self._forward_hooks.values():
    534             hook_result = hook(self, input, result)

/opt/conda/lib/python3.6/site-packages/torchvision/models/densenet.py in forward(self, x)
    192 
    193     def forward(self, x):
--> 194         features = self.features(x)
    195         out = F.relu(features, inplace=True)
    196         out = F.adaptive_avg_pool2d(out, (1, 1))

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    530             result = self._slow_forward(*input, **kwargs)
    531         else:
--> 532             result = self.forward(*input, **kwargs)
    533         for hook in self._forward_hooks.values():
    534             hook_result = hook(self, input, result)

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/container.py in forward(self, input)
     98     def forward(self, input):
     99         for module in self:
--> 100             input = module(input)
    101         return input
    102 

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    530             result = self._slow_forward(*input, **kwargs)
    531         else:
--> 532             result = self.forward(*input, **kwargs)
    533         for hook in self._forward_hooks.values():
    534             hook_result = hook(self, input, result)

/opt/conda/lib/python3.6/site-packages/torchvision/models/densenet.py in forward(self, init_features)
    109         features = [init_features]
    110         for name, layer in self.items():
--> 111             new_features = layer(features)
    112             features.append(new_features)
    113         return torch.cat(features, 1)

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    522     def __call__(self, *input, **kwargs):
    523         for hook in self._forward_pre_hooks.values():
--> 524             result = hook(self, input)
    525             if result is not None:
    526                 if not isinstance(result, tuple):

/opt/conda/lib/python3.6/site-packages/modelsummary/modelsummary.py in hook(module, input, output)
     28 
     29             if len(input) != 0 :
---> 30                 summary[m_key]["input_shape"] = list(input[0].size())
     31                 summary[m_key]["input_shape"][0] = batch_size
     32             else:

AttributeError: 'list' object has no attribute 'size'

sizhky avatar Mar 08 '20 11:03 sizhky