質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

Pytorchの shape '[-1, 400]' is invalid for input of size 179776のエラーを修正したい

nortordam
nortordam

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1回答

0評価

0クリップ

151閲覧

投稿2018/12/25 09:50

pytorchで画像分類をするために下記のURLをもとに自分のローカルデータをImageFolderにいれつつ,改変したのですがタイトルのエラー「shape '[-1, 400]' is invalid for input of size 179776」が表示され原因がわかりません.
おそらくニューラルネットワークのCNNのチャンネル数が問題だとは思うのですがどう修正すればいいかわからないため質問しました,

https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html

該当ソースコード

import torch import torchvision import torchvision.transforms as transforms import matplotlib.pyplot as plt import numpy as np import torch.nn as nn import torch.nn.functional as F import torch.optim as optim transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) data_transform = transforms.Compose([ transforms.RandomResizedCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), #transforms.Normalize(mean=[0.485, 0.456, 0.406], # std=[0.229, 0.224, 0.225]) transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) ] ) #rootはローカルのアドレスがあると考えてください trainset = torchvision.datasets.ImageFolder(root='4', transform=data_transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=False, num_workers=2) testset = torchvision.datasets.ImageFolder(root='4', transform=data_transform) testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2) classes = ('1', '2', '3', '4', '5', '6', '7', '8', '9') 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() 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 # 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.item() if i % 2000 == 1999: # print every 2000 mini-batches print('[%d, %5d] loss: %.3f' % (epoch + 1, i + 1, running_loss / 2000)) running_loss = 0.0 print('Finished Training')

エラーコード

--------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) <ipython-input-11-fe85c778b0e6> in <module>() 10 11 # forward + backward + optimize ---> 12 outputs = net(inputs) 13 loss = criterion(outputs, labels) 14 loss.backward() ~/anaconda3/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs) 487 result = self._slow_forward(*input, **kwargs) 488 else: --> 489 result = self.forward(*input, **kwargs) 490 for hook in self._forward_hooks.values(): 491 hook_result = hook(self, input, result) <ipython-input-8-8a32bf6021ce> in forward(self, x) 14 x = self.pool(F.relu(self.conv1(x))) 15 x = self.pool(F.relu(self.conv2(x))) ---> 16 x = x.view(-1, 16 * 5 * 5) 17 x = F.relu(self.fc1(x)) 18 x = F.relu(self.fc2(x)) RuntimeError: shape '[-1, 400]' is invalid for input of size 179776 dataiter = iter(testloader) images, la

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。