使用 Keras,如何输入 X_train 图像(超过一千张图像)?

新手上路,请多包涵

我的应用是使用机器学习(卷积神经网络)的事故避免汽车系统。我的图像是 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 许可协议

阅读 361
1 个回答

这篇 Keras 博客文章, 使用非常少的数据构建强大的图像分类模型,是关于在目录中存储的图像上训练模型的优秀教程。它还介绍了 ImageDataGenerator 类,它具有成员函数 flow_from_directory 在@isaac-moore 的回答中引用。 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 下载其他文件。

原文由 dhinckley 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题