我的应用是使用机器学习(卷积神经网络)的事故避免汽车系统。我的图像是 200x100 JPG 图像,输出是一个包含 4 个元素的数组:汽车将向左、向右、停止或向前移动。因此,输出将使一个元素为 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)
如何输入我的图像(我的电脑上有它们)?我如何指定 Y 列车?
原文由 Zahra Sorour 发布,翻译遵循 CC BY-SA 4.0 许可协议
这篇 Keras 博客文章, 使用非常少的数据构建强大的图像分类模型,是关于在目录中存储的图像上训练模型的优秀教程。它还介绍了
ImageDataGenerator
类,它具有成员函数flow_from_directory
在@isaac-moore 的回答中引用。flow from directory
可用于图像训练,其中目录结构用于推断Y_train
的值。教程博客文章附带的三个 python 脚本可以在下面的链接中找到:
(当然,这些链接在博文本身中,但链接不在中央。)请注意,脚本 2 和 3 建立在前一个的输出之上。另请注意,需要从 Kaggle 和 Github 下载其他文件。