Differences in the Inception v3 code in the pytorch library and the paper

Hi,
As i was reading up the papers for the Inception v3, a couple of things stood out for me.

  1. In the original paper, the authors discussed on how replacing the 5x5 convolution with 2 3x3 convolution reduced the computational overload. But the implementations across pytorch and even tensorflow dont show such implementation. Instead they replace the 3x3 convolution with a 5x5 convolution. Is this a miss?
    https://github.com/pytorch/vision/blob/1f8f7ea71c8807408a7860b8ae9ca63177975b64/torchvision/models/inception.py#L130-L159

  2. The inception network structure is also very different than the one outlined in the paper.
    https://github.com/pytorch/vision/blob/1f8f7ea71c8807408a7860b8ae9ca63177975b64/torchvision/models/inception.py#L44-L56

Am i missing a key paper or a finding that I could have overlooked?

1 Like

I don’t know about Inception specifically, but it’s very common to have discrepancies between the article and its code.

1 Like

Has anyone had success in creating a Learner and printing learn.summary() from torchvision.models.inception_v3?

Yes, using following:

model = torchvision.models.inception_v3(pretrained=True)
model.fc = nn.Linear(in_features=2048, out_features=data.c) # replace fc layer
learner = Learner(data, model, model_dir=".")
learner.summary()

But I still have problem if I do learner.lr_find() with following error:

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/conv.py in forward(self, input)
318 def forward(self, input):
319 return F.conv2d(input, self.weight, self.bias, self.stride,
–> 320 self.padding, self.dilation, self.groups)
321
322

RuntimeError: cuDNN error: CUDNN_STATUS_BAD_PARAM