Deep learning 获取inceptionV3的输入维度不匹配的运行时错误

Deep learning 获取inceptionV3的输入维度不匹配的运行时错误,deep-learning,pytorch,pre-trained-model,Deep Learning,Pytorch,Pre Trained Model,我改变了很多方面。但对我来说,一点变化都不起作用。这是我的密码 #transform for inceptionV3 train_transform = transforms.Compose([ transforms.Resize((299, 299)), transforms.RandomHorizontalFlip(), transforms.ToTensor(),

我改变了很多方面。但对我来说,一点变化都不起作用。这是我的密码

#transform for inceptionV3  


train_transform = transforms.Compose([
                    transforms.Resize((299, 299)),
                    transforms.RandomHorizontalFlip(),
                    transforms.ToTensor(), 
                    transforms.Normalize(mean=[0.485, 0.456, 0.406],
                                     std=[0.229, 0.224, 0.225])])

val_transform = transforms.Compose([
                transforms.Resize((299, 299)),
                transforms.ToTensor(), 
                transforms.Normalize(mean=[0.485, 0.456, 0.406],
                                 std=[0.229, 0.224, 0.225])])
vocab = dataloader.get_vocab(dataset=args.dataset)()
# Data loader and validation split
#num_workers will be 4, I have used 0 for chittron
data_loader = dataloader.get_data_loader(dataset=args.dataset)(mode="train",
                                                               transform=train_transform,
                                                               vocab=vocab,
                                                               batch_size=args.batch_size,
                                                               shuffle=True,
                                                               num_workers=4, 
                                                               data_dir=args.data_dir)

valid_data_loader = dataloader.get_data_loader(dataset=args.dataset)(mode="val",
                                                                    transform=val_transform,
                                                                     vocab=vocab,
                                                                 batch_size=args.batch_size,
                                                                     shuffle=False,
                                                                     num_workers=4, 
                                                                     data_dir=args.data_dir)



 
主要代码是:

inception_v3 = getattr(models, dictionary['cnn_model'])(pretrained=True)
 # remove the last fc layer
self.inception_v3 = nn.Sequential(*list(inception_v3.children())[:-1])

for param in self.inception_v3.parameters():
     param.requires_grad = False
self.encoder_linear = nn.Linear(inception_v3.fc.in_features, dictionary['embed_size'])
self.bn = nn.BatchNorm1d(dictionary['embed_size'])

self.embedding = nn.Embedding(dictionary['vocab_size'], dictionary['embed_size'])
self.rnn = getattr(nn, dictionary['rnn_model'])(dictionary['embed_size'], dictionary['hidden_size'], dictionary['num_layers'], batch_first=True)
self.dropout = nn.Dropout(dictionary['dropout'])
self.decoder_linear = nn.Linear(dictionary['hidden_size'], dictionary['vocab_size'])

self.init_weights()
我得到了这个错误

self.padding、self.dilation、self.groups)运行时错误:应为 四维输入为四维权重192 768 1 1,但得到 而是尺寸为[8,1000]的二维输入


不知道该怎么办。我的代码可以吗?

错误是由于模型的输入层和数据形状不匹配。您使用的是什么数据?我假设图像是因为您使用的是Inception模型,但您的错误表明它是秩2的张量。@yuRa是的,我使用的是flickr8k数据集。我已经在使用ResNet和Vgg16,它们工作得非常好。但是《盗梦空间》对我不起作用。