Tensorflow, how to preserve the intermediate node value and reuse them -


assuming have following graph.
- x3 , z values care about.
- x , y inputs. in each different. iteration, coming values , shapes of x , y different, think placeholder
- circumstance need run graph twice in different time point x3 , z asynchronously.

+---+     op: +1           op: *3 | x +------------> x_1 +-----------> x3            +---+ +---+               +                +             | y |                     |                |             +-+-+                      |             op:add             |                     |                |               |                     |                |               |                     |   op: add      v     op:add    |                     +------------->     <------------+                                      z 

at time point, input x(say x=7 , don't know what's y @ moment). want see value of x3. execute sess.run([x3], {x:7}), returns 24 expected.

at later time point, input y(say y=8), , time want take @ node z. point have to execute sess.run([z], {x:7, y:8}) result.

the problem is, later run, have feed x again recalculate intermediate node x_1 , x3. calculates flow x--> x_1 --> x3 twice hurts efficiency.

my idea x_1 , x3 contain values(x_1=8,x3=24) after run until graph destroyed, can directly leverage instead of recalculating.

is there way achieve goal?

the following doesn't solve problem completely, gets away feeding x again:

x_temp = tf.variable(0, dtype=tf.int32) x = tf.placeholder_with_default(x_temp, shape=()) y = tf.placeholder(tf.int32, shape=()) x_temp = tf.assign(x_temp, x)  x_1 = x_temp + 1 x3 = x_1 * 3 z = x_1 + x3 + y  sess = tf.interactivesession() print(sess.run(x3, {x:7})) print(sess.run(z, {y:8}))  #24 #40 

Comments

Popular posts from this blog

node.js - Node js - Trying to send POST request, but it is not loading javascript content -

javascript - Replicate keyboard event with html button -

javascript - Web audio api 5.1 surround example not working in firefox -