В соответствии с архитектурой нейронной сети Nvidia:
self.model = Sequential() #135, 135, 3
self.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'])
Эта модель была разработана специально для задач автопилота.
На входе, на 1 уровне сверточной сети, снимается изображениес размерами 135, 135, 3
и на входе уже выдает любой угол, на который машина должна повернуться (зависит от набора данных)
Есть ли способ добавить вместе с изображениями - например, любые показания с датчиков?(расстояния и т. д.)
Например: у меня есть изображение размером 135,135,3
, а также массив показаний с датчика, например:
3 любых датчика [10,0, 25]
Ну, отметьте их, например, поверните налево.
-25 - влево, 0 - прямо, 25 - вправо
Какможно ли объединить показания датчиков и изображений, чтобы после обучения нейронная сеть учитывала показания этих датчиков?