如何使用 Resnet 架构对自定义标记的图像集进行分类?

How can I use the Resnet architecture to classify a custom labeled set of images?

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

我开始尝试使用它。 PyTorch transfer learning with pre-trained ImageNet model

# 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,指定为 training/test,等等)。如果您能向我指出任何帮助或教程,我们将不胜感激。

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

from collections import OrderedDict 

那就可以了。

有关详细信息,请访问 Link