Я пытаюсь обучить сверточную сеть, но потери меняются независимо от того, что я делаю. Я хочу знать, где я иду не так, а также буду благодарен за любые дружеские советы, так как я впервые имею дело с такими большими данными.
Я пробовал много комбинаций оптимизаторов (adam, SGD, adamdelta ...), функций потерь (средняя ошибка sqauare, двоичная кросс-энтропия ....) и активации (Relu, elu, selu ....), но проблема все еще сохраняется.
Характер моего проекта: это моя попытка обучить простой симулятор вождения.
Данные обучения: данные обучения разбиты примерно на ~ 4000 .h5 файлов. Каждый файл содержит ровно 200 изображений с соответствующими данными для каждого изображения, такими как скорость, ускорение и т. Д.
Из-за характера данных я решил тренироваться в мини-партиях по 200 и перебирать все файлы.
# model (I am a beginner so forgive my sloppy code)
rgb_in = Input(batch_shape=(200, 88, 200, 3), name='rgb_in')
conv_1 = Conv2D(filters=10,kernel_size=5,activation="elu",data_format="channels_last",init = "he_normal")(rgb_in)
conv_2 = Conv2D(filters=16,kernel_size=5,activation="elu",data_format="channels_last",init = "he_normal")(conv_1)
conv_3 = Conv2D(filters=24,kernel_size=5,activation="elu",data_format="channels_last",init = "he_normal")(conv_2)
conv_4 = Conv2D(filters=32,kernel_size=3,activation="elu",data_format="channels_last",init = "he_normal")(conv_3)
conv_5 = Conv2D(filters=32,kernel_size=3,activation="elu",data_format="channels_last",init = "he_normal")(conv_4)
flat = Flatten(data_format="channels_last")(conv_5)
t_in = Input(batch_shape=(200,14), name='t_in')
x = concatenate([flat, t_in])
dense_1 = Dense(100,activation="elu",init = "he_normal")(x)
dense_2 = Dense(50,activation="elu",init = "he_normal")(dense_1)
dense_3 = Dense(25,activation="elu",init = "he_normal")(dense_2)
out = Dense(5,activation="elu",init = "he_normal")(dense_3)
model = Model(inputs=[rgb_in, t_in], outputs=[out])
model.compile(optimizer='Adadelta', loss='binary_crossentropy')
for i in range(3663,6951):
filename = 'data_0'+str(i)+'.h5'
f = h5py.File(filename, 'r')
rgb = f["rgb"][:,:,:,:]
targets = f["targets"][:,:]
rgb = (rgb - rgb.mean())/rgb.std()
input_target[:,0] = targets[:,10]
input_target[:,1] = targets[:,11]
input_target[:,2] = targets[:,12]
input_target[:,3] = targets[:,13]
input_target[:,4] = targets[:,16]
input_target[:,5] = targets[:,17]
input_target[:,6] = targets[:,18]
input_target[:,7] = targets[:,21]
input_target[:,8] = targets[:,22]
input_target[:,9] = targets[:,23]
a = one_hot(targets[:,24].astype(int),6)
input_target[:,10] = a[:,2]
input_target[:,11] = a[:,3]
input_target[:,12] = a[:,4]
input_target[:,13] = a[:,5]
output[:,0] = targets[:,0]
output[:,1] = targets[:,1]
output[:,2] = targets[:,2]
output[:,3] = targets[:,4]
output[:,4] = targets[:,5]
model.fit([rgb,input_target], output,epochs=10,batch_size=200)
Результат:
Epoch 1/10
200/200 [==============================] - 7s 35ms/step - loss: 6.1657
Epoch 2/10
200/200 [==============================] - 0s 2ms/step - loss: 2.3812
Epoch 3/10
200/200 [==============================] - 0s 2ms/step - loss: 2.2955
Epoch 4/10
200/200 [==============================] - 0s 2ms/step - loss: 2.2778
Epoch 5/10
200/200 [==============================] - 0s 2ms/step - loss: 2.2778
Epoch 6/10
200/200 [==============================] - 0s 2ms/step - loss: 2.2778
Epoch 7/10
200/200 [==============================] - 0s 2ms/step - loss: 2.2778
Epoch 8/10
200/200 [==============================] - 0s 2ms/step - loss: 2.2778
Epoch 9/10
200/200 [==============================] - 0s 2ms/step - loss: 2.2778
Epoch 10/10
200/200 [==============================] - 0s 2ms/step - loss: 2.2778
Epoch 1/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
Epoch 2/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
Epoch 3/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
Epoch 4/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
Epoch 5/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
Epoch 6/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
Epoch 7/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
Epoch 8/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
Epoch 9/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
Epoch 10/10
200/200 [==============================] - 0s 2ms/step - loss: 1.9241
И, наконец, я буду признателен, если вы дадите мне какой-либо совет относительно проекта 101