Skip to content

Instantly share code, notes, and snippets.

@tuxdna
Last active January 27, 2019 08:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tuxdna/0d8e0b8eee86430b55714bbbdaeed4e8 to your computer and use it in GitHub Desktop.
Save tuxdna/0d8e0b8eee86430b55714bbbdaeed4e8 to your computer and use it in GitHub Desktop.
Tensorflow example eval
import tensorflow as tf
tf.reset_default_graph()
s1 = tf.Session()
g = tf.get_default_graph()
foo_var = tf.Variable(42, name='foo')
assign_14 = foo_var.assign(14, name="assign_14")
assign_17 = foo_var.assign(17, name="assign_17")
init = tf.global_variables_initializer()
s1.run(init)
print('foo_var before eval = ', s1.run(foo_var))
print('%s eval = %s' % (assign_17, assign_17.eval(session=s1)))
print('foo_var: ', s1.run(foo_var))
print('%s eval = %s' % (assign_14, assign_14.eval(session=s1)))
print('foo_var = ', s1.run(foo_var))
print()
print(s1.run([assign_17, assign_14]))
print('foo_var after run: ', s1.run(foo_var))
print()
print(s1.run([assign_14, assign_17]))
print('foo_var after run: ', s1.run(foo_var))
print()
print("Once more with 3 assignments: ")
print()
tf.reset_default_graph()
s1 = tf.Session()
g = tf.get_default_graph()
foo_var = tf.Variable(42, name='foo')
values = list(range(3))
assigns = [foo_var.assign(x) for x in values]
init = tf.global_variables_initializer()
s1.run(init)
print('foo_var before eval = ', s1.run(foo_var))
for a in assigns:
print("Assignment %s = %s" % (a, a.eval(session=s1)))
print()
# print('sess.run([assign_14, assign_17]) = ', s1.run([assign_14, assign_17]))
print('sess.run(assigns) = ', s1.run(assigns))
print('foo_var after run: ', s1.run(foo_var))
print()
print("Once more with 3 assignments order reversed: ")
print()
tf.reset_default_graph()
s1 = tf.Session()
g = tf.get_default_graph()
foo_var = tf.Variable(42, name='foo')
values = list(reversed(range(3)))
assigns = [foo_var.assign(x) for x in values]
init = tf.global_variables_initializer()
s1.run(init)
print('foo_var before eval = ', s1.run(foo_var))
for a in assigns:
print("Assignment %s = %s" % (a, a.eval(session=s1)))
print()
# print('sess.run([assign_14, assign_17]) = ', s1.run([assign_14, assign_17]))
print('sess.run(assigns) = ', s1.run(assigns))
print('foo_var after run: ', s1.run(foo_var))
print()
@tuxdna
Copy link
Author

tuxdna commented Jan 27, 2019

OUTPUT:

2019-01-27 14:14:14.231396: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
foo_var before eval =  42
Tensor("assign_17:0", shape=(), dtype=int32_ref) eval = 17
foo_var:  17
Tensor("assign_14:0", shape=(), dtype=int32_ref) eval = 14
foo_var =  14

[14, 14]
foo_var after run:   14

[14, 14]
foo_var after run:   14

Once more with 3 assignments: 

foo_var before eval =  42
Assignment Tensor("Assign:0", shape=(), dtype=int32_ref) = 0
Assignment Tensor("Assign_1:0", shape=(), dtype=int32_ref) = 1
Assignment Tensor("Assign_2:0", shape=(), dtype=int32_ref) = 2

sess.run(assigns) =  [0, 0, 0]
foo_var after run:   0

Once more with 3 assignments order reversed: 

foo_var before eval =  42
Assignment Tensor("Assign:0", shape=(), dtype=int32_ref) = 2
Assignment Tensor("Assign_1:0", shape=(), dtype=int32_ref) = 1
Assignment Tensor("Assign_2:0", shape=(), dtype=int32_ref) = 0

sess.run(assigns) =  [2, 2, 2]
foo_var after run:   2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment