Я хотел бы классифицировать изображения (или, точнее, тепловую карту), используя Tensorflow / keras в R.
Я начал с чтения учебников, но в моем случае я не хочу классифицировать "большие" шаблоныкак например кошка или дом или 9 - но скорее изменяющиеся образцы в тепловой карте.
Пример:

Myтекущий код для слоев:
model <- keras_model_sequential()
model %>%
#layer_dropout(rate = FLAGS$dropout1) %>%
layer_conv_2d(filters = FLAGS$convol_filters1, kernel_size = c(3,3),
input_shape = c(dim(data.training)[2], dim(data.training)[2], 1), data_format = "channels_last"
, activation = "relu", padding = "same"
) %>%
layer_conv_2d(filters = FLAGS$convol_filters1, kernel_size = c(3,3),
input_shape = c(dim(data.training)[2], dim(data.training)[2], 1), data_format = "channels_last"
, activation = "relu"
#, padding = "same"
) %>%
layer_max_pooling_2d(pool_size = c(2,2)) %>%
layer_dropout(rate = FLAGS$dropout1) %>%
layer_conv_2d(filters = FLAGS$convol_filters2, kernel_size = c(3,3),
input_shape = c(dim(data.training)[2], dim(data.training)[2], 1), data_format = "channels_last"
, activation = "relu", padding = "same"
) %>%
layer_conv_2d(filters = FLAGS$convol_filters2, kernel_size = c(3,3),
input_shape = c(dim(data.training)[2], dim(data.training)[2], 1), data_format = "channels_last"
, activation = "relu"
#, padding = "same"
) %>%
layer_max_pooling_2d(pool_size = c(2,2)) %>%
layer_dropout(rate = FLAGS$dropout1) %>%
layer_conv_2d(filters = FLAGS$convol_filters3, kernel_size = c(3,3),
input_shape = c(dim(data.training)[2], dim(data.training)[2], 1), data_format = "channels_last"
, activation = "relu", padding = "same"
) %>%
layer_conv_2d(filters = FLAGS$convol_filters3, kernel_size = c(3,3),
input_shape = c(dim(data.training)[2], dim(data.training)[2], 1), data_format = "channels_last"
, activation = "relu"
#, padding = "same"
) %>%
layer_max_pooling_2d(pool_size = c(2,2)) %>%
layer_dropout(rate = FLAGS$dropout1) %>%
layer_flatten() %>%
layer_dense(units = FLAGS$dense_units1
) %>%
layer_activation_relu() %>%
layer_dropout(rate = FLAGS$dropout1) %>%
layer_dense(units = FLAGS$dense_units1) %>%
layer_activation_relu() %>%
layer_dropout(rate = FLAGS$dropout1) %>%
layer_dense(units = FLAGS$dense_units1) %>%
layer_activation_relu() %>%
layer_dropout(rate = FLAGS$dropout1) %>%
layer_dense(units = 2, activation = 'softmax')
Это не приводит к большому успеху в обучении, так как после нескольких (дюжин) эпох точность обучения в основном равна 1, но val_loss skyrockets и val_accuracy снижаются.
Я думаю, что модель должна уметь делать то, что я хочу, но я могу пойти по этому пути неправильно.Любые указатели, что я мог бы фундаментально изменить, и тогда я могу сделать настройку гиперпараметра?