初学者のため、基本的な質問で申し訳ありません。
不足情報がありましたらお申し付け下さい。
1.やっていること
2400枚の画像を用いた15クラス分類問題
2.今まで実施したこと
CNNで正解率95%程度のモデル構築ができた。
3.実現したいこと
データ拡張を加えて、学習データ数を増やし、正解率をさらに高めたい
4.3の実現のためにやろうとしていること
・kerasのimagedatageneratorでノイズを加えたデータを生成、元データに付け足して学習を行う
5.4の実施結果
データ拡張を実施したモデルの方がデータ拡張を実施しない元データだけでの学習よりも正解率が下がってしまった
6.5の原因
imagedatageneratorが、渡したデータからランダムにデータを抽出するのか、データ拡張を行った画像とそれに対応する正解ラベルが誤ってしまっていた。
7.ご教示いただきたいこと
imagedatageneratorを用いて、拡張後の画像と正解ラベルがずれない実装方法を教えていただきたい。
imagedatageneratorでなくとも良いが、なるべく簡単な実装だと助かります。
model.fit.generatorでリアルタイムに画像を拡張しながら、学習ができることは知っていますが、それだと①オリジナルのデータを学習させられない②オリジナルデータを超える数の教師データを作れない認識のため、上記のような方法を取っています。
該当のソースコード
######生成器を作成
datagen = ImageDataGenerator(
rotation_range=0.1,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.1,
horizontal_flip=False,
vertical_flip=False)
######データ拡張を実施
X_gen1 = datagen.flow(X_train, batch_size=2400)[0]
######教師データを結合
X_train_new = np.concatenate([X_train, X_gen1])
######正解ラベルも結合
y_train_new = np.concatenate([y_train, y_train])
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/22 22:51
2019/12/23 05:46
2019/12/24 02:45
2019/12/24 03:46
2019/12/24 10:12
2019/12/25 06:47