1

我正在尝试在 resnet 152 上使用迁移学习来将自定义标记为 0/1 的图像数据集分类为是否包含感兴趣的对象。我参考了多个教程,但无法弄清楚。我将在下面放置一些我之前引用过的链接,但我尝试使用的第一个代码。

我开始尝试使用它。 使用预训练 ImageNet 模型的 PyTorch 迁移学习

# Load the pretrained model
model = models.resnet152(pretrained=True)

classifier_name, old_classifier = model._modules.popitem()

for param in model.parameters():
    param.requires_grad = False

classifier_input_size = old_classifier.in_features

classifier = nn.Sequential(OrderedDict([
                           ('fc1', nn.Linear(classifier_input_size, hidden_layer_size)),
                           ('activation', nn.SELU()),
                           ('dropout', nn.Dropout(p=0.5)),
                           ('fc2', nn.Linear(hidden_layer_size, output_layer_size)),
                           ('output', nn.LogSoftmax(dim=1))
                           ]))

但我得到 NameError,“OrderedDict”没有定义。我想了解我在分类器步骤中做错了什么。在那之后,我仍然在努力理解如何在我自己的图像数据集上使用这个新模型和分类器(应该如何输入图像,指定为 0/1,指定为训练/测试等)。您可以指出我的任何帮助或教程将不胜感激。

4

1 回答 1

0

您需要使用以下命令导入 OrderedDict

from collections import OrderedDict 

那么它将起作用。

欲了解更多信息,请访问链接

于 2020-09-15T10:53:37.393 回答