Szukaj…


Deklarowanie i inicjowanie zmiennych tensorów

Zmienne tensory są używane, gdy wartości wymagają aktualizacji w ramach sesji. Jest to rodzaj tensora, który byłby zastosowany do macierzy wag podczas tworzenia sieci neuronowych, ponieważ wartości te będą aktualizowane podczas szkolenia modelu.

Zadeklarowanie zmiennej tensora można wykonać za pomocą funkcji tf.Variable() lub tf.get_variable() . Zaleca się użycie tf.get_variable , ponieważ oferuje większą elastyczność, np .:

# Declare a 2 by 3 tensor populated by ones
a = tf.Variable(tf.ones([2,3], dtype=tf.float32))
a = tf.get_variable('a', shape=[2, 3], initializer=tf.constant_initializer(1))

Należy zauważyć, że zadeklarowanie zmiennej tensora nie inicjuje automatycznie wartości. Wartości należy wyraźnie zainicjalizować podczas rozpoczynania sesji przy użyciu jednej z następujących czynności:

  • tf.global_variables_initializer().run()
  • session.run(tf.global_variables_initializer())

Poniższy przykład pokazuje pełny proces deklarowania i inicjowania zmiennego tensora.

# Build a graph
graph = tf.Graph()
with graph.as_default():
    a = tf.get_variable('a', shape=[2,3], initializer=tf.constant_initializer(1), dtype=tf.float32))     # Create a variable tensor

# Create a session, and run the graph
with tf.Session(graph=graph) as session:
    tf.global_variables_initializer().run()  # Initialize values of all variable tensors
    output_a = session.run(a)            # Return the value of the variable tensor
    print(output_a)                      # Print this value

Który drukuje następujące:

[[ 1.  1.  1.]
 [ 1.  1.  1.]]

Pobierz wartość zmiennej TensorFlow lub Tensor

Czasami musimy pobrać i wydrukować wartość zmiennej TensorFlow, aby upewnić się, że nasz program działa poprawnie.

Na przykład, jeśli mamy następujący program:

import tensorflow as tf
import numpy as np
a = tf.Variable(tf.random_normal([2,3])) # declare a tensorflow variable
b = tf.random_normal([2,2]) #declare a tensorflow tensor
init = tf.initialize_all_variables()

jeśli chcemy uzyskać wartość a lub b, można zastosować następujące procedury:

with tf.Session() as sess:
    sess.run(init)
    a_value = sess.run(a)
    b_value = sess.run(b)
    print a_value
    print b_value

lub

with tf.Session() as sess:
    sess.run(init)
    a_value = a.eval()
    b_value = b.eval()
    print a_value
    print b_value


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow