未解之谜。 torch只要把batch size设为16,就会很慢,一次迭代要1.4秒。可是如果bs设为15或者17,那一次迭代只需要0.35秒。cuda占用都是99%,将近跑满的状态。显存都只用了一半。worker num是4。 甚至把batch size…
在使用Pytorch进行模型训练时,将batch size设置为16会导致一次迭代时间延长至1.4秒,这与设置为15或17时,迭代时间仅为0.35秒形成鲜明对比。GPU的CUDA占用率接近100%,达到满载状态,而显存使用率仅有一半。使用四个worker,性能却未得到预期提升。更令人困惑的是,即使将batch size调整为8,迭代时间也...
就是调参起来会比较麻烦。建议 collate的时候做下padding,不然训练的速度也会变慢。
主要原因应该是 同样的epoch下的参数更新次数变少了(比如50000个样本,batch_size为4,一个epoch神经网络的参数会更新12000次。如batch_size为50,一个epoch神经网络的参数只更新了1000次),因此需要更长的迭代次数。这是我的答案,如果有问题可以在评论中纠正。好处当然是Batch_Size 越大,其确定的下降方向越准,...
batch size>1 前者在gpu里会有多个模型的拷贝,更耗显存,所以你为什么不是把batch size改大呢?
主要原因应该是 同样的epoch下的参数更新次数变少了(比如50000个样本,batch_size为4,一个epoch神经...