我有17个类的图像数据集。有些班级的大小有很大的不同。一个类中的图像平均为25x200,另一个类中的图像平均为25x25。我的想法是将预训练的resnet18的输出和原始图像的大小联系起来,因为我认为这是一个有价值的分类信息。
更具体地说-我想使用resnet18,但最后一层是(fc):线性(in_features=512, out_features=17, bias=True)我还想添加图像。形状可能对更好的分类很重要。
这是这种问题的合理解决方案,是否有办法在PyTorch中实现?
我猜你想使用自适应池层产生的嵌入来固定输出大小。首先你需要去掉最后一个线性图层(见这篇文章):
model = models.resnet152(pretrained=True)
newmodel = torch.nn.Sequential(*(list(model.children())[:-1]))
然后你可以得到嵌入并使用pytorch。Cat用于连接:
out = model(X)
emb = torch.cat([out, X.shape])