前提・実現したいこと
学習データを元に画像判別をしたいですが、np.saveをした後にコンパイル用プログラムでnpyを読み込み、念の為
python
1print(X_train.shape) 2print(y_train.shape) 3print(X_test.shape) 4print(y_test.shape)
をしてみると
python
1(0,) 2(0,) 3(0,) 4(0,)
となってしまいます。
正しく学習できてないようなので治したいです
該当のソースコード
python
1from PIL import Image 2import os, glob 3import numpy as np 4import random, math 5 6#学習用画像が保存されているディレクトリ 7train_dir = "E:\python\monster_py\monster_py" 8 9#テスト用画像が保存されているディレクトリ 10test_dir = "E:\python\dis_download" 11 12# モンスターの種類 13categories = ["モンスターエナジー","モンスターエナジーパイプラインパンチ", 14"モンスターキューバリブレ","モンスターエナジーアブソリュートリーゼロ" 15,"モンスターエナジーカオス","モンスターエナジーウルトラパラダイス" 16,"モンスターエナジーウルトラ"] 17# 画像データ用配列 18X = [] 19# ラベルデータ用配列 20Y = [] 21 22#画像データごとにadd_sample()を呼び出し、X,Yの配列を返す関数 23def make_sample(files): 24 global X, Y 25 X = [] 26 Y = [] 27 for cat, fname in files: 28 add_sample(cat, fname) 29 return np.array(X), np.array(Y) 30 31def add_sample(cat, fname): 32 img = Image.open(fname) 33 img = img.convert("RGB") 34 img = img.resize((150,150)) 35 data = np.asarray(img) 36 X.append(data) 37 Y.append(cat) 38 39#学習用画像 40trainfiles = [] 41#テスト用画像 42testfiles = [] 43 44for idx, cat in enumerate(categories): 45 image_dir = train_dir + "\" + cat 46 files = glob.glob(image_dir + "\*.jpg") 47 for f in files: 48 trainfiles.append((idx, f)) 49 50for idx, cat in enumerate(categories): 51 image_dir = test_dir + "\" + cat 52 files = glob.glob(image_dir + "\*.jpg") 53 for f in files: 54 testfiles.append((idx, f)) 55 56X_train, y_train = make_sample(trainfiles) 57X_test, y_test = make_sample(testfiles) 58xy = (X_train, X_test, y_train, y_test) 59#データを保存する 60np.save("E:\python\monster_data.npy", xy)
###参考
https://qiita.com/kojikoji_ksnv/items/12dfe9075cb1dd3afe59
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/06 05:57
2021/01/06 07:50