交叉熵:计算交叉熵损失函数nn.CrossEntropyLoss()

首先要提出的问题是。。。什么是损失函数?干什么的(功能)?类型有哪些?

1.什么是损失函数?

        损失函数(loss function)或 代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在应用中,损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。例如在统计学和机器学习中被用于模型的(parametric estimation) ,在宏观经济学中被用于风险管理(risk mangement)和决策,在控制理论中被应用于最优控制理论(optimal control theory) 。(百度查找结果。。。)

        没看明白,重头再来,come on!!!

        (自我理解)举个例子:比如说猜你体重,首先我看没看你,就说了200斤(相当于初始化,可能在网络没这么大),然后你说

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
深度学习中,交叉熵(Cross-entropy)是一种常用的损失函数,用于测量两个概率分布之间的差异。在PyTorch中,`nn.CrossEntropyLoss`是一个用于计算交叉熵损失的类。 `nn.CrossEntropyLoss`通常用于多分类问题中,其中模型需要将输入分为多个类别中的一个。它将模型的输出视为一个概率分布,使用交叉熵损失来衡量模型输出与真实标签之间的差异。具体来说,`nn.CrossEntropyLoss`的输入需要包含两个部分:模型的输出和真实标签。 下面是一个示例代码: ```python import torch import torch.nn as nn import torch.optim as optim # 构造模拟数据 x = torch.randn(10, 5) # 10个样本,每个样本5个特征 y = torch.randint(5, (10,)) # 10个样本的真实标签,5个类别 # 定义模型 model = nn.Linear(5, 5) # 5个特征输入,5个类别输出 # 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(model.parameters(), lr=0.1) # 训练模型 for epoch in range(10): optimizer.zero_grad() output = model(x) loss = criterion(output, y) loss.backward() optimizer.step() print("Epoch {}, loss: {:.4f}".format(epoch, loss.item())) ``` 这段代码中,我们首先使用`torch.randn()`和`torch.randint()`构造了一个模拟数据集,其中`x`代表输入特征,`y`代表真实标签。然后,我们使用`nn.Linear()`定义了一个简单的线性模型,输入特征有5个,输出类别有5个。接着,我们使用`nn.CrossEntropyLoss()`定义了一个交叉熵损失函数,并使用`optim.SGD()`定义了一个随机梯度下降优化器。 最后,我们进行了10次迭代训练,每次迭代都计算模型输出和真实标签之间的交叉熵损失,并进行反向传播和梯度更新。在输出结果中,我们可以看到每次迭代的损失值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值