2016-11-17 10 views
0

Ich möchte als dieser a = a + b, Beispielcode etwas so einfach tun, wieWie Variablen in Tensorflow manipulieren

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])) 

folgen jedoch die letzte Zeile wird nicht ausgeführt, weil embed einen nicht initialisierten Wert wird.

Was ich hier erreichen möchte ist, eine Variable aus einer Datei wiederherzustellen und concat mit einer neuen Variablen, dh machen Sie die [10, 2] Variable zu einer [15, 2] Variable, wo die ersten 10 Zeilen sind aus der gespeicherten Variable.

Ich dachte, die [10, 2] Variable zu einer neuen Variablen, sagen old_ebmed, wiederherzustellen, aber ich konnte keinen Weg finden, dies zu tun.

Jede Hilfe wäre willkommen.

Antwort

0

fand ich einen Weg, um die Variable auf einen varialbe mit einem anderen Namen

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') 
wiederherstellen
Verwandte Themen