2017-11-28 14 views
0

データ入力として2つのnumpy配列(X_train、y_true)を持つコードを実行しています。私はImageDataGeneratorのデータ拡大が気に入っています。ImageDataGenerator.flow_from_directoryを使用すると、実際のラベルを取得する方法

これを使用して対応するnumpy配列を取得できますか?ここで

いくつかのコードです:

train_data_dir="Path to directory containing for each class a directory of images" 

from keras.preprocessing.image import ImageDataGenerator 
datagen = ImageDataGenerator(rescale=1./255, 
         horizontal_flip=True, 
         rotation_range=360) 
generator = datagen.flow_from_directory(
     train_data_dir, 
     target_size=(img_width, img_height), 
     batch_size=22, 
     class_mode=None, 
     shuffle=True) 

x=generator.next() 

は今、両方の私のクラスの画像を含む、np.arrayをxは。ラベルを持つ対応する配列をどこかに見つけることはできますか?

答えて

0

非常に簡単です。発電機は、出力xとyの両方必要があります。

x, y = generator.next() 

あなたのpythonに応じて、別のオプション:かかわらず、あなたがclass_mode=Noneを使用しているため

x, y = next(generator) 

あなたのジェネレータは、任意のYを返していません。

あなたは発電機の農産物ラベルを作成するためにこれらのいずれかを使用する必要があります。

  • カテゴリ
  • バイナリ
  • スパース

通常、多クラスの目的のために、あなたが一緒に行くだろう"カテゴリー"。 1つのクラス(はい/いいえ)の場合は、「バイナリ」を使用します。

+0

ありがとう、私はどちらの場合でも試みました:ValueError:アンパックする値が多すぎます(予想2) – JMath

+0

ああ、あなたは 'class_mode = None'を使っています。これにより、発電機がY部品を生成することが防止される。 (答えを更新しました)。 –

+0

ああ、ありがとうございます。それは動作します。 – JMath

関連する問題