nn.loss.CrossEntropyLoss的记录
收藏
!注意,与pytorch不同在paddle的损失计算中当labelsoft设置为FALSE时label的类型应设置为整形,在torch中支持float。设置为TRUE时应注意axis的设置。
不注意softlabel报错类型是:SystemError: (Fatal) Operator softmax_with_cross_entropy raises an struct paddle::PD_Exception exception.
The exception content is
:function "CrossEntropyWithSoftmaxCUDAKernel" is not implemented for data type float32
不改写axis报错类型是:ValueError: (InvalidArgument) Input(Logits) and Input(Label) should in same shape in dimensions except axis. [Hint: Expected logits_dims[i] == labels_dims[i], but received logits_dims[i]:5 != labels_dims[i]:512.] (at /paddle/paddle/fluid/operators/softmax_with_cross_entropy_op.cc:145)
0
收藏
请登录后评论
paddle的Dataset类的get_item返回值只能是ndarray,不能是tensor、string等其他任何类型
paddle的tensor转换ndarray时用x.numpy()即可,np.array(x)不行,会一直卡在这步
paddle模型参数是parambase类型,paddle.save, paddle.load只能对模型参数、优化器参数进行加载保存,如果保存ckpt字典,模型参数是字典中的一个值,会出问题,需要把模型参数转成ndarray;paddle.load加载的模型参数结果始终是ndarray;
代码模型加载文件参数: paddle用model.set_state_dict;torch用model.load_state_dict
特征复制:paddle.tile;torch.repeat
特征维度变换:paddle.transpose;torch.permute
torch.nn.CrossEntropyLoss
paddle.nn.CrossEntropyLoss 注意softlable和axis的设置以及lable与y的设置。