根据英伟达的神经网络架构:
self.model = Sequential() #135, 135, 3self.model.add(BatchNormalization(epsilon=0.001, input_shape=(135, 135, 3)))self.model.add(Conv2D(24, 5, 5, border_mode='valid', activation='relu', subsample=(2, 2)))self.model.add(Dropout(0.5))self.model.add(Conv2D(36, 5, 5, border_mode='valid', activation='relu', subsample=(2, 2)))self.model.add(Dropout(0.5))self.model.add(Conv2D(48, 5, 5, border_mode='valid', activation='relu', subsample=(2, 2)))self.model.add(Dropout(0.5))self.model.add(Conv2D(64, 3, 3, border_mode='valid', activation='relu', subsample=(1, 1)))self.model.add(Dropout(0.5))self.model.add(Conv2D(64, 3, 3, border_mode='valid', activation='relu', subsample=(1, 1)))self.model.add(Dropout(0.5))self.model.add(Flatten())self.model.add(Dense(1164, activation='relu'))self.model.add(Dropout(0.5))self.model.add(Dense(100, activation='relu'))self.model.add(Dropout(0.5))self.model.add(Dense(50, activation='relu'))self.model.add(Dropout(0.5))self.model.add(Dense(10, activation='relu'))self.model.add(Dropout(0.5))self.model.add(Dense(1, activation='tanh'))adam = Adam(lr=0.0001)self.model.compile(loss='mse', optimizer=adam, metrics=['accuracy'])
此模型专为自动驾驶问题设计。
在卷积网络的第一层入口处,它接收尺寸为135, 135, 3
的图像,并在入口处输出机器应转向的任何角度(取决于数据集)。
是否有办法将传感器的读数(如距离等)与图像一起添加?
例如:我有一张尺寸为135,135,3
的图像,以及来自传感器的读数数组,例如:
3个任意传感器[10, 0, 25]
然后标记它们,例如向左转。
-25 – 向左,0 – 直行,25 – 向右
如何将传感器读数与图像结合起来,使得在训练后神经网络能够考虑到这些传感器的读数?
回答:
当然可以,这是些额外的数据,但你用Conv2D网络处理它们可能不是最理想的。所以也许在你进行密集层或之后,你可以合并两个网络;这是一个Keras的例子,详见这里 https://datascience.stackexchange.com/questions/26103/merging-two-different-models-in-keras 在TensorFlow中也是可以实现的。