4

我的应用程序是使用机器学习(卷积神经网络)的事故避免汽车系统。我的图像是200x100 JPG图像,输出是4个元素的阵列:汽车会左右移动,停止或向前移动。因此,输出将使一个元素为1(根据应采取的正确操作),另外3个元素将为0使用Keras,我如何输入图像的X_train(超过一千个图像)?

我想现在训练我的机器,以帮助它输入任何图像并独立决定动作。这是我的代码:

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) 

我该如何输入我的图像(我把它们放在我的电脑上)?我怎样才能指定Y列车?

+0

欢迎来到Stack Overflow!请考虑调试。另请参阅[mcve]和[作业](http://meta.programmers.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems) – Mat

+0

欢迎使用Stack Overflow!为了给你一个很好的答案,如果你有一个[问],如果你还没有看过,它可能会帮助我们。如果你可以提供[mcve],它可能也很有用。 – Mat

回答

2

为列车和文件夹创建一个文件夹,为图像类创建单独的文件夹。使用

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

在参考keras.io

+0

尽量提供格式良好,记录详细的答案。 – Masoud

6

这Keras博客文章,Building powerful image classification models using very little data

访问图像,是存储在目录中的图像训练模型中的优秀教程。它还介绍了ImageDataGenerator类,该类具有@ isaac-moore答案中引用的成员函数flow_from_directory。可以在图像上使用flow from directory训练,其中目录结构用于推导Y_train的值。

伴随教程博客文章的三个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构建在前一个的输出上。另外请注意,需要从KaggleGithub下载其他文件。