1

所以,我一直在研究 Pytorch 中的神经风格迁移,但我被困在我们必须通过有限数量的层运行输入图像并最大限度地减少风格损失的地步。长话短说,我想在 Pytorch 中找到一种方法来评估架构不同层的输入(我使用的是 vgg16)。我已经看到这个问题在 keras 中非常简单地解决了,但我想看看 pytorch 中是否也有类似的方法。

from keras.applications.vgg16 import VGG16

model = VGG16()
model = Model(inputs=model.inputs, outputs=model.layers[1].output)
4

2 回答 2

1

当然你可以这样做:

import torch
import torchvision

pretrained = torchvision.models.vgg16(pretrained=True)
features = pretrained.features

# First 4 layers
model = torch.nn.Sequential(*[features[i] for i in range(4)])

您可以随时print查看模型并查看其结构。如果是torch.nn.Sequential(或部分是,如上所述),您始终可以使用这种方法。

于 2021-02-04T18:50:11.827 回答
0

请查看以下线程:

https://discuss.pytorch.org/t/how-can-i-extract-intermediate-layer-output-from-loaded-cnn-model/77301

https://discuss.pytorch.org/t/how-can-l-load-my-best-model-as-a-feature-extractor-evaluator/17254/6

如那里所述,您可以修改 forward 方法以返回您想要获得其输出的任何层,或者您也可以为这些层创建一个挂钩。

于 2021-02-04T18:54:36.283 回答