アプリ版:「スタンプのみでお礼する」機能のリリースについて

ColabでPytorchを使っているのですが、以下を実行すると、
#ここから、
import torch
import torch.nn as nn
import torch.optim as optim
from torch.optim import lr_scheduler
import torchvision
from torchvision import datasets, transforms
from torchvision import models
import numpy as np
import matplotlib.pyplot as plt
import os
import copy
device = torch.device("cuda:0"
if torch.cuda.is_available() else "cpu")
print(device)

data_dir = 'data' # データフォルダー
rgb_mean = np.array([0.485, 0.456, 0.406])
rgb_std = np.array([0.229, 0.224, 0.225])
# 画像の変換方法を設定
img_trans = {
'train': transforms.Compose([
transforms.RandomResizedCrop(224,
scale=(0.7, 1.0)), # 一部切り出し
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(rgb_mean, rgb_std)
]),
'val': transforms.Compose([
transforms.Resize(224),
transforms.ToTensor(),
transforms.Normalize(rgb_mean, rgb_std)
]),
}
# データセットのフォルダーを指定
imagesets = {x: datasets.ImageFolder(
os.path.join(data_dir, x), img_trans[x])
for x in ['train', 'val']}
dataset_sizes = {x: len(imagesets[x])
for x in ['train', 'val']}
cls_names = imagesets['train'].classes
n_cls = len(cls_names) # クラス数
# データの読み込みに関する設定
loaders = {x: torch.utils.data.DataLoader(
imagesets[x], batch_size=4,
shuffle=True, num_workers=4)
for x in ['train', 'val']}
#ここまで

下記のようなエラーが出ます。
Pytorchに詳しいい方、何かアドバスをいただければ助かります。

FileNotFoundError Traceback (most recent call last)
<ipython-input-5-1d25532c2562> in <module>
20 imagesets = {x: datasets.ImageFolder(
21 os.path.join(data_dir, x), img_trans[x])
---> 22 for x in ['train', 'val']}
23 dataset_sizes = {x: len(imagesets[x])
24 for x in ['train', 'val']}

4 frames
/usr/local/lib/python3.7/dist-packages/torchvision/datasets/folder.py in find_classes(directory)
41 classes = sorted(entry.name for entry in os.scandir(directory) if entry.is_dir())
42 if not classes:
---> 43 raise FileNotFoundError(f"Couldn't find any class folder in {directory}.")
44
45 class_to_idx = {cls_name: i for i, cls_name in enumerate(classes)}

FileNotFoundError: Couldn't find any class folder in data/train.

質問者からの補足コメント

  • 前のエラーは解決したのですが、
    FileNotFoundError Traceback (most recent call last)
    <ipython-input-12-6ab37d3e64c8> in <module>
    20 imagesets = {x: datasets.ImageFolder(
    21 os.path.join(data_dir, x), img_trans[x])
    ---> 22 for x in ['train', 'val']}
    23 dataset_sizes = {x: len(imagesets[x])
    24 for x in ['train', 'val']}

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/11/20 13:16
  • /usr/local/lib/python3.7/dist-packages/torchvision/datasets/folder.py in make_dataset(directory, class_to_idx, extensions, is_valid_file)
    101 if extensions is not None:
    102 msg += f"Supported extensions are: {extensions if isinstance(extensions, str) else ', '.join(extensions)}"
    --> 103 raise FileNotFoundError(msg)
    104
    105 return instances

      補足日時:2022/11/20 13:18
  • FileNotFoundError: Found no valid file for the classes .ipynb_checkpoints. Supported extensions are: .jpg, .jpeg, .png, .ppm, .bmp, .pgm, .tif, .tiff, .webp

    みたいなエラーがまだ出ます。WorkDir/data/train/catやWorkDir/data/train/dogの下には*.jpgファイルが置いてあるのですが、それが何故か認識されないようです。ディレクトリやファイルのパーミションは正しく設定されています。Pytorchの.jpynb_checkpointsというフォルダができているのですが、それに関係しているような気もしますが、使い方がよく分かりません。

      補足日時:2022/11/20 13:28

A 回答 (1件)

>data_dir = 'data' # データフォルダー


ここが読み取れてないだけでは。
ワーキングディレクトリとかパーミッションとか確認してみては。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!