Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

tf.constant

TensorFlow 1 Version Quelltext anzeigen auf GitHub

Erstellt von einem Tensor-ähnlichen Objekt einen konstanten Tensor.

in den Notebooks

Wird in der Führung in den Übungen verwendet

Wenn das Argument dtype nicht angegeben ist, dann wird der Typ vom Typ abgeleiteten 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]])>

Wenn dtype die resultierenden Tensor Werte angegeben werden auf den angeforderten werfen 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.])>

Wenn shape eingestellt wird, der value auf Übereinstimmung umgestaltet. Skalare sind erweitert , um die füllen 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 keinen Effekt hat , wenn ein eifriger Tensor als geben wird value , überträgt er noch Gradienten:

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

Aber da tf.constant bettet der Wert in der tf.Graph dies für symbolische Tensoren fehlschlägt:

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

NotImplementedError: ...

tf.constant wird immer CPU (Host) Tensoren erstellen. Um Tensoren auf anderen Geräten zu erstellen, verwenden Sie tf.identity . (Wenn der value ein eifriger Tensor ist, jedoch wird der Tensor unmodifizierten zurückgeführt wird , wie oben erwähnt.)

  • tf.convert_to_tensor ist ähnlich , aber:
    • Es hat keine shape Argument.
    • Symbolische Tensoren werden durchgelassen.
    i = tf.keras.layers.Input(shape=[None, None])
    t = tf.convert_to_tensor(i)
        
  • tf.fill : unterscheidet sich in einigen Punkten:
    • tf.constant unterstützt beliebige Konstanten, nicht nur einheitliche skalare Tensoren wie tf.fill .
    • tf.fill schafft eine Op in der grafischen Darstellung , die zur Laufzeit erweitert wird, so dass es effizient große Tensor darstellen kann.
    • Da tf.fill den Wert nicht einbetten wird, kann es dynamisch angepassten Ausgaben erzeugen.

value Ein konstanter Wert (oder Liste) der Nachrichtenart dtype .
dtype Die Art der Elemente des resultierenden Tensor.
shape Optional Abmessungen des Tensor ergibt.
name Optional Name für den Tensor.

Eine Konstante Tensor.

TypeError wenn Form falsch angegeben oder nicht unterstützt.
ValueError wenn auf einer symbolischen Tensor genannt.