2017-12-28 30 views
0

誰でもこのエラーの修正方法を教えてもらえますか?Pytorchでこのエラーが表示される "RuntimeError:無効な引数2:サイズ '[-1 x 400]"

RuntimeError: invalid argument 2: size '[-1 x 400]' is invalid for input of with 1597248 elements at /Users/soumith/miniconda2/conda-bld/pytorch_1503975723910/work/torch/lib/TH/THStorage.c:37

class Net(nn.Module): 
    def __init__(self): 
     super(Net, self).__init__() 
     self.conv1 = nn.Conv2d(3, 6, 5) 
     self.pool = nn.MaxPool2d(2, 2) 
     self.conv2 = nn.Conv2d(6, 16, 5) 
     self.fc1 = nn.Linear(16 * 5 * 5, 120) 
     self.fc2 = nn.Linear(120, 84) 
     self.fc3 = nn.Linear(84, 10) 

    def forward(self, x): 
     x = self.pool(F.relu(self.conv1(x))) 
     x = self.pool(F.relu(self.conv2(x))) 
     x = x.view(-1, 16 * 5 * 5) 
     x = F.relu(self.fc1(x)) 
     x = F.relu(self.fc2(x)) 
     x = self.fc3(x) 
     return x 


net = Net() 

import torch.optim as optim 

criterion = nn.CrossEntropyLoss() 
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9) 
for epoch in range(2): # loop over the dataset multiple times 

    running_loss = 0.0 
    for i, data in enumerate(trainloader, 0): 
     # get the inputs 
     inputs, labels = data 

     # wrap them in Variable 
     inputs, labels = Variable(inputs), Variable(labels) 

     # zero the parameter gradients 
     optimizer.zero_grad() 

     # forward + backward + optimize 
     outputs = net(inputs) 
     loss = criterion(outputs, labels) 
     loss.backward() 
     optimizer.step() 

     # print statistics 
     running_loss += loss.data[0] 
     if i % 5 == 4: # print every 2000 mini-batches 
      print('[%d, %5d] loss: %.3f' % 
        (epoch + 1, i + 1, running_loss/5)) 
      running_loss = 0.0 

print('Finished Training') 
+0

このエラーメッセージは、表示されたコードのどの行が実行されたかを示しますか? – usr2564301

+0

エラーメッセージ全体を投稿できますか? – blitu12345

答えて

0

Iは、画像サイズを拡大縮小すると、エラーが発生して停止しました。

transform = transforms.Compose(
        [transforms.Scale((32,32)), 
        transforms.ToTensor(), 
        transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) 
0

問題は、画像のサイズが32 * 32ではないことです。 これを解決するには、ネットの入力サイズに応じて入力サイズself.fc1を計算する必要があります。

関連する問題