pytorch报错:Calls into the C++ engine to run the backward pass but got: struct c10::Half != float可能原因有以下几点:
(1)labels标签和模型预测的pred矩阵类型没有匹配到,要改成一样的类型。
(2)在某个环节矩阵相乘的时候,一个为half类型,一个为float类型,从而得出一个混合进度的变量导致报错。
(3)模型的某个地方没有进行反向传播,或者是没有将其设置为没有梯度变化,这个需要自己捋一遍模型的整个过程。