pytorch重载optimizer参数时报错:RuntimeError: expected device cpu but got device cuda:0的解决方法

因为有人问我optimizer的step为什么不能放在min-batch那个循环之外,还有optimizer.step和loss.backward的区别;那么我想把答案记录下来。 首先需要明确optimzier优化器的作用, 形象地来说,优化器就是需要根据网络反向传播的梯度信息来更新网络的参数,以起到降低loss函数计算值的作用,这也是机器学习里面最一般的方法论。 从优化器的作用出发,要使得优化器能够起作用,需要主要两个东西:1. 优化器需要知道当前的网络或者别的什么模型的参数空间,这也就是为什么在训练文件


平台注册入口