2016-11-17 42 views
0

我想這樣做,因爲這a = a + b簡單的東西,例如代碼如下如何操縱變量在Tensorflow

sess = tf.InteractiveSession() 

embed = tf.Variable(tf.random_uniform([10, 2], -1, 1)) 

saver = tf.train.Saver([embed]) 
saver.restore(sess, 'save/model.ckpt') 

new_embed = tf.Variable(tf.random_uniform([5, 2], -1, 1)) 

init = tf.initialize_variables([new_embed]) 
sess.run(init) 

embed = tf.Variable(tf.concat(0, [embed, new_embed])) 

但最後一行將不執行,因爲embed成爲未初始化值。

我想在這裏完成的是從一個文件和一個新變量恢復變量,即使[10,2]變量爲[15,2]變量,其中前10行是來自存儲的變量。

我正在考慮將[10,2]變量恢復爲新變量old_ebmed,但我找不到這樣做的方法。

任何幫助,將不勝感激。

回答

0

我發現了一種變量使用不同的名稱

import tensorflow as tf 

sess = tf.InteractiveSession() 

old_embed = tf.Variable(tf.constant(0.0, shape = [10, 2])) 

restorer = tf.train.Saver({'embed': old_embed}) 
restorer.restore(sess, 'test/d.ckpt') 

new_embed = tf.Variable(tf.random_uniform([5, 2], -1, 1)) 

init_new = tf.initialize_variables([new_embed]) 
sess.run(init_new) 

embed = tf.Variable(tf.concat(0, [old_embed, new_embed])) 
init_embed = tf.initialize_variables([embed]) 
sess.run(init_embed) 

saver = tf.train.Saver({'embed': embed}) 
saver.save(sess, 'test/d.ckpt') 
恢復到varialbe