RandomNormal
類別tf_keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=None)
產生具有常態分佈張量的初始化器。
也可以透過快捷函數 tf.keras.initializers.random_normal
取得。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.RandomNormal(mean=0., stddev=1.)
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.RandomNormal(mean=0., stddev=1.)
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
RandomUniform
類別tf_keras.initializers.RandomUniform(minval=-0.05, maxval=0.05, seed=None)
產生具有均勻分佈張量的初始化器。
也可以透過快捷函數 tf.keras.initializers.random_uniform
取得。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.RandomUniform(minval=0., maxval=1.)
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.RandomUniform(minval=0., maxval=1.)
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
TruncatedNormal
類別tf_keras.initializers.TruncatedNormal(mean=0.0, stddev=0.05, seed=None)
產生截斷常態分佈的初始化器。
也可以透過快捷函數 tf.keras.initializers.truncated_normal
取得。
產生值的類似於 tf.keras.initializers.RandomNormal
初始化器的值,只是與平均值的標準差超過兩倍的值會被捨棄並重新繪製。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.TruncatedNormal(mean=0., stddev=1.)
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.TruncatedNormal(mean=0., stddev=1.)
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
Zeros
類別tf_keras.initializers.Zeros()
產生初始化為 0 的張量的初始化器。
也可以透過快捷函數 tf.keras.initializers.zeros
取得。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.Zeros()
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.Zeros()
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
Ones
類別tf_keras.initializers.Ones()
產生初始化為 1 的張量的初始化器。
也可以透過快捷函數 tf.keras.initializers.ones
取得。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.Ones()
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.Ones()
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
GlorotNormal
類別tf_keras.initializers.GlorotNormal(seed=None)
Glorot 常態初始化器,也稱為 Xavier 常態初始化器。
也可以透過快捷函數 tf.keras.initializers.glorot_normal
取得。
從以 0 為中心的截斷常態分佈中抽取樣本,其中 stddev = sqrt(2 / (fan_in + fan_out))
,其中 fan_in
是權重張量中的輸入單元數,而 fan_out
是權重張量中的輸出單元數。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.GlorotNormal()
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.GlorotNormal()
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
參考文獻
GlorotUniform
類別tf_keras.initializers.GlorotUniform(seed=None)
Glorot 均勻初始化器,也稱為 Xavier 均勻初始化器。
也可以透過快捷函數 tf.keras.initializers.glorot_uniform
取得。
從 [-limit, limit]
範圍內的均勻分佈中抽取樣本,其中 limit = sqrt(6 / (fan_in + fan_out))
(fan_in
是權重張量中的輸入單元數,而 fan_out
是輸出單元數)。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.GlorotUniform()
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.GlorotUniform()
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
參考文獻
HeNormal
類別tf_keras.initializers.HeNormal(seed=None)
He 常態初始化器。
也可以透過快捷函數 tf.keras.initializers.he_normal
取得。
它從以 0 為中心的截斷常態分佈中抽取樣本,其中 stddev = sqrt(2 / fan_in)
,其中 fan_in
是權重張量中的輸入單元數。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.HeNormal()
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.HeNormal()
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
參考文獻
HeUniform
類別tf_keras.initializers.HeUniform(seed=None)
He 均勻變異數縮放初始化器。
也可以透過快捷函數 tf.keras.initializers.he_uniform
取得。
從 [-limit, limit]
範圍內的均勻分佈中抽取樣本,其中 limit = sqrt(6 / fan_in)
(fan_in
是權重張量中的輸入單元數)。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.HeUniform()
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.HeUniform()
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
參考文獻
Identity
類別tf_keras.initializers.Identity(gain=1.0)
產生單位矩陣的初始化器。
也可以透過快捷函數 tf.keras.initializers.identity
取得。
僅可用於產生 2D 矩陣。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.Identity()
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.Identity()
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
Orthogonal
類別tf_keras.initializers.Orthogonal(gain=1.0, seed=None)
產生正交矩陣的初始化器。
也可以透過快捷函數 tf.keras.initializers.orthogonal
取得。
如果要初始化的張量形狀是二維的,則會使用從常態分佈中抽取的隨機數矩陣的 QR 分解獲得的正交矩陣來初始化。如果矩陣的行數少於列數,則輸出將具有正交的行。否則,輸出將具有正交的列。
如果要初始化的張量形狀是高於二維的,則會初始化形狀為 (shape[0] * ... * shape[n - 2], shape[n - 1])
的矩陣,其中 n
是形狀向量的長度。然後將矩陣重新塑形以產生所需形狀的張量。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.Orthogonal()
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.Orthogonal()
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
參考文獻
Constant
類別tf_keras.initializers.Constant(value=0)
產生具有常數值的張量的初始化器。
也可以透過快捷函數 tf.keras.initializers.constant
取得。
僅允許使用純量值。提供的常數值必須可以在呼叫初始化器時轉換為請求的 dtype。
範例
>>> # Standalone usage:
>>> initializer = tf.keras.initializers.Constant(3.)
>>> values = initializer(shape=(2, 2))
>>> # Usage in a TF-Keras layer:
>>> initializer = tf.keras.initializers.Constant(3.)
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
VarianceScaling
類別tf_keras.initializers.VarianceScaling(
scale=1.0, mode="fan_in", distribution="truncated_normal", seed=None
)
使其縮放比例適應其輸入張量形狀的初始化器。
也可以透過快捷函數 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 TF-Keras layer:
>>> initializer = tf.keras.initializers.VarianceScaling(
... scale=0.1, mode='fan_in', distribution='uniform')
>>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)
參數
"fan_in"
、"fan_out"
、"fan_avg"
其中之一。"truncated_normal"
、"untruncated_normal"
或 "uniform"
其中之一。