從 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。