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変数またはTensorの値を取得する
時には、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
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow