生成具有常量值的张量的初始化程序。
用法
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。