ホーム » TensorFlow スニペット » TensorFlow : snippet : 変数の作成・初期化・保存・復旧

TensorFlow : snippet : 変数の作成・初期化・保存・復旧

変数の作成にはテンソルの 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 を追加します。

 

【参考】
(翻訳/解説)TensorFlow : GET STARTED : 基本的な使い方

AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com