Использует ли 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 этого не происходит.


Ответы (0 шт):