表題の件で質問させてください。
画像データを用いた分類問題の学習をしております。
使用しているフレームワークはkerasです。
以下のリンクを参考にさせていただいています。
Kerasを使って2クラス分類のCNN
その中で以下のコードの部分で訓練データ、検証データの読み込みやサイズ変更を行っていると思うのですが、
class_mode='binary' というパラメータには2値のラベルが必要とあります。
python
1from tensorflow.python.keras.preprocessing.image import ImageDataGenerator 2 3# すべての画像を1/255でスケーリング 4train_datagen = ImageDataGenerator(rescale=1./255) 5test_datagen = ImageDataGenerator(rescale=1./255) 6 7# ImageDataGeneratorを使ってディレクトリから画像を読み込む 8train_generator = train_datagen.flow_from_directory( 9 train_dir, # ターゲットディレクトリ 10 target_size=(120, 40), # すべての画像サイズを120*40に変更 11 color_mode='grayscale', # ここを追加 12 batch_size=20, # バッチサイズ 13 class_mode='binary') # binary_crossentropyを使用するため2値のラベルが必要 14validation_generator = test_datagen.flow_from_directory( 15 validation_dir, 16 target_size=(120, 40), 17 color_mode='grayscale', 18 batch_size=20, 19 class_mode='binary')
記事に掲載されているコードがすべてではないのかもしれませんが、
良品、不良品の画像データが混じったtrain_dirからデータを読み込んでいるなかで、
この画像は良品、この画像は不良といった正解ラベルのデータがないように思います。
知識も浅くkeras自体も初めて触るのでわかっていないだけかもしれませんが、画像データに対する正解データの
作成の仕方、また利用方法はどのようにすればよいのでしょうか?
今回のような2値分類であれば0、1で正解は表現できると思うのですが画像を読み込む際に、この画像は0、この画像は1というように割り振るのでしょうか?(これはやり方が想像つきません...)
それとも良品、不良品のデータ数分だけ0の配列、1の配列を作るのでしょうか?(良品、不良品が混じったフォルダからデータを読み出す場合は配列のデータと画像データの紐づけが分かりません...)
かなり的外れな質問をしているかもしれませんがアドバイス宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/26 14:57 編集
2019/02/26 15:04 編集
2019/02/26 15:26
2019/02/26 15:44 編集
2019/02/26 15:44
2019/02/28 02:11