PyTorch中的loss.step和optimizer.backward区别

一句话解释

关于累加loss

一句话解释,n个backward使用一个step

详解

假如想要使用batch size(bs)为100训练模型,但是老黄卖的大memeory的卡太贵了,只能fit进batch size为10的数据,那怎么办呢?

在PyTorch中可以这样搞:使用10的bs对网络进行forward10次,每次都调用loss.backward(),但是每10次forward才调用一次optimizer.step(),这样就实现了batch size为100的效果。其原理就是step和bachward的区别。

Ref