Hinge
类keras.losses.Hinge(reduction="sum_over_batch_size", name="hinge", dtype=None)
计算y_true
和y_pred
之间的 Hinge 损失。
公式
loss = maximum(1 - y_true * y_pred, 0)
预期y_true
值为 -1 或 1。如果提供二进制(0 或 1)标签,我们将将其转换为 -1 或 1。
参数
"sum_over_batch_size"
。支持的选项包括"sum"
、"sum_over_batch_size"
、"mean"
、"mean_with_sample_weight"
或None
。"sum"
对损失进行求和,"sum_over_batch_size"
和"mean"
对损失进行求和并除以样本大小,而"mean_with_sample_weight"
对损失进行求和并除以样本权重的总和。"none"
和None
不执行任何聚合。默认为"sum_over_batch_size"
。None
,这意味着使用keras.backend.floatx()
。keras.backend.floatx()
为"float32"
,除非设置为不同的值(通过keras.backend.set_floatx()
)。如果提供了keras.DTypePolicy
,则将使用compute_dtype
。SquaredHinge
类keras.losses.SquaredHinge(
reduction="sum_over_batch_size", name="squared_hinge", dtype=None
)
计算y_true
和y_pred
之间的平方 Hinge 损失。
公式
loss = square(maximum(1 - y_true * y_pred, 0))
预期y_true
值为 -1 或 1。如果提供二进制(0 或 1)标签,我们将将其转换为 -1 或 1。
参数
"sum_over_batch_size"
。支持的选项包括"sum"
、"sum_over_batch_size"
、"mean"
、"mean_with_sample_weight"
或None
。"sum"
对损失进行求和,"sum_over_batch_size"
和"mean"
对损失进行求和并除以样本大小,而"mean_with_sample_weight"
对损失进行求和并除以样本权重的总和。"none"
和None
不执行任何聚合。默认为"sum_over_batch_size"
。None
,这意味着使用keras.backend.floatx()
。keras.backend.floatx()
为"float32"
,除非设置为不同的值(通过keras.backend.set_floatx()
)。如果提供了keras.DTypePolicy
,则将使用compute_dtype
。CategoricalHinge
类keras.losses.CategoricalHinge(
reduction="sum_over_batch_size", name="categorical_hinge", dtype=None
)
计算y_true
和y_pred
之间的分类 Hinge 损失。
公式
loss = maximum(neg - pos + 1, 0)
其中neg=maximum((1-y_true)*y_pred)
且pos=sum(y_true*y_pred)
参数
"sum_over_batch_size"
。支持的选项包括"sum"
、"sum_over_batch_size"
、"mean"
、"mean_with_sample_weight"
或None
。"sum"
对损失进行求和,"sum_over_batch_size"
和"mean"
对损失进行求和并除以样本大小,而"mean_with_sample_weight"
对损失进行求和并除以样本权重的总和。"none"
和None
不执行任何聚合。默认为"sum_over_batch_size"
。None
,这意味着使用keras.backend.floatx()
。keras.backend.floatx()
为"float32"
,除非设置为不同的值(通过keras.backend.set_floatx()
)。如果提供了keras.DTypePolicy
,则将使用compute_dtype
。hinge
函数keras.losses.hinge(y_true, y_pred)
计算y_true
和y_pred
之间的 Hinge 损失。
公式
loss = mean(maximum(1 - y_true * y_pred, 0), axis=-1)
参数
y_true
值为 -1 或 1。如果提供二进制(0 或 1)标签,则将其转换为 -1 或 1,形状为[batch_size, d0, .. dN]
。[batch_size, d0, .. dN]
。返回值
Hinge 损失值,形状为[batch_size, d0, .. dN-1]
。
示例
>>> y_true = np.random.choice([-1, 1], size=(2, 3))
>>> y_pred = np.random.random(size=(2, 3))
>>> loss = keras.losses.hinge(y_true, y_pred)
squared_hinge
函数keras.losses.squared_hinge(y_true, y_pred)
计算y_true
和y_pred
之间的平方 Hinge 损失。
公式
loss = mean(square(maximum(1 - y_true * y_pred, 0)), axis=-1)
参数
y_true
值为 -1 或 1。如果提供二进制(0 或 1)标签,则将其转换为 -1 或 1,形状为[batch_size, d0, .. dN]
。[batch_size, d0, .. dN]
。返回值
平方 Hinge 损失值,形状为[batch_size, d0, .. dN-1]
。
示例
>>> y_true = np.random.choice([-1, 1], size=(2, 3))
>>> y_pred = np.random.random(size=(2, 3))
>>> loss = keras.losses.squared_hinge(y_true, y_pred)
categorical_hinge
函数keras.losses.categorical_hinge(y_true, y_pred)
计算y_true
和y_pred
之间的分类 Hinge 损失。
公式
loss = maximum(neg - pos + 1, 0)
其中neg=maximum((1-y_true)*y_pred)
且pos=sum(y_true*y_pred)
参数
y_true
值为{-1, +1}
或{0, 1}
(即,一个独热编码张量),形状为[batch_size, d0, .. dN]
。[batch_size, d0, .. dN]
。返回值
分类 Hinge 损失值,形状为[batch_size, d0, .. dN-1]
。
示例
>>> y_true = np.random.randint(0, 3, size=(2,))
>>> y_true = np.eye(np.max(y_true) + 1)[y_true]
>>> y_pred = np.random.random(size=(2, 3))
>>> loss = keras.losses.categorical_hinge(y_true, y_pred)