質問: ### 画像を取り込む→正解ラベルを付ける→MLのデータセットに変換する 機械学習の勉強をしている大学院生です。 環境 windows python tensorflow 現在、MLPでの回帰問題をするにあたり、自分自身でデータセットを作りたいと考えています。 そもそもCSVかTFRecordのどちらでデータセットを作成しようか考えましたが、 TFRecordが難しそうなので、CSVにしました。 できれば、以下のようなことをしたいと考えています。 1.画像データを読み込む(RGBか白黒かはまだ決めかねています) 2.それぞれの画像データに正解ラベルを付ける 3.画像データを機械学習できるようにピクセル数などを合わせる 4.訓練データと教師データにランダムに分ける(分ける比率は7:3の予定) できれば、ソース付きで解説してくれると大変有り難いです。 CSVをはじめて使うので宜しくお願い致します。
回答: csvはただのコンマで仕切られたファイルです。 https://www.weblio.jp/content/amp/Comma-Separated+Values 多次元配列を記述できるということで、いろいろなところで見かけます。 フォーマットの問題なので、データセットを作るときは特に気にしなくても大丈夫です。 データセットを最も簡単に作る方法はこちらになります。 https://qiita.com/agumon/items/ab2de98a3783e0a93e66 これならば、カテゴリ別に異なるフォルダに入れればできます。 データの分け方ですが、sklearnのkfoldなどを使うのが一般的です。 https://qiita.com/19930404/items/09ddbe506d0e4ab0e10c 直接質問には関係ないことですが、質問する際には何を調べたのかについて記載するとよいです。 でないと、最初に思うことは「検索したらいいじゃん」ということです。 ついでに、どの部分がわからないかまであると、より短い時間に解決につながります。 追記 https://keras.io/ja/preprocessing/image/ のImageDataGeneratorを使います。 ``` from keras.preprocessing.image import ImageDataGenerator train_datagen = ImageDataGenerator( rescale=1.0 / 255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) #画像のカサ増し時に実行する変形をキーワードで #train_datagen = ImageDataGenerator(rescale=1.0 / 255) #そのまま使うのなら train_generator = train_datagen.flow_from_directory( 'data/train', target_size=(256, 256), batch_size=batch_size, class_mode='categorical') #./data/trainの画像を256x256に統一する ``` あとはKerasのモデルを作ってfitするだけ ``` history = model.fit_generator( train_generator, nb_epoch=nb_epoch) ```