Pytorch:将VGG模型转换为顺序模型,但获得不同的输出

FisNaN

背景:我正在研究一种对抗检测器方法,该方法需要访问每个隐藏层的输出。我从加载了预训练的VGG16 torchvision.models

要访问每个隐藏层的输出,我将其放入顺序模型中:

vgg16 = models.vgg16(pretrained=True)

vgg16_seq = nn.Sequential(*(
    list(list(vgg16.children())[0]) + 
    [nn.AdaptiveAvgPool2d((7, 7)), nn.Flatten()] + 
    list(list(vgg16.children())[2])))

如果没有nn.Flatten(),前向方法将抱怨mat1之间的尺寸不匹配mat2

我研究了torchvision VGG的实现,它使用了[feature..., AvgPool, flatten, classifier...]结构。由于AdaptiveAvgPool2dlayer和Flattenlayer没有参数,因此我认为这应该起作用,但是我有不同的输出。

output1 = vgg16(X_small)
print(output1.size())
output2 = vgg16_seq(X_small)
print(output2.size())
torch.equal(output1, output2)

问题:它们的尺寸相同,但输出却不同。

torch.Size([32,1000])
torch.Size([32,1000])
错误

我在AdaptiveAvgPool2d 之后测试了输出,输出相等:

output1 = nn.Sequential(*list(vgg16.children())[:2])(X_small)
print(output1.size())
output2 = nn.Sequential(*list(vgg16_seq)[:32])(X_small)
print(output2.size())
torch.equal(output1, output2)

torch.Size([32,512,7,7])
torch.Size([32,512,7,7])
True

有人可以指出出了什么问题吗?谢谢

哈西特

您需要在进行推断之前调用评估模式。

vgg16.eval()
vgg16_seq.eval()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

骨干:将模型转换为不同模型类的最佳方法

来自分类Dev

骨干:将模型转换为不同模型类的最佳方法

来自分类Dev

将keras顺序模型转换为张量rt

来自分类Dev

将Jags模型转换为stan模型

来自分类Dev

将模型转换为其基本模型

来自分类Dev

使用onnx,如何将pytorch模型手动转换为张量流模型?

来自分类Dev

将模型转换为ViewModel

来自分类Dev

pytorch转换为Onnx(OCR模型)

来自分类Dev

从顺序API转换为功能API模型

来自分类Dev

如何获得不同的输出?

来自分类Dev

从Pytorch模型输出权重

来自分类Dev

OpenCL数学OpenCL的新功能,尝试将八度转换为OpenCL或C获得不同的结果

来自分类Dev

C ++:将int * / float *转换为char *,为什么使用reinterpret_cast获得不同的结果?

来自分类Dev

pytorch,标准层将顺序输出转换为二进制?

来自分类Dev

将pytorch模型转换为nn.Module以导出到Lens Studio的onnx

来自分类Dev

如何将tensorflow.js模型权重转换为pytorch张量并返回?

来自分类Dev

GAE:将模型转换为多模型的子类

来自分类Dev

CoreML模型:将imageType模型输入转换为multiArray

来自分类Dev

我可以将模型数组转换为模型集合吗?

来自分类Dev

将LLBLGen模型类转换为View模型对象?

来自分类Dev

DBFlow(无法将模型强制转换为模型)

来自分类Dev

将Django模型转换为普通对象

来自分类Dev

将视图模型数据转换为json

来自分类Dev

将语言文本转换为模型

来自分类Dev

将HTK模型转换为Pocketsphinx

来自分类Dev

django将模型实例转换为dict

来自分类Dev

将Keras模型转换为C ++

来自分类Dev

将字典转换为对象模型

来自分类Dev

将tflearn模型转换为keras

Related 相关文章

热门标签

归档