Всем привет!

Я пытаюсь выполнить байесовскую оптимизацию, чтобы найти лучшие гиперпараметры для глубокой нейронной сети, и я хочу, чтобы переменная MiniBatchSize имела в данном случае только три возможных значения: 8, 10, 12. Я подумал, что могу объявить optVar как если бы это был массив

interval = 8:2:12;
optVar = optimizableVariable('MiniBatchSize', interval, 'Type', 'integer');

Этот код вызывает следующую ошибку:

Ошибка при использовании optimizableVariable/checkRange

Значение Диапазон должно быть массивом строк, массивом ячеек из символьных векторов или числовым вектором длины 2.

Я что-то упускаю? Есть ли другой способ выполнить это?

ОТВЕЧАТЬ

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Предположим, что X — целочисленная переменная, которая принимает только значения 1:5.

Но вам нужны нецелочисленные уровни некоторого параметра. Например, возможно, вам нужны уровни [1,5, 3,5, 5,5, 7,5, 9,5]?

Внутри вашего кода просто напишите

Xhat = 2*X - 0.5;

Согласны ли вы с тем, что Xhat берет желаемый уровень?

Они даже не должны быть регулярными. Предположим, вам нужны уровни в [2 3 5 7 11]? Внутри вашего кода вы можете сделать это:

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ