前提・実現したいこと
はじめまして。pythonのpytorchにて道路標識の判別をするモデルを機械学習にて実装したいと考えています。データセットはppm形式のものをnumpy配列に変換し、以下のソースコードはそこからtensorの形へ変換させているところです。tensorの中身の画像を表示させたいと思ったのですが以下のエラーコードが発生しました。
発生している問題・エラーメッセージ
Invalid shape (6502, 42, 50) for image data
該当のソースコード
python
1def dataset(n): 2 x = X_train 3 y = y_train 4 x = torch.FloatTensor(x) 5 y = torch.FloatTensor(y) 6 return torch.utils.data.TensorDataset(x, y) 7data_number = 10000 #準備するデータの数 8batch_size = 1000 # 1つのミニバッチのデータの数 9data_loader = torch.utils.data.DataLoader(dataset(data_number), batch_size=batch_size,shuffle=True,num_workers=2) 10def imshow(img): 11 img = img / 2 + 0.5 # 正規化を戻す 12 npimg = img.numpy() 13 plt.imshow(np.transpose(npimg, (1, 2, 0))) 14 plt.show() 15 16 17# 適当な訓練セットの画像を取得 18dataiter = iter(data_loader) 19images, labels = dataiter.next() 20 21# 画像の表示 22imshow(torchvision.utils.make_grid(images)) 23# ラベルの表示 24print(' '.join('%5s' % classes[labels[j]] for j in range(4))) 25
試したこと
tensorの配列へ変換する際に標準化する必要があるのではないかと思いtorchvision.transforms.ToTensor()なども試してみたのですがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
環境はjupyter notebook,windows10,python=3.8です。
回答1件
あなたの回答
tips
プレビュー