Skip to content

Instantly share code, notes, and snippets.

@unixpickle
Created October 18, 2017 04:37
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 unixpickle/8ef4d7d8f1c7719abc4f06b03c7eacba to your computer and use it in GitHub Desktop.
Save unixpickle/8ef4d7d8f1c7719abc4f06b03c7eacba to your computer and use it in GitHub Desktop.
Variable delta in TF
import numpy as np
import tensorflow as tf
def main():
var1 = tf.Variable(np.array([[1, 2, 3], [4, 5, 6]]), dtype=tf.float32)
var2 = tf.Variable(np.array([[1, 2, 2], [5, 7, 6]]), dtype=tf.float32)
loss = tf.losses.mean_squared_error(var1, var2)
joined_vars = tf.concat([tf.reshape(x, [-1]) for x in tf.trainable_variables()], axis=0)
joined_backup = tf.Variable(np.zeros([int(x) for x in joined_vars.get_shape()]),
dtype=joined_vars.dtype,
trainable=False)
make_backup = tf.assign(joined_backup, joined_vars)
with tf.control_dependencies([make_backup]):
optim = tf.train.AdamOptimizer(learning_rate=1e-1).minimize(loss)
with tf.control_dependencies([optim]):
new_joined = tf.concat([tf.reshape(x, [-1]) for x in tf.trainable_variables()], axis=0)
delta = new_joined - joined_backup
total_sq_delta = tf.reduce_sum(tf.square(delta))
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for _ in range(30):
_, _, scalar_delta = sess.run([make_backup, optim, total_sq_delta])
print(scalar_delta)
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment