pytorch中交叉熵

关于pytorch中交叉熵的使用,pytorch的交叉熵是其loss function的一种且包含了softmax的过程。

pytorch中交叉熵函数是nn.CrossEntropyLoss()。其参数包括:weight,size_averaged,reduce

weight参数通常默认值是0,如果你的训练样本很不均衡的话,可以设置其值。

size_averaged参数是设置是否取均值,默认是对bach取均值,若设置为False就是对bach求和,这两种情况下损失函数输出的是一个标量

reduce是表示是否size_averaged起作用,默认为True,size_averaged起作用。设置为False,size_averaged不起作用,不求和也不求均值,输出一个向量。

 

 

此外要注意:input是二维的数据类型为FloatTensor,对应numpy的float32。而target是一维的,且为LongTensor,对应numpy的int64,也就是说target里面是

整数,代表各个类别。eg,input是shape是(2,3)那么target应该为[a1,a2],其中a1,a2范围是0-3(不包括3)的整数。

计算原理:

我们举个栗子:input为[[1,2]],target是[1]。则:

loss=-input[1]+ln(e^input[0]+e^input[1])=-2+2.3133=0.3133

而当weight有值时计算公式是:

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值