Python VGG16在Pytorch上的实现
我在PyTorch上的代码实现片段是:Python VGG16在Pytorch上的实现,python,deep-learning,computer-vision,conv-neural-network,pytorch,Python,Deep Learning,Computer Vision,Conv Neural Network,Pytorch,我在PyTorch上的代码实现片段是: model = models.vgg16(pretrained = False) classifier = nn.Sequential( nn.Linear(25088, 128), nn.ReLU(True), nn.Dropout(), nn.Linear(128, 128), nn.ReLU(True), nn.Dropout(), nn.
model = models.vgg16(pretrained = False)
classifier = nn.Sequential(
nn.Linear(25088, 128),
nn.ReLU(True),
nn.Dropout(),
nn.Linear(128, 128),
nn.ReLU(True),
nn.Dropout(),
nn.Linear(128, 20)
)
model.classifier = classifier
我正在传送输入大小(60x60x3)和批大小=30的图像
当我从Linux(Ubuntu)终端(PyTorch版本:1.0.0,Torchvision版本:0.2.1)运行代码时,它会给出以下错误消息:
运行时错误:大小不匹配,m1:[30 x 512],m2:[25088 x 128]
然而,当我在Windows(PyTorch版本:1.0.1,Torchvision版本:0.2.2)上从Spyder(Anaconda)运行它时,它运行得非常完美
是我遗漏了什么,还是因为Pytorch和Torchvision的版本不匹配?两者都是,我运行的是Python 3.6。
请建议
[更新:错误地交换了错误案例和无错误案例的版本号。感谢@Manoj Mohan指出这一点]可能是另一种情况。在torchvision 0.2.2上运行良好,但在torch vision 0.2.1上运行失败 使用0.2.2版本中的AdaptiveAvgPool2d的这一变化就是您没有看到错误的原因 运行时错误:大小不匹配,m1:[1 x 512],m2:[25088 x 4096]at/pytorch/aten/src/TH/generic/THTensorMath.cpp:940 您可以看到大小不匹配的错误。在自适应平均池之后,一切正常
>>> import torch.nn.functional as F
>>> avg = F.adaptive_avg_pool2d(feat, (7,7))
>>> avg = avg.view(avg.size(0), -1)
>>> output = model.classifier(avg)
>>> output.shape
torch.Size([1, 1000])
是的…对不起,我刚刚检查过…我在写的时候错误地交换了版本号。。。谢谢你的回答:)
>>> import torch.nn.functional as F
>>> avg = F.adaptive_avg_pool2d(feat, (7,7))
>>> avg = avg.view(avg.size(0), -1)
>>> output = model.classifier(avg)
>>> output.shape
torch.Size([1, 1000])