If the argument dtype is not specified, then the type is inferred from
the type of 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 arraya=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]])>
If dtype is specified the resulting tensor values are cast to the requested
dtype.
[null,null,["Last updated 2020-10-01 UTC."],[],[],null,["# tf.constant\n\n\u003cbr /\u003e\n\n|---------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|\n| [TensorFlow 1 version](/versions/r1.15/api_docs/python/tf/constant) | [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.1.0/tensorflow/python/framework/constant_op.py#L164-L258) |\n\nCreates a constant tensor from a tensor-like object. \n\n tf.constant(\n value, dtype=None, shape=None, name='Const'\n )\n\n| **Note:** All eager [`tf.Tensor`](../tf/Tensor) values are immutable (in contrast to [`tf.Variable`](../tf/Variable)). There is nothing especially *constant* about the value returned from [`tf.constant`](../tf/constant). This function it is not fundamentally different from [`tf.convert_to_tensor`](../tf/convert_to_tensor). The name [`tf.constant`](../tf/constant) comes from the symbolic APIs (like [`tf.data`](../tf/data) or keras functional models) where the `value` is embeded in a `Const` node in the [`tf.Graph`](../tf/Graph). [`tf.constant`](../tf/constant) is useful for asserting that the value can be embedded that way.\n\nIf the argument `dtype` is not specified, then the type is inferred from\nthe type of `value`. \n\n # Constant 1-D Tensor from a python list.\n tf.constant([1, 2, 3, 4, 5, 6])\n \u003ctf.Tensor: shape=(6,), dtype=int32,\n numpy=array([1, 2, 3, 4, 5, 6], dtype=int32)\u003e\n # Or a numpy array\n a = np.array([[1, 2, 3], [4, 5, 6]])\n tf.constant(a)\n \u003ctf.Tensor: shape=(2, 3), dtype=int64, numpy=\n array([[1, 2, 3],\n [4, 5, 6]])\u003e\n\nIf `dtype` is specified the resulting tensor values are cast to the requested\n`dtype`. \n\n tf.constant([1, 2, 3, 4, 5, 6], dtype=tf.float64)\n \u003ctf.Tensor: shape=(6,), dtype=float64,\n numpy=array([1., 2., 3., 4., 5., 6.])\u003e\n\nIf `shape` is set, the `value` is reshaped to match. Scalars are expanded to\nfill the `shape`: \n\n tf.constant(0, shape=(2, 3))\n \u003ctf.Tensor: shape=(2, 3), dtype=int32, numpy=\n array([[0, 0, 0],\n [0, 0, 0]], dtype=int32)\u003e\n tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])\n \u003ctf.Tensor: shape=(2, 3), dtype=int32, numpy=\n array([[1, 2, 3],\n [4, 5, 6]], dtype=int32)\u003e\n\n[`tf.constant`](../tf/constant) has no effect if an eager Tensor is passed as the `value`, it\neven transmits gradients: \n\n v = tf.Variable([0.0])\n with tf.GradientTape() as g:\n loss = tf.constant(v + v)\n g.gradient(loss, v).numpy()\n array([2.], dtype=float32)\n\nBut, since [`tf.constant`](../tf/constant) embeds the value in the [`tf.Graph`](../tf/Graph) this fails for\nsymbolic tensors: \n\n i = tf.keras.layers.Input(shape=[None, None])\n t = tf.constant(i)\n Traceback (most recent call last):\n\n ValueError: ...\n\n#### Related Ops:\n\n- [`tf.convert_to_tensor`](../tf/convert_to_tensor) is similar but:\n - It has no `shape` argument.\n - Symbolic tensors are allowed to pass through.\n\n i = tf.keras.layers.Input(shape=[None, None])\n t = tf.convert_to_tensor(i)\n \n- [`tf.fill`](../tf/fill): differs in a few ways:\n - [`tf.constant`](../tf/constant) supports arbitrary constants, not just uniform scalar Tensors like [`tf.fill`](../tf/fill).\n - [`tf.fill`](../tf/fill) creates an Op in the graph that is expanded at runtime, so it can efficiently represent large tensors.\n - Since [`tf.fill`](../tf/fill) does not embed the value, it can produce dynamically sized outputs.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|---------|----------------------------------------------------|\n| `value` | A constant value (or list) of output type `dtype`. |\n| `dtype` | The type of the elements of the resulting tensor. |\n| `shape` | Optional dimensions of resulting tensor. |\n| `name` | Optional name for the tensor. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A Constant Tensor. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|--------------|---------------------------------------------------|\n| `TypeError` | if shape is incorrectly specified or unsupported. |\n| `ValueError` | if called on a symbolic tensor. |\n\n\u003cbr /\u003e"]]