用法
add_loss(
losses, **kwargs
)
參數
-
losses
損失張量,或張量列表/元組。除了張量,損失也可能是創建損失張量的zero-argument callables。 -
**kwargs
用於向後兼容的附加關鍵字參數。接受的值:輸入 - 已棄用,將自動推斷。
添加損失張量,可能取決於層輸入。
一些損失(例如,活動正則化損失)可能取決於調用層時傳遞的輸入。因此,當在不同的輸入 a
和 b
上重用同一層時,layer.losses
中的一些條目可能依賴於 a
和一些依賴於 b
。此方法自動跟蹤依賴關係。
此方法可以在子類層或模型的call
函數中使用,在這種情況下,losses
應該是張量或張量列表。
例子:
class MyLayer(tf.keras.layers.Layer):
def call(self, inputs):
self.add_loss(tf.abs(tf.reduce_mean(inputs)))
return inputs
該方法也可以在構造過程中直接在函數模型上調用。在這種情況下,傳遞給此模型的任何損失張量都必須是象征性的,並且能夠追溯到模型的 Input
s。這些損失成為模型拓撲的一部分,並在 get_config
中進行跟蹤。
例子:
inputs = tf.keras.Input(shape=(10,))
x = tf.keras.layers.Dense(10)(inputs)
outputs = tf.keras.layers.Dense(1)(x)
model = tf.keras.Model(inputs, outputs)
# Activity regularization.
model.add_loss(tf.abs(tf.reduce_mean(x)))
如果您的損失不是這種情況(例如,如果您的損失引用了模型層之一的 Variable
),您可以將損失包裝在 zero-argument lambda 中。這些損失不會作為模型拓撲的一部分進行跟蹤,因為它們無法序列化。
例子:
inputs = tf.keras.Input(shape=(10,))
d = tf.keras.layers.Dense(10)
x = d(inputs)
outputs = tf.keras.layers.Dense(1)(x)
model = tf.keras.Model(inputs, outputs)
# Weight regularization.
model.add_loss(lambda:tf.reduce_mean(d.kernel))
相關用法
- Python tf.keras.layers.Layer.add_metric用法及代碼示例
- Python tf.keras.layers.Layer.set_weights用法及代碼示例
- Python tf.keras.layers.Layer.get_weights用法及代碼示例
- Python tf.keras.layers.LayerNormalization用法及代碼示例
- Python tf.keras.layers.Layer用法及代碼示例
- Python tf.keras.layers.Lambda用法及代碼示例
- Python tf.keras.layers.LocallyConnected1D用法及代碼示例
- Python tf.keras.layers.LSTMCell用法及代碼示例
- Python tf.keras.layers.LSTM用法及代碼示例
- Python tf.keras.layers.LeakyReLU用法及代碼示例
- Python tf.keras.layers.LocallyConnected2D用法及代碼示例
- Python tf.keras.layers.InputLayer用法及代碼示例
- Python tf.keras.layers.serialize用法及代碼示例
- Python tf.keras.layers.Dropout用法及代碼示例
- Python tf.keras.layers.maximum用法及代碼示例
- Python tf.keras.layers.Conv2D用法及代碼示例
- Python tf.keras.layers.RepeatVector用法及代碼示例
- Python tf.keras.layers.Multiply用法及代碼示例
- Python tf.keras.layers.Activation用法及代碼示例
- Python tf.keras.layers.Conv1D用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.layers.Layer.add_loss。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。