4

Предположим, у меня очень большой набор поездов, чтобы Matlab зависал во время тренировки или недостаточно памяти для хранения набора поездов.Как тренировать нейронную сеть постепенно в Matlab?

Можно ли разделить учебный комплект на части и обучить сеть по частям?

Можно ли обучать сеть одним образцом за один раз (один за другим)?

ответ

5

Вы можете просто вручную разделить набор данных на пакеты и обучать их один за одним:

for bn = 1:num_batches 
    inputs = <get batch bn inputs>; 
    targets = <get batch bn targets>; 
    net = train(net, inputs, targets); 
end 

Хотя размер партии должен быть больше 1, но в любом случае, что должно уменьшить Потребляемый памяти для обучения.

В случае trainlm тренировка alogrithm, net.efficiency.memoryReduction может помочь. Также вместо стандартного алгоритма trainlm вы можете попробовать меньше потребляющих память, например trainrp. Подробнее об алгоритмах обучения проверьте matlab documentation page. Я предположил, что вы используете соответствующий набор инструментов matlab для нейронных сетей.

Что касается обучения одному образцу за один раз, вы можете попробовать выполнить поиск в Google для алгоритма стохастического градиентного спуска. Но похоже, что это не набор алгоритмов обучения по умолчанию в панели инструментов.

+0

На каждой итерации не записывалась бы над предыдущей «сетью» и над ней записывалась бы надпись? – Alper

+0

@Avatar Первый вызов 'train' создаст начальные веса для' net' и подготовит партию, начиная с них. Но все последующие вызовы начнут тренироваться с весов, полученных после тренировки по предыдущим партиям. Поэтому обычно следует ожидать общего повышения точности сети. – akademi4eg

+0

Что значит поезд на поезде? как 100 частей данных на обучение? Вместо поезда не следует использовать функцию adapt()? В моих экспериментах я наблюдаю, что, когда я итеративно тренирую данные, вес начинает принимать форму тренировочной части данных и переписывать в веса, которые уже прошли обучение раньше. Я не смог преодолеть эту проблему. Есть ли у вас какие-либо советы, связанные с этим? – Alper

Смежные вопросы