Я работаю с керасом и тензорным потоком в r.
Я хочу, чтобы моя модель научилась классифицировать от 0 до 1, используя множество измерений, которые я ввожу в первый слой.
Iзаставил его работать с «меньшим» количеством входов (около 500 000 входных измерений), но не может заставить его работать с большим количеством измерений (>> 1 000 000 измерений).
Я предполагаю, что ямне нужно оптимизировать мою модель.
Мой вопрос заключается в том, могу ли я написать некоторый код, чтобы keras использовал разные значения для скорости обучения, затухания, числа входных узлов, частоты выпадения один за другим и впоследствии представляет меняс какой-то матрицей считывания (например, кривые val_acc или точность моего тестового образца), чтобы я мог начать выяснять, какие параметры могут работать?
Я пытался использовать параметры, которые работаютдля моей маленькой модели и работать вверх / вниз оттуда, но безрезультатно.Кроме того, модель меньшего размера довольно чувствительна к изменениям во всех заданных параметрах, поэтому я чувствую, что нахождение хороших параметров для большой модели вручную займет целую вечность.
Моя меньшая модель выглядит следующим образом и дает мне 75%Точность в моем тесте, которая уже не так уж плоха, но я надеялся, что больше измерений может помочь мне получить более высокую точность:
model <- keras_model_sequential()
model %>%
layer_dense(units = 42, input_shape = c(measurements)) %>%
layer_dropout(0.9) %>%
layer_dense(units = 2, activation = 'softmax')
sgd <- optimizer_sgd(lr = 0.1, decay=0.001)
model %>% compile(
loss = 'binary_crossentropy',
optimizer = sgd,
metrics = 'accuracy')
history <- model %>% fit(
data.training, data.trainLabels,
epochs = 100, batch_size = 64,
view_metrics = FALSE,
callbacks = callback_tensorboard("logs/run_a"),
validation_split = 0.2)
score <- model %>% evaluate(data.test, data.testLabels, batch_size = 20)
print(score)