Нужно ли инициализировать веса для каждого переобучения одной и той же модели в Matlab с помощью nntool?
Я знаю, что для модели ANN начальные веса являются случайными. Если я тренирую модель и повторяю тренировку 10 раз nntool
, инициализируются ли веса каждый раз, когда я нажимаю кнопку тренировки, или все еще используются те же начальные веса, которые вы только что скорректировали?
1 ответ
Я не уверен, что используемый вами nntool использует метод train (см. Здесь https://de.mathworks.com/help/nnet/ref/train.html).
Я использовал этот метод довольно широко, и он работает аналогично тензорному потоку: вы сохраняете несколько контрольных точек и загружаете последний статус, чтобы продолжить обучение с этой точки. Код будет выглядеть примерно так.
[feat,target] = iris_dataset;
my_nn = patternnet(20);
my_nn = train(my_nn,feat,target,'CheckpointFile','MyCheckpoint','CheckpointDelay',30);
Здесь мы просили, чтобы контрольные точки сохранялись с частотой не более одного каждые 30 секунд. Если вы хотите продолжить обучение, сеть должна быть загружена из файла контрольных точек как:
[feat,target] = iris_dataset;
load MyCheckpoint
my_nn = checkpoint.my_nn;
my_nn = train(my_nn,feat,target,'CheckpointFile','MyCheckpoint');
Это решение включает в себя обучение сети из командной строки или с помощью сценария, а не с использованием графического интерфейса, предоставленного Mathworks. Я искренне считаю, что этот последний метод отлично подходит для начинающих, но если вы хотите сделать какой-нибудь интересный умный старт с использованием командной строки или даже лучше переключиться на библиотеки, такие как Torch или Tensorflow!
Надеюсь, поможет!