从 tensor-like 对象创建一个常量张量。
用法
tf.constant(
value, dtype=None, shape=None, name='Const'
)
参数
-
value
输出类型为dtype
的常量值(或列表)。 -
dtype
结果张量的元素类型。 -
shape
结果张量的可选尺寸。 -
name
张量的可选名称。
返回
- 一个常数张量。
抛出
-
TypeError
如果形状指定不正确或不受支持。 -
ValueError
如果调用符号张量。
注意:所有即刻tf.Tensor值是不可变的(与tf.Variable)。没有什么特别的常量关于返回的值tf.constant.该函数与tf.convert_to_tensor.名字tf.constant来自value
被嵌入一个Const
中的节点tf.Graph.tf.constant对于断言可以以这种方式嵌入值很有用。
如果未指定参数 dtype
,则从 value
的类型推断类型。
# Constant 1-D Tensor from a python list.
tf.constant([1, 2, 3, 4, 5, 6])
<tf.Tensor:shape=(6,), dtype=int32,
numpy=array([1, 2, 3, 4, 5, 6], dtype=int32)>
# Or a numpy array
a = np.array([[1, 2, 3], [4, 5, 6]])
tf.constant(a)
<tf.Tensor:shape=(2, 3), dtype=int64, numpy=
array([[1, 2, 3],
[4, 5, 6]])>
如果指定了 dtype
,则生成的张量值将转换为请求的 dtype
。
tf.constant([1, 2, 3, 4, 5, 6], dtype=tf.float64)
<tf.Tensor:shape=(6,), dtype=float64,
numpy=array([1., 2., 3., 4., 5., 6.])>
如果设置了shape
,则value
被重新整形以匹配。标量被扩展以填充 shape
:
tf.constant(0, shape=(2, 3))
<tf.Tensor:shape=(2, 3), dtype=int32, numpy=
array([[0, 0, 0],
[0, 0, 0]], dtype=int32)>
tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])
<tf.Tensor:shape=(2, 3), dtype=int32, numpy=
array([[1, 2, 3],
[4, 5, 6]], dtype=int32)>
如果一个 Eager Tensor 作为 value
传递,tf.constant
无效,它甚至传输梯度:
v = tf.Variable([0.0])
with tf.GradientTape() as g:
loss = tf.constant(v + v)
g.gradient(loss, v).numpy()
array([2.], dtype=float32)
但是,由于 tf.constant
将值嵌入到 tf.Graph
中,因此符号张量会失败:
with tf.compat.v1.Graph().as_default():
i = tf.compat.v1.placeholder(shape=[None, None], dtype=tf.float32)
t = tf.constant(i)
Traceback (most recent call last):
TypeError:...
tf.constant
将在当前设备上创建张量。已经是张量的输入保持其位置不变。
相关操作:
- tf.convert_to_tensor是相似的,但是:
- 它没有
shape
参数。 - 允许符号张量通过。
- 它没有
with tf.compat.v1.Graph().as_default():
i = tf.compat.v1.placeholder(shape=[None, None], dtype=tf.float32)
t = tf.convert_to_tensor(i)
- tf.fill:在几个方面有所不同:
tf.constant
支持任意常量,而不仅仅是像tf.fill
这样的统一标量张量。tf.fill
在图中创建一个在运行时扩展的 Op,因此它可以有效地表示大张量。- 由于
tf.fill
没有嵌入值,它可以产生动态大小的输出。
相关用法
- Python tf.constant_initializer.from_config用法及代码示例
- Python tf.constant_initializer用法及代码示例
- Python tf.config.list_logical_devices用法及代码示例
- Python tf.config.experimental.get_memory_usage用法及代码示例
- Python tf.config.list_physical_devices用法及代码示例
- Python tf.config.get_logical_device_configuration用法及代码示例
- Python tf.config.experimental.get_memory_info用法及代码示例
- Python tf.concat用法及代码示例
- Python tf.config.run_functions_eagerly用法及代码示例
- Python tf.config.experimental.enable_tensor_float_32_execution用法及代码示例
- Python tf.convert_to_tensor用法及代码示例
- Python tf.config.experimental_connect_to_cluster用法及代码示例
- Python tf.config.experimental.set_memory_growth用法及代码示例
- Python tf.config.experimental_connect_to_host用法及代码示例
- Python tf.config.set_visible_devices用法及代码示例
- Python tf.config.set_logical_device_configuration用法及代码示例
- Python tf.config.experimental.enable_op_determinism用法及代码示例
- Python tf.config.get_visible_devices用法及代码示例
- Python tf.config.experimental.get_device_details用法及代码示例
- Python tf.config.experimental.ClusterDeviceFilters用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.constant。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。