Esta página foi traduzida pela API Cloud Translation.
Switch to English

tf.constant

TensorFlow 1 versão Ver fonte no GitHub

Cria um tensor constante a partir de um objecto tensor semelhante.

Usado nos cadernos

Usado na guia Usado nos tutoriais

Se o argumento dtype não for especificado, o tipo é inferido do tipo de 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]])>

Se dtype é especificado os valores tensor resultantes são lançados ao solicitado 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.])>

Se shape é definida, o value é reformulado para corresponder. Escalares são expandidas para preencher a 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)>

tf.constant tem nenhum efeito se um tensor ansioso é transmitido como o value , ainda transmite gradientes:

v = tf.Variable([0.0])
with tf.GradientTape() as g:
    loss = tf.constant(v + v)
g.gradient(loss, v).numpy()
array([2.], dtype=float32)

Mas, uma vez tf.constant incorpora o valor no tf.Graph este falhar por tensores simbólicos:

i = tf.keras.layers.Input(shape=[None, None])
t = tf.constant(i)
Traceback (most recent call last):

NotImplementedError: ...

tf.constant sempre criará CPU tensores (host). A fim de criar tensores em outros dispositivos, utilize tf.identity . (Se o value é um tensor ansioso, no entanto, o tensor será devolvido não modificada tal como mencionado acima).

  • tf.convert_to_tensor é semelhante, mas:
    • Ele não tem shape argumento.
    • tensores simbólicas são autorizados a passar através.
    i = tf.keras.layers.Input(shape=[None, None])
    t = tf.convert_to_tensor(i)
        
  • tf.fill : difere em algumas maneiras:
    • tf.constant suportes arbitrário constantes, não apenas tensores escalares uniformes como tf.fill .
    • tf.fill cria um Op no gráfico que é expandido em tempo de execução, de modo que pode eficientemente representar grandes tensores.
    • Desde tf.fill não incorporar o valor, ele pode produzir saídas de tamanho dinamicamente.

value Um valor constante (ou lista) do tipo de saída dtype .
dtype O tipo dos elementos do tensor resultante.
shape dimensões de opcionais resultante tensor.
name nome opcional para o tensor.

A constante Tensor.

TypeError se forma de forma incorrecta é especificado ou não suportado.
ValueError se for chamado em um tensor simbólico.