tensorflow
переменные
Поиск…
Объявление и инициализация переменных тензоров
Переменные тензоры используются, когда значения требуют обновления в сеансе. Это тип тензора, который будет использоваться для матрицы весов при создании нейронных сетей, поскольку эти значения будут обновляться по мере обучения модели.
Объявление тензора переменных может быть выполнено с помощью функции tf.Variable()
или tf.get_variable()
. Рекомендуется использовать tf.get_variable
, поскольку он предлагает большую гибкость, например:
# 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))
Следует отметить, что объявление тензора переменных автоматически не инициализирует значения. Значения должны быть введены в явном виде при запуске сеанса, используя одно из следующих значений:
-
tf.global_variables_initializer().run()
-
session.run(tf.global_variables_initializer())
В следующем примере показан полный процесс объявления и инициализации тензора переменных.
# 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
Распечатывает следующее:
[[ 1. 1. 1.]
[ 1. 1. 1.]]
Извлеките значение переменной TensorFlow или тензор
Иногда нам нужно получить и распечатать значение переменной TensorFlow, чтобы гарантировать правильность нашей программы.
Например, если у нас есть следующая программа:
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()
если мы хотим получить значение a или b, можно использовать следующие процедуры:
with tf.Session() as sess:
sess.run(init)
a_value = sess.run(a)
b_value = sess.run(b)
print a_value
print b_value
или же
with tf.Session() as sess:
sess.run(init)
a_value = a.eval()
b_value = b.eval()
print a_value
print b_value