nn.BCELoss()该如何使用?
时间: 2024-05-12 14:15:48 浏览: 191
细数nn.BCELoss与nn.CrossEntropyLoss的区别
5星 · 资源好评率100%
`nn.BCELoss()`是用于二分类任务的损失函数,它可以用于计算二分类问题中的交叉熵损失。下面是一个使用`nn.BCELoss()`的例子:
```python
import torch
import torch.nn as nn
# 定义模型和输入
model = nn.Linear(4, 1)
input = torch.randn(2, 4)
# 定义标签,注意标签必须是float类型
target = torch.tensor([[0.0], [1.0]])
# 定义损失函数
criterion = nn.BCELoss()
# 计算损失
output = model(input)
loss = criterion(output, target)
print(loss)
```
在这个例子中,我们定义了一个线性模型`model`和一个输入张量`input`,其维度为`(2, 4)`,表示有2个样本,每个样本有4个特征。我们还定义了一个目标张量`target`,其维度为`(2, 1)`,表示有2个样本,每个样本的目标标签是0或1。我们将损失函数定义为`nn.BCELoss()`,并将模型的输出和目标标签作为参数传递给损失函数。最后,我们计算得到的损失值为一个标量。
阅读全文