Использует ли pytorch параметр batch_size для автоматического сигментирования входного тензора при обучении?
Например есть какая-то сеть (ее тип не так важен) Определен входной вектор:
inputs = torch.randn(datasize, batch_size, n_features).to(device)
и целевой вектор:
target = torch.randint(0, 3, (datasize, n_classes)).to(device)
Цикл только по эпохам:
for epoch in range(n_epochs):
losses = 0
outputs = model.forward(inputs)
loss = criterion(outputs, target)
optimizer.zero_grad()
outputs = F.log_softmax(outputs, dim=2)
outputs = outputs.transpose(0, 1) # (time, batch, n_class)
loss.backward()
optimizer.step()
print(epoch, loss.data)
Pytorch умный и сам сегментирует входной тензор на блоки размерностью в batch_size или же внутри цикла по эпохам нужно делать еще цикл и самому заботится о блоках? Я провел эксперименты: Использовал Keros и Pytorch, если я в Kerose изменяю batch_size время обработки данных меняется (чем меньше размер, тем дольше обработка) в pytorch этого не происходит.