Начал разбираться с автоматическим подбором параметров нейронной сети. В процессе наткнулся на метод под названием сеточный поиск. Данные загружаются в виде словаря. Мне понятно как происходит подбор параметров, всех кроме слоев.
# Различные наборы слоёв
params = {
'clf__layers': [[Dense(256, activation='relu', input_shape=(30, )), Dense(256, activation='relu'), Dropout(0.4), Dense(1, activation='sigmoid')],
[Dense(64, activation='relu', input_shape=(30, )), Dropout(0.4), Dense(64, activation='relu'), Dense(1, activation='sigmoid')],
[Dense(16, activation='relu', input_shape=(30, )), Dropout(0.4), Dense(16, activation='relu'), Dense(16, activation='relu'),
Dropout(0.4), Dense(1, activation='sigmoid')]
],
'clf__optimizer': ['rmsprop'],
'clf__loss': ['binary_crossentropy'],
'clf__metric': [['accuracy']],
'clf__epochs': [25, 50]
}
clf_layers представляет из себя список, с 3 вложенными списками, при подборе параметров алгоритм перемешивает указанные слои во вложенных списках между друг другом или они перемешиваются только между друг другом в пределах одного вложенного списка.
Вот статья из которой взят пример -
https://shwanoff.ru/gridsearchcv/