Код: Выделить всё
loss = loss_fnc(samples)
model.optim.zero_grad()
loss.backward()
model.optim.step()
Код: Выделить всё
loss_sum = 0
for k_batch in range(0, len(samples), batch_size):
samples_batch = samples[k_batch:k_batch + batch_size]
loss = loss_fnc(samples_batch)
loss_sum += loss*len(samples_batch)
model.optim.zero_grad()
loss.backward()
model.optim.step()
loss_comp = loss_sum/len(replay_samples)
Теперь я столкнулся с проблемой: модель больше не сходится с моим эталонным примером при использовании пакетного обучения. обучение. В обоих случаях выборки уже упорядочиваются случайным образом перед обучением.
Поскольку меня интересует только уменьшение необходимого объема памяти для вычислений и прежде чем я попробую что-нибудь еще, есть ли способ действительно ли обучение будет одинаковым при использовании пакетов вместо «всего сразу»? Я попытался изменить функцию, чтобы пакетно вычислялись только потери, а этап оптимизации выполнялся в конце, но, похоже, у меня не получилось.
Как я поймите, использование DataLoader ничего не изменит в этом поведении.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-batches
Мобильная версия