Нужно ли инициализировать веса для каждого переобучения одной и той же модели в 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!

Надеюсь, поможет!

Другие вопросы по тегам