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}
(即 one-hot 編碼張量),形狀 = [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)