Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python VGG16在Pytorch上的实现_Python_Deep Learning_Computer Vision_Conv Neural Network_Pytorch - Fatal编程技术网

Python VGG16在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.

我在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.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])