Cette page a été traduite par l'API Cloud Translation.
Switch to English

tf.constant

plus par

Tensorflow 1 Version Voir la source sur GitHub

Crée un tenseur constant à partir d'un objet de type tenseur.

Utilisé dans les ordinateurs portables

Utilisé dans le guide Utilisé dans les tutoriels

Si l'argument dtype n'est pas spécifié, le type est déduit du type 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]])>

Si dtype est spécifié les valeurs tenseur résultantes sont exprimés à la demande 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.])>

Si la shape est définie, la value est remodelée de match. Scalaires sont étendus pour remplir la 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 n'a aucun effet si un tenseur avide est transmise en tant que value , il transmet même gradients:

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

Mais, depuis tf.constant Intègre la valeur dans le tf.Graph cela échoue pour tenseurs symboliques:

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

NotImplementedError: ...

tf.constant toujours créer CPU (hôte) tenseurs. Afin de créer tenseurs sur d' autres appareils, utilisez tf.identity . (Si la value est un Tensor avide, cependant, le tenseur sera retourné non modifié comme indiqué ci - dessus.)

  • tf.convert_to_tensor est similaire , mais:
    • Il n'a pas de shape argument.
    • tenseurs symboliques sont autorisés à passer à travers.
    i = tf.keras.layers.Input(shape=[None, None])
    t = tf.convert_to_tensor(i)
        
  • tf.fill : diffère de plusieurs façons:
    • tf.constant supports constantes arbitraires, non seulement tenseurs scalaires uniformes comme tf.fill .
    • tf.fill crée un Op dans le graphique qui est étendu à l' exécution, il peut donc représenter efficacement un grand tenseurs.
    • Depuis tf.fill ne pas intégrer la valeur, il peut produire des sorties de taille dynamique.

value Une valeur constante (ou une liste) du type de sortie dtype .
dtype Le type des éléments du tenseur résultant.
shape Dimensions optionnelles du tenseur résultant.
name Nom facultatif pour le tenseur.

Une constante Tensor.

TypeError si la forme est spécifiée de manière incorrecte ou non supporté.
ValueError si elle est appelée sur un tenseur symbolique.