Я провожу некоторые исследования по использованию керасов для прогнозирования скорости звуковых волн по изображениям камней. Но моя потеря модели огромна, как 5000 или больше, а именно 0, иногда отрицательное число. Я сомневаюсь, что что-то не так с моими сетевыми слоями, мои тренировочные данные - это миллионы изображений горных пород, которые помечены его UUID и скоростью звуковой волны.
Я пытаюсь изменить функцию потери, оптимизатор и добавить отсев, чтобы предотвратить перегрузку, но она тоже не работает.
####################push images and soundwavespped into a array##############
model = Sequential()
model.add(Conv2D(filters=16,kernel_size=(2,2),padding='same',input_shape=(37,44,1)))
model.add(Activation("relu"))
model.add(BatchNormalization(axis=-1))
model.add(MaxPooling2D(pool_size=(2,2),padding='same'))
model.add(Conv2D(filters=32,kernel_size=(2,2),padding='same'))
model.add(Activation("relu"))
model.add(BatchNormalization(axis=-1))
model.add(MaxPooling2D(pool_size=(2,2),padding='same'))
model.add(Conv2D(filters=64,kernel_size=(2,2),padding='same'))
model.add(Activation("relu"))
model.add(BatchNormalization(axis=-1))
model.add(MaxPooling2D(pool_size=(2,2),padding='same'))
model.add(Flatten())
model.add(Dense(1024))
model.add(Activation("relu"))
model.add(Dropout(0.5))
# model.add(Dense(64))
# model.add(Activation("relu"))
model.add(Dense(1,activation="linear"))
adam= Adam(lr=1e-3, decay=1e-3 / 1)
model.compile(loss='mean_absolute_percentage_error',optimizer=adam, metrics=['accuracy'])
history=model.fit(trainsetImage, trainsetSpeed, batch_size=32,validation_data=(testsetImage, testsetSpeed), epochs=1,shuffle=True)
model.save(os.path.join(rootdir, 'model_weight.h5'))
loss,accuracy = model.evaluate(testsetImage,testsetSpeed)
фотографии скал, названных по комбинации id и скорости звуковой волны
результат обучения