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


Python tf.keras.initializers.VarianceScaling用法及代碼示例


初始化器能夠使其規模適應權重張量的形狀。

繼承自:Initializer

用法

tf.keras.initializers.VarianceScaling(
    scale=1.0, mode='fan_in', distribution='truncated_normal',
    seed=None
)

參數

  • scale 比例因子(正浮點數)。
  • mode "fan_in"、"fan_out"、"fan_avg" 之一。
  • distribution 隨機分布使用。 "truncated_normal"、"untruncated_normal" 和 "uniform" 之一。
  • seed 一個 Python 整數。用於創建隨機種子。有關行為,請參見tf.compat.v1.set_random_seed。請注意,種子初始化器不會在多次調用中產生相同的隨機值,但多個初始化器在使用相同的種子值構造時會產生相同的序列。

也可通過快捷函數 tf.keras.initializers.variance_scaling 獲得。

使用 distribution="truncated_normal" or "untruncated_normal" ,樣本是從均值為零和標準偏差(截斷後,如果使用)的截斷/未截斷正態分布中抽取的 stddev = sqrt(scale / n) ,其中 n 是:

  • 權重張量中的輸入單元數,如果 mode="fan_in"
  • 輸出單元的數量,如果 mode="fan_out"
  • 輸入和輸出單元數量的平均值,如果 mode="fan_avg"

使用 distribution="uniform" ,樣本是從 [-limit, limit] 內的均勻分布中抽取的,其中 limit = sqrt(3 * scale / n)

例子:

# Standalone usage:
initializer = tf.keras.initializers.VarianceScaling(
scale=0.1, mode='fan_in', distribution='uniform')
values = initializer(shape=(2, 2))
# Usage in a Keras layer:
initializer = tf.keras.initializers.VarianceScaling(
scale=0.1, mode='fan_in', distribution='uniform')
layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)

相關用法


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