2017-09-08 8 views
1

python3(Python 3.4.3(default、Nov 17 2016、01:08:31))でtensorflow(バージョン:v1.1.0-13-g8ddd727 1.1.0)を使用しています[ GCC 4.8.4] on linux)は、ソースとGPUベースでインストールされています。インポートされたテンソルを別のグラフで初期化する

インポートされたテンソルの変数を別のセッションから初期化することができるかどうかを知りたいのですが、tensorflowドキュメントには言及せず、stackoverflowで見つけました。

train_dir = './gan/train_logs' 
    ckpt = tf.train.latest_checkpoint(train_dir) 
    filename = ".".join([ckpt, 'meta']) 
    print(filename) 
    saver = tf.train.import_meta_graph(filename) 
    saver.restore(sess, ckpt) 
    test = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='generator') 

ここで、テンソルは正常にインポートされ、それらを使用して同じジェネレータを初期化します。

ありがとうございました!

答えて

0

あなたがする必要があるのは、tf.assign opsを作成することだけです。

だからあなたがない:

old_weights = .... # your loading 

new_weights = tf.Variable(...) # any initialisation here! 

initialise_new_weights = tf.assign(new_weights, old_weights) 

with tf.train.MonitoredSession() as sess: 
    # at this point new_weights are randomly initialised 
    sess.run(initialise_new_weight) # now they are initialised to your values 

またはあなたが直接

old_weights = .... # your loading 

new_weights = tf.Variable(..., initializer = tf.constant_initialiser(old_weights)) 

with tf.train.MonitoredSession() as sess: 
    # they are initialised to your values 
を初期化子引数を渡すことができ
+0

は、あなたの助けのためにどうもありがとうございます!それは実際に働いた!問題は間違いなくこのtf.assignでした。私はそれをopとして実行しなければならないことを認識しませんでした。 – houssamzenati

関連する問題