在使用PyTorch进行深度学习开发时,很多开发者可能会遇到这样一个错误:TypeError:cannot assign torch.FloatTensor as parameter weight (torch.nn.Parameter or None expected)
。这个错误通常发生在我们试图直接将一个普通张量赋值给模型参数的权重时。
PyTorch的模型参数期望的是一个torch.nn.Parameter
对象或者None
,而不是一个普通的张量。当我们尝试将一个普通张量直接赋值给模型参数的权重时,就会触发这个TypeError
。
解决方法有两个:
(1)使用torch.nn.Parameter
包装普通张量(推荐使用)
(2)将普通张量赋值给weight.data