做网站的费用如何入账建设网站报告
做网站的费用如何入账,建设网站报告,哪些网站可以做移动端模板,外贸网站建设 评价该标准计算输入 logits 和目标之间的交叉熵损失。
代码实战
该损失函数结合了nn.LogSoftmax()和nn.NLLLoss()两个函数。它在做分类#xff08;具体几类#xff09;训练的时候是非常有用的。在训练过程中#xff0c;对于每个类分配权值#xff0c;可选的参数权值应该是一个…该标准计算输入 logits 和目标之间的交叉熵损失。
代码实战
该损失函数结合了nn.LogSoftmax()和nn.NLLLoss()两个函数。它在做分类具体几类训练的时候是非常有用的。在训练过程中对于每个类分配权值可选的参数权值应该是一个1D张量。当你有一个不平衡的训练集时这是是非常有用的。那么针对这个函数下面将做详细的介绍。
import torch
import torch.nn as nn
x_inputtorch.randn(3,3)#随机生成输入
print(x_input:\n,x_input)
y_targettorch.tensor([1,2,0])#设置输出具体值 print(y_target\n,y_target)#计算输入softmax此时可以看到每一行加到一起结果都是1
softmax_funcnn.Softmax(dim1)
soft_outputsoftmax_func(x_input)
print(soft_output:\n,soft_output)#在softmax的基础上取log
log_outputtorch.log(soft_output)
print(log_output:\n,log_output)#对比softmax与log的结合与nn.LogSoftmaxloss(负对数似然损失)的输出结果发现两者是一致的。
logsoftmax_funcnn.LogSoftmax(dim1)
logsoftmax_outputlogsoftmax_func(x_input)
print(logsoftmax_output:\n,logsoftmax_output)#pytorch中关于NLLLoss的默认参数配置为reducetionTrue、size_averageTrue
nllloss_funcnn.NLLLoss()
nlloss_outputnllloss_func(logsoftmax_output,y_target)
print(nlloss_output:\n,nlloss_output)#直接使用pytorch中的loss_funcnn.CrossEntropyLoss()看与经过NLLLoss的计算是不是一样
crossentropylossnn.CrossEntropyLoss()
crossentropyloss_outputcrossentropyloss(x_input,y_target)
print(crossentropyloss_output:\n,crossentropyloss_output)
最后计算得到的结果为 x_input:tensor([[ 2.8883, 0.1760, 1.0774],[ 1.1216, -0.0562, 0.0660],[-1.3939, -0.0967, 0.5853]])
y_targettensor([1, 2, 0])
soft_output:tensor([[0.8131, 0.0540, 0.1329],[0.6039, 0.1860, 0.2102],[0.0841, 0.3076, 0.6083]])
log_output:tensor([[-0.2069, -2.9192, -2.0178],[-0.5044, -1.6822, -1.5599],[-2.4762, -1.1790, -0.4970]])
logsoftmax_output:tensor([[-0.2069, -2.9192, -2.0178],[-0.5044, -1.6822, -1.5599],[-2.4762, -1.1790, -0.4970]])
nlloss_output:tensor(2.3185)
crossentropyloss_output:tensor(2.3185) 通过上面的结果可以看出直接使用pytorch中的loss_funcnn.CrossEntropyLoss()计算得到的结果与softmax-log-NLLLoss计算得到的结果是一致的。
nn.CrossEntropyLoss接受的都是logits和标签值
是的nn.CrossEntropyLoss函数通常接受Logits和标签值作为输入。在PyTorch中nn.CrossEntropyLoss是一种常用的损失函数用于多分类问题。
具体地CrossEntropyLoss函数将Logits作为模型的输出并根据Logits和对应的标签值计算损失。它首先应用Softmax函数将Logits转换为概率分布然后计算预测概率分布与真实标签之间的交叉熵损失。
在使用CrossEntropyLoss函数时通常需要将模型的输出Logits和对应的真实标签传递给该函数。函数内部会自动进行Logits的Softmax转换和交叉熵损失的计算。最终该函数返回表示损失的标量值可以用于模型的优化和训练过程。
因此当使用nn.CrossEntropyLoss函数时通常将Logits作为模型的输出并将对应的真实标签作为目标值传递给该函数。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88446.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!