Я новичок в нейронных сетях и Keras, и я хочу создать CNN, который предсказывает определенные значения изображения.(эти три значения определяют размер, длину и ширину размытия, нанесенного поверх изображения).Все 3 значения могут варьироваться от 0 до 1, и у меня большой набор данных.
Я не совсем уверен, как построить CNN, чтобы сделать это, хотя все коды прототипов, которые я построил до сих пор, дают мне предсказания формата [1.,0.,0.]
вместо диапазонов от 0 до 1 для каждогозначение.Кроме того, несмотря на изменение количества эпох и значения затухания в оптимизаторе SGD, я не получаю никаких изменений в моей функции потерь.Можете ли вы сказать мне, где я иду не так?Вот что у меня пока есть:
images, labels = load_dataset("images") # function that loads images
images = np.asarray(images) # images are flattened 424*424 arrays (grayscale)
labels = np.asarray(labels) # Lables are 3-arrays, each value is float from 0-1
# I won't write this part but here I split into train_imgs and test_imgs
model = keras.Sequential()
# explicitly define SGD so that I can change the decay rate
sgd = keras.optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.add(keras.layers.Dense(32, input_shape=(424*424,) ))
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.Dense(3, activation='softmax'))
model.compile(loss='mean_squared_error',optimizer=sgd)
# note: I also tried defining a weighted binary crossentropy but it changed nothing
checkpoint_name = 'Weights-{epoch:03d}--{val_loss:.5f}.hdf5'
checkpoint = ModelCheckpoint(checkpoint_name, monitor='val_loss', verbose = 0, save_best_only = True, mode ='auto')
callbacks_list = [checkpoint]
model.fit(train_imgs, train_labls, epochs=20, batch_size=32, validation_split = 0.2, callbacks=callbacks_list)
predictions = model.predict(test_imgs) # make predictions on same test set!
Теперь я знаю, что я пропускаю выпадающие слои, но я ХОЧУ, чтобы CNN перегрузил мои данные, на данный момент я просто хочу, чтобы он что-нибудь сделал.Когда я прогнозирую на одном и том же наборе изображений, я надеюсь, что получу точные результаты, не так ли?Я не совсем уверен, что мне не хватает.Спасибо за помощь!