変数の作成にはテンソルの shape を指定します。
weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35),
name="weights")
biases = tf.Variable(tf.zeros([200]), name="biases")
weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35),
name="weights")
biases = tf.Variable(tf.zeros([200]), name="biases")
...
init_op = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init_op)
...
5 行目: 変数を初期化するための OP を追加します。
8 行目: init 操作を実行します。
新しい変数を他の変数の値から初期化するためには他の変数の initialized_value() プロパティを使用します。
weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35),
name="weights")
w2 = tf.Variable(weights.initialized_value(), name="w2")
w_twice = tf.Variable(weights.initialized_value() * 2.0, name="w_twice")
4 行目: 他の変数を ‘weights’ の2倍の値で作成します。
v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
...
init_op = tf.initialize_all_variables()
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(init_op)
..
save_path = saver.save(sess, "/tmp/model.ckpt")
print("Model saved in file: %s" % save_path)
6 行目: 全ての変数を保存して復旧するための OP を追加します。
11 行目: 変数をディスクに保存します。
同じ Saver オブジェクトが変数の復旧のために使用されます。
ファイルから変数を復旧する時は前もってそれらを初期化する必要はありません。
v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
...
saver = tf.train.Saver()
with tf.Session() as sess:
saver.restore(sess, "/tmp/model.ckpt")
print("Model restored.")
7 行目: ディスクから変数を復旧します。
v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
...
saver = tf.train.Saver({"my_v2": v2})
4 行目: “my_v2” という名前を使って ‘v2’ だけを保存し復旧する OPs を追加します。