サーチ…


変数テンソルの宣言と初期化

可変テンソルは、セッション内で値を更新する必要がある場合に使用されます。モデルが訓練されているときにこれらの値が更新されるため、ニューラルネットワークを作成するときに重み行列に使用されるテンソルのタイプです。

可変テンソルの宣言は、 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