画像認識プログラミングレシピという本を用いて犬と猫の認識をする学習しています。
本書では以下のリンクから犬と猫の学習データ、検証データ、テストデータが保存されているzipをダウンロードできるとありました。
https://www.kaggle.com/c/dogs-vs-cats/data
解凍後は以下のようになっていると書かれておりました。
学習データ
dogscats/train/dogs/dog.XXX.jpg
dogscats/train/cats/cat.XXX.jpg
検証データ
dogscats/valid/dogs/dog.XXX.jpg
dogscats/vaelid/cats/cat.XXX.jpg
テストデータ
dogscats/test/dogs/dog.XXX.jpg
dogscats/test/cats/cat.XXX.jpg
しかし実際は
dogsとcatsに分かれていないtrainフォルダ
dogscats/train/dog.XXX.jpg
dogscats/train/cat.XXX.jpg
犬と猫が混同しているtestフォルダ
dogscats/test1/XXX.jpg
この2つのフォルダしかありませんでした。
この後画像と教師ラベルを紐づけるのですが、catsフォルダ内の画像を0、dogsフォルダ内の画像を1というラベルをつけるようです。しかし実際のフォルダが違うので困っています。
python
1import os 2 3#学習データと検証データを分ける 4cats_images_train_path = "dogscats/train/cats/" 5dogs_images_train_path = "dogscats/train/dogs/" 6cats_images_valid_path = "dogscats/valid/cats/" 7dogs_images_valid_path = "dogscats/valid/dogs/" 8 9images_and_teacher_label_list = [] 10 11 12def get_image_teacher_label_list(dir, label): 13 filepath_list = [] 14 files = os.listdir(dir) 15 for file in files: 16 filepath_list.append((dir + file, label)) 17 return filepath_list 18 19#学習データと検証データをリストにする 20 21#学習データ猫の画像フォルダ。ラベルは0:猫 22image_and_teacher_label_list.extend(get_image_teacher_label_list(cats_images_train_path, 0) 23 24#学習データ犬の画像フォルダ。ラベルは0:犬 25image_and_teacher_label_list.extend(get_image_teacher_label_list(dogs_images_train_path, 1) 26 27#検証データ猫の画像フォルダ。ラベルは0:猫 28image_and_teacher_label_list.extend(get_image_teacher_label_list(cats_images_valid_path, 0) 29 30#検証データ犬の画像フォルダ。ラベルは1:犬 31image_and_teacher_label_list.extend(get_image_teacher_label_list(dogs_images_valid_path, 1) 32
trainフォルダの方は最悪犬と猫の画像をdogsとcatsフォルダに入れればいいと思うのですが、validフォルダがないのとtestデータの画像名にdogとcatがついていないことの対処法がわかりません。
本のようにラベルをつける、またはほんと違う方法でラベルをつけるやり方がありましたら教えていただきたいです。
正誤表などを見ましたがそのような情報はありませんでした。
https://github.com/Kokensha/book-ml
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。