2026a
# crossentropy
分类任务的交叉熵损失
函数库: TyDeepLearning
# 语法
loss = crossentropy(X, targets)
# 说明
loss = crossentropy(X, targets) 将权重应用于计算的损失值。 示例
使用此语法可以加权类、观测值、区域或输入的单个元素对计算损失值的贡献。 支持两种不同的目标值(target):
- 类别索引 (Int),取值范围为
其中 为类别数,交叉熵损失公式如下:
其中,
- 类别概率 (Float),用于目标值为多个类别标签的情况。交叉熵损失公式如下:
其中,
# 示例
类别索引标签分类的交叉熵计算
计算交叉熵损失。
using TyDeepLearning
using Random
set_backend(:mindspore)
numclass = 5
numobseravation = 3
Random.seed!(1234)
Y = randn(Float32, (3, 5))
targets = Int32[1, 0, 4]
output = TyDeepLearning.crossentropy(Y, targets)
print(output)
1.6352946
类别概率标签分类的交叉熵计算
计算交叉熵损失。
using TyDeepLearning
using Random
set_backend(:mindspore)
numclass = 10
numobseravation = 12
Random.seed!(1234)
Y = rand(Float32, (numobseravation, numclass))
targets = rand(Float32, (numobseravation, numclass))
output = TyDeepLearning.crossentropy(Y, targets)
print(output)
10.658039
# 输入参数
X-输入数据数组
数据类型为 Float 的输入。任意维度的数组。
数据类型: Float16 | Float32 | Float64
targets-目标值向量
输入目标值。若目标值为类别索引,则shape为
数据类型: Float16 | Float32 | Float64
# 输出参数
loss-交叉熵损失数组
交叉熵损失,作为未格式化的数组返回。输出损失是一个无格式的数组,其基础数据类型与输入 Y 相同。
数据类型: Float16 | Float32 | Float64