Hinge
classkeras.losses.Hinge(reduction="sum_over_batch_size", name="hinge", dtype=None)
计算 y_true
和 y_pred
之间的合页损失.
公式:
loss = maximum(1 - y_true * y_pred, 0)
y_true
的值应为 -1 或 1.如果提供了二进制(0 或 1)标签,我们将将其转换为 -1 或 1.
参数:
reduction: 应用于损失的归约类型.在几乎所有情况下,这应该是 "sum_over_batch_size"
.
支持的选项是 "sum"
、"sum_over_batch_size"
或 None
.
name: 损失实例的可选名称.
dtype: 损失计算的数据类型.默认为 None
,这意味着使用 keras.backend.floatx()
.keras.backend.floatx()
是 "float32"
,除非设置为不同的值
(通过 keras.backend.set_floatx()
).如果提供了 keras.DTypePolicy
,则将使用 compute_dtype
.
SquaredHinge
classkeras.losses.SquaredHinge(
reduction="sum_over_batch_size", name="squared_hinge", dtype=None
)
计算 y_true
和 y_pred
之间的平方合页损失.
公式:
loss = square(maximum(1 - y_true * y_pred, 0))
y_true
的值应为 -1 或 1.如果提供了二进制(0 或 1)标签,我们将将其转换为 -1 或 1.
参数:
reduction: 应用于损失的归约类型.在几乎所有情况下,这应该是 "sum_over_batch_size"
.
支持的选项是 "sum"
、"sum_over_batch_size"
或 None
.
name: 损失实例的可选名称.
dtype: 损失计算的数据类型.默认为 None
,这意味着使用 keras.backend.floatx()
.keras.backend.floatx()
是 "float32"
,除非设置为不同值
(通过 keras.backend.set_floatx()
).如果提供了 keras.DTypePolicy
,则将使用 compute_dtype
.
CategoricalHinge
classkeras.losses.CategoricalHinge(
reduction="sum_over_batch_size", name="categorical_hinge", dtype=None
)
计算 y_true
和 y_pred
之间的分类铰链损失.
公式:
loss = maximum(neg - pos + 1, 0)
其中 neg=maximum((1-y_true)*y_pred)
和 pos=sum(y_true*y_pred)
参数:
reduction: 应用于损失的归约类型.在几乎所有情况下,这应该是 "sum_over_batch_size"
.
支持的选项是 "sum"
、"sum_over_batch_size"
或 None
.
name: 损失实例的可选名称.
dtype: 损失计算的数据类型.默认为 None
,这意味着使用 keras.backend.floatx()
.keras.backend.floatx()
是 "float32"
,除非设置为不同的值
(通过 keras.backend.set_floatx()
).如果提供了 keras.DTypePolicy
,则将使用 compute_dtype
.
hinge
functionkeras.losses.hinge(y_true, y_pred)
计算 y_true
和 y_pred
之间的合页损失.
公式:
loss = mean(maximum(1 - y_true * y_pred, 0), axis=-1)
参数:
y_true: 真实值.y_true
的值应为 -1 或 1.如果提供了二进制(0 或 1)标签,
它们将被转换为 -1 或 1,形状为 [batch_size, d0, .. dN]
.
y_pred: 预测值,形状为 [batch_size, d0, .. dN]
.
返回:
合页损失值,形状为 [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
functionkeras.losses.squared_hinge(y_true, y_pred)
计算 y_true
和 y_pred
之间的平方合页损失.
公式:
loss = mean(square(maximum(1 - y_true * y_pred, 0)), axis=-1)
参数:
y_true: 真实值.y_true
的值应为 -1 或 1.如果提供了二进制(0 或 1)标签,
我们将将其转换为 -1 或 1,形状为 [batch_size, d0, .. dN]
.
y_pred: 预测值,形状为 [batch_size, d0, .. dN]
.
返回值:
平方合页损失值,形状为 [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
functionkeras.losses.categorical_hinge(y_true, y_pred)
计算 y_true
和 y_pred
之间的分类铰链损失.
公式:
loss = maximum(neg - pos + 1, 0)
其中 neg=maximum((1-y_true)*y_pred)
和 pos=sum(y_true*y_pred)
参数:
y_true: 真实值.y_true
的值应为 {-1, +1}
或 {0, 1}
(即一个 one-hot 编码的张量),
形状为 [batch_size, d0, .. dN]
.
y_pred: 预测值,形状为 [batch_size, d0, .. dN]
.
返回:
分类铰链损失值,形状为 [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)