My previous post. . All my code can be found on github (5_Variables.ipynb)
Variables
We use variables to store data during computation.
Types
There are many different ways to create Variables. Here are some examples.
#Different Tensor Variables # Basic y = tf.Variable(10, name='y') #array array = tf.Variable([1,2,3,4], name='array') # Zeros zeros=tf.zeros([3,2]) # Ones ones = tf.ones([3,2]) # Random uniform values rand_uniform = tf.random_uniform([3,2], minval = -10, maxval=10) # Normally distributed numbers rand_normal = tf.random_normal([3,2],mean=0.0,stddev=3.0)
We need to allocate memory for the variables. We do that by calling
# Add an op to initialize the variables. init_op = tf.global_variables_initializer() #execute with examples session = tf.Session() session.run(init_op)
Then when the above commands are run we get:
Changing values
To change the value of a variable we use the assign operation.
We can also save an operation on a variable and run it later.
my_variable = tf.Variable(0) increment_my_variable = my_variable.assign(my_variable + 1)
Here i have created a new variable my_variable and initialized it to 0.
I have also created an operation called increment_my_variable that adds one to its current vale.
I can run both the operation or assign the variable directly.
Above each time increment_my_variable runs it increments the value. But we can also directly assign a value to my_variable as well.
Saving
If you want to save the values of variables use the tf.train.Saver() operation.
# Use this operation to save the session variables saver = tf.train.Saver() # Run the save operation save_path = saver.save(session, "./model.ckpt") print("Saved: %s" % save_path)
This will create the files in the current directory.
You will use this later to save the weights and biases of trained models.
Restoring
Then later call
saver.restore(session, "./model.ckpt")
To restore the values from the file. Example: