Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.constant

TensorFlow 1 wersja Zobacz źródło na GitHub

Tworzy stałą tensor z obiektu tensora podobne.

Stosowany w notebookach

Używany w przewodniku Używany w samouczków

Jeśli argument dtype nie jest określona, wówczas typ jest wywnioskować z rodzaju 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]])>

Jeśli dtype podano wynikowe wartości tensor zostały oddane do żądanej 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.])>

Jeżeli shape jest ustawiona, value jest tworzona na meczu. Skalary są rozszerzane, aby wypełnić 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 nie ma wpływu, jeśli pragnie tensora jest przekazywane jako value , nawet nadaje gradient:

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

Ale ponieważ tf.constant Osadza wartość w tf.Graph to nie dla tensorów symbolicznych:

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

NotImplementedError: ...

tf.constant zawsze będą tworzyć CPU (host) tensorów. W celu stworzenia tensory na innych urządzeniach, użyj tf.identity . (Jeśli value jest chętnie tensora jednak napinacz zostaną zwrócone niezmodyfikowanej, jak wspomniano powyżej).

  • tf.convert_to_tensor jest podobny, ale:
    • To ma shape argument.
    • Symboliczne tensory mogą przejść.
    i = tf.keras.layers.Input(shape=[None, None])
    t = tf.convert_to_tensor(i)
        
  • tf.fill : różni się na kilka sposobów:
    • tf.constant podpory stałymi dowolnymi, nie tylko jednolite skalarne tensory jak tf.fill .
    • tf.fill tworzy op na wykresie, który rozszerza się w czasie działania, dzięki czemu może skutecznie reprezentować duże tensorów.
    • Od tf.fill nie osadzać wartość, może produkować wyjść dynamicznie rozmiarach.

value Wartość stała (lub lista) typu wyjście dtype .
dtype Typ elementów otrzymanego tensora.
shape Opcjonalne wymiary wynikające tensor.
name Opcjonalna nazwa dla tensora.

Stała Tensor.

TypeError Jeżeli kształt jest określony nieprawidłowo lub bez nośnika.
ValueError jeśli wezwał symboliczną tensora.