前言: 本文主要记载在pytorch使用过程中遇到的一些报错以及解决方案等,在以前的文章[1]中,主要涉及的是比较容易出现的原理上的,或者难以发现的bug,而这里的主要是系统抛出的error或者warning的解决方法,其各有侧重,欢迎各位贡献idea。如有谬误,请联系指出,如需转载,请注明出处,谢谢。
联系方式:
e-mail: [email protected]
QQ: 973926198
github: https://github.com/FesianXu
在指定优化器的优化变量时
- 1 pytorch 版本号: 1.0.0 with python 3.6.1 报错内容: optimizer can only optimize Tensors, but one of the params is list 原因:在指定优化器的优化变量时,其必须是一个可迭代的参数对象或者是一个定义了优化组的字典[3],具体见[4]的操作。这个可迭代的参数对象一般可以是
list
。 解决方案:将所有需要优化的对象用list
进行包裹,如:
trained_vars = list(model.submodel_1.parameters()) +
list(model.submodel_2.parameters())
opt = torch.optim.SGD(trained_vars, lr=...)
注意到此时的trained_vars
是一个可迭代的list
,其中每个元素都是一个参数组。
CUDA相关
- 1 报错内容:RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch