生成具有常量值的張量的初始化程序。
用法
tf.compat.v1.keras.initializers.Constant(
value=0, dtype=tf.dtypes.float32, verify_shape=False
)
參數
-
value
Python 標量、值列表或元組,或 N 維 numpy 數組。初始化變量的所有元素都將設置為value
參數中的相應值。 -
dtype
默認數據類型,如果在調用初始化程序時沒有提供dtype
參數,則使用該類型。 -
verify_shape
用於驗證value
形狀的布爾值。如果True
,如果value
的形狀與初始化張量的形狀不兼容,則初始化程序將拋出錯誤。
拋出
-
TypeError
如果輸入value
不是預期類型之一。
遷移到 TF2
警告:這個 API 是為 TensorFlow v1 設計的。繼續閱讀有關如何從該 API 遷移到本機 TensorFlow v2 等效項的詳細信息。見TensorFlow v1 到 TensorFlow v2 遷移指南有關如何遷移其餘代碼的說明。
雖然它是一個遺留 API 端點,但 tf.compat.v1.constant_initializer
與即刻執行和 tf.function
兼容。
要遷移到非舊版 TF2 API,請改用 tf.constant.initializer
。 tf.compat.v1.constant.initializer.init_()
中的 dtype
參數在 tf.constant.initializer.init_()
中不存在。但是,在這兩種情況下,您都可以在__call__()
中指定dtype
。
在 compat.v1
符號中,如果 verify_shape
設置為 True
,則在初始化具有與 value
不同形狀的變量時會引發異常。如果設置為False
, value
,則在必要時重新整形以初始化變量。僅當元素數量不同時才會引發異常。
TF2 不支持 verify_shape
參數。使用 tf.constant_initializer
相當於將 verify_shape
設置為 False
。
到 TF2 的結構映射
前:
value = [0, 1, 2, 3, 4, 5, 6, 7]
initializer = tf.compat.v1.constant_initializer(
value=value,
dtype=tf.float32,
verify_shape=False)
variable = tf.Variable(initializer(shape=[2, 4]))
後:
value = [0, 1, 2, 3, 4, 5, 6, 7]
initializer = tf.constant_initializer(value=value)
tf.Variable(initializer(shape=[2, 4], dtype=tf.float32))
如何映射參數
TF1 參數名稱 | TF2 參數名稱 | 注意 |
---|---|---|
value |
value |
在構造函數中 |
dtype |
dtype |
在__call__() 方法中 |
verify_shape |
不支持 | 相當於設置為False |
partition_info |
- | (TF1 中的 __call__ arg)不支持 |
使用示例之前和之後
前:
value = [1., 2., 3., 4.]
initializer = tf.compat.v1.constant_initializer(
value=value, dtype=tf.float32, verify_shape=True)
tf.Variable(initializer(shape=[2, 2])).numpy()
Traceback (most recent call last):
TypeError:Expected Tensor's shape:(2, 2), got (4,).
initializer = tf.compat.v1.constant_initializer(
value=value, dtype=tf.float32, verify_shape=False)
tf.Variable(initializer(shape=[2, 2])).numpy()
array([[1., 2.],
[3., 4.]], dtype=float32)
後:
value = [1., 2., 3., 4.]
initializer = tf.constant_initializer(value=value)
tf.Variable(initializer(shape=[2, 2], dtype=tf.float32)).numpy()
array([[1., 2.],
[3., 4.]], dtype=float32)
生成的張量由 dtype
類型的值填充,由新張量的所需 shape
後麵的參數 value
指定(參見下麵的示例)。
參數 value
可以是常量值,也可以是類型為 dtype
的值的列表。如果value
是一個列表,那麽列表的長度必須小於或等於所需張量形狀所隱含的元素數。如果value
中的元素總數小於張量形狀所需的元素數,則將使用value
中的最後一個元素來填充剩餘的條目。如果 value
中的元素總數大於張量形狀所需的元素數,則初始化程序將引發 ValueError
。
例子:
下麵的示例可以使用 numpy.ndarray 而不是 value
列表進行重寫,甚至可以重新整形,如 value
列表初始化下方的兩個注釋行所示。
value = [0, 1, 2, 3, 4, 5, 6, 7]
init = tf.compat.v1.constant_initializer(value)
# fitting shape
with tf.compat.v1.Session():
x = tf.compat.v1.get_variable('x', shape=[2, 4], initializer=init)
x.initializer.run()
print(x.eval())
[[0. 1. 2. 3.]
[4. 5. 6. 7.]]
# Larger shape
with tf.compat.v1.Session():
y = tf.compat.v1.get_variable('y', shape=[3, 4], initializer=init)
y.initializer.run()
print(y.eval())
[[0. 1. 2. 3.]
[4. 5. 6. 7.]
[7. 7. 7. 7.]]
# Smaller shape
with tf.compat.v1.Session():
z = tf.compat.v1.get_variable('z', shape=[2, 3], initializer=init)
Traceback (most recent call last):
ValueError:Too many elements provided. Needed at most 6, but received 8
# Shape verification
init_verify = tf.compat.v1.constant_initializer(value, verify_shape=True)
with tf.compat.v1.Session():
u = tf.compat.v1.get_variable('u', shape=[3, 4],
initializer=init_verify)
Traceback (most recent call last):
TypeError:Expected Tensor's shape:(3, 4), got (8,).
相關用法
- Python tf.compat.v1.keras.initializers.Constant.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.Ones.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.Zeros.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.Ones用法及代碼示例
- Python tf.compat.v1.keras.initializers.RandomNormal.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.glorot_uniform.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.lecun_uniform用法及代碼示例
- Python tf.compat.v1.keras.initializers.he_normal.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.Orthogonal.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.lecun_normal.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.TruncatedNormal用法及代碼示例
- Python tf.compat.v1.keras.initializers.RandomNormal用法及代碼示例
- Python tf.compat.v1.keras.initializers.he_uniform用法及代碼示例
- Python tf.compat.v1.keras.initializers.Identity.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.RandomUniform.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.VarianceScaling用法及代碼示例
- Python tf.compat.v1.keras.initializers.glorot_normal.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.lecun_normal用法及代碼示例
- Python tf.compat.v1.keras.initializers.he_uniform.from_config用法及代碼示例
- Python tf.compat.v1.keras.initializers.lecun_uniform.from_config用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.keras.initializers.Constant。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。