當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.nn.RNNCellResidualWrapper用法及代碼示例


RNNCell 包裝器,可確保將單元輸入添加到輸出中。

繼承自:Module

用法

tf.nn.RNNCellResidualWrapper(
    *args, **kwargs
)

參數

  • cell RNNCell 的一個實例。
  • residual_fn (可選)將原始單元輸入和原始單元輸出映射到殘差網絡的實際單元輸出的函數。默認調用nest.map_structure on (lambda i, o:i + o),輸入和輸出。
  • **kwargs 基礎層的關鍵字參數字典。

屬性

  • activity_regularizer 該層輸出的可選正則化函數。
  • compute_dtype 層計算的 dtype。

    這相當於 Layer.dtype_policy.compute_dtype 。除非使用混合精度,否則這與 Layer.dtype 相同,即權重的 dtype。

    層會自動將其輸入轉換為計算 dtype,這會導致計算和輸出也位於計算 dtype 中。這是由 Layer.call 中的基礎層類完成的,因此如果實現自己的層,則不必插入這些轉換。

    compute_dtype 為 float16 或 bfloat16 以保持數值穩定性時,層通常會以更高的精度執行某些內部計算。在這種情況下,輸出通常仍然是 float16 或 bfloat16。

  • dtype 層權重的 dtype。

    這相當於 Layer.dtype_policy.variable_dtype 。除非使用混合精度,否則這與 Layer.compute_dtype 相同,即圖層計算的 dtype。

  • dtype_policy 與該層關聯的 dtype 策略。

    這是 tf.keras.mixed_precision.Policy 的一個實例。

  • dynamic 圖層是否動態(eager-only);在構造函數中設置。
  • input 檢索層的輸入張量。

    僅當該層隻有一個輸入時才適用,即如果它連接到一個傳入層。

  • input_spec InputSpec說明該層輸入格式的實例。

    創建圖層子類時,可以設置 self.input_spec 以使圖層在調用時運行輸入兼容性檢查。考慮 Conv2D 層:它隻能在秩為 4 的單個輸入張量上調用。因此,您可以在 __init__() 中設置:

    self.input_spec = tf.keras.layers.InputSpec(ndim=4)

    現在,如果您嘗試在不是 4 級的輸入上調用圖層(例如,形狀為 (2,) 的輸入,它將引發 nicely-formatted 錯誤:

    ValueError:Input 0 of layer conv2d is incompatible with the layer:
    expected ndim=4, found ndim=1. Full shape received:[2]

    可以通過input_spec 指定的輸入檢查包括:

    • 結構(例如,單個輸入、2 個輸入的列表等)
    • Shape
    • 排名(ndim)
    • Dtype

    有關詳細信息,請參閱tf.keras.layers.InputSpec

  • losses 使用添加的損失列表add_loss()API。

    訪問此屬性時會創建變量正則化張量,因此非常安全:訪問 tf.GradientTape 下的 losses 會將梯度傳播回相應的變量。

    class MyLayer(tf.keras.layers.Layer):
      def call(self, inputs):
        self.add_loss(tf.abs(tf.reduce_mean(inputs)))
        return inputs
    l = MyLayer()
    l(np.ones((10, 1)))
    l.losses
    [1.0]
    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.
    len(model.losses)
    0
    model.add_loss(tf.abs(tf.reduce_mean(x)))
    len(model.losses)
    1
    inputs = tf.keras.Input(shape=(10,))
    d = tf.keras.layers.Dense(10, kernel_initializer='ones')
    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))
    model.losses
    [<tf.Tensor:shape=(), dtype=float32, numpy=1.0>]
  • metrics 使用添加的指標列表add_metric()API。
    input = tf.keras.layers.Input(shape=(3,))
    d = tf.keras.layers.Dense(2)
    output = d(input)
    d.add_metric(tf.reduce_max(output), name='max')
    d.add_metric(tf.reduce_min(output), name='min')
    [m.name for m in d.metrics]
    ['max', 'min']
  • non_trainable_weights 該層跟蹤的所有不可訓練權重的列表。

    不可訓練的權重在訓練期間不會更新。它們預計將在 call() 中手動更新。

  • output 檢索層的輸出張量。

    僅當該層隻有一個輸出時才適用,即如果它連接到一個傳入層。

  • output_size
  • state_size
  • supports_masking 該層是否支持使用 compute_mask 計算掩碼。
  • trainable
  • trainable_weights 該層跟蹤的所有可訓練權重的列表。

    可訓練權重在訓練期間通過梯度下降進行更新。

  • variable_dtype Layer.dtype 的別名,權重的 dtype。
  • weights 返回所有層變量/權重的列表。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.nn.RNNCellResidualWrapper。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。