web-dev-qa-db-ja.com

Kerasを使用して、画像のX_train(1000以上の画像)を入力するにはどうすればよいですか?

私のアプリケーションは、機械学習(畳み込みニューラルネットワーク)を使用した事故回避車システムです。私の画像は200x100 JPG画像で、出力は4つの要素の配列です。車は左、右、停止、または前進します。したがって、出力では1つの要素を1(実行する必要がある正しいアクションに従って)と他の3つの要素は0

画像を入力してアクションを個別に決定できるように、今すぐマシンをトレーニングしたいと思います。これが私のコードです:

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.optimizers import SGD

import numpy as np

model = Sequential()

model.add(Convolution2D(16, 1, 1, border_mode='valid', dim_ordering='tf', input_shape=(200, 150, 1)))
model.add(Activation('relu'))
model.add(Convolution2D(16, 1, 1))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25)) #Cannot take float values

model.add(Convolution2D(32, 1, 1, border_mode='valid'))
model.add(Activation('relu'))
model.add(Convolution2D(32, 1, 1))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
# Note: Keras does automatic shape inference.
model.add(Dense(256))
model.add(Activation('relu'))
model.add(Dropout(0.5))

model.add(Dense(10))
model.add(Activation('softmax'))

model.fit(X_train, Y_train, batch_size=32, nb_Epoch=1)

画像を入力するにはどうすればよいですか(自分のPCにあります)? Yトレインを指定するにはどうすればよいですか?

5
Zahra Sorour

このKerasブログ投稿 非常に少ないデータを使用して強力な画像分類モデルを構築する は、ディレクトリに保存された画像でモデルをトレーニングするための優れたチュートリアルです。また、@ isaac-mooreの回答で参照されているメンバー関数flow_from_directoryを持つImageDataGeneratorクラスも紹介しています。 flow from directoryは画像のトレーニングに使用でき、ディレクトリ構造はY_trainの値を推定するために使用されます。

チュートリアルのブログ投稿に付属する3つのpythonスクリプトは、以下のリンクにあります。

  1. classifier_from_little_data_script_1.py
  2. classifier_from_little_data_script_2.py
  3. classifier_from_little_data_script_3.py

(もちろん、これらのリンクはブログ投稿自体にありますが、リンクは中央に配置されていません。)スクリプト2および3は、前の出力に基づいて構築されていることに注意してください。また、追加のファイルを Kaggle および Github からダウンロードする必要があることに注意してください。

10
dhinckley

Train用のフォルダーを作成し、そのフォルダー内に、画像のクラス用に別のフォルダーを作成します。

を使用して画像にアクセスする

  train_generator = train_datagen.flow_from_directory(
    'data/train',
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary')

keras.io を参照

4
isaac-moore

このリポジトリには例があります:

https://github.com/ZFTurbo/KAGGLE_DISTRACTED_DRIVER/blob/master/run_keras_simple.py

それらは異なるフォルダーを持ち、すべてのフォルダーに異なるクラスの画像があります。それらはopencvを使用して画像をロードし、すべての画像のクラスを含む配列を作成します。

2
Rob