In TensorFlow is there any way to just initialize uninitialised variables?
The standard way of initializing variables in TensorFlow is
init = tf.initialize_all_variables() sess = tf.Session() sess.run(init)
After running some learning for a while I create a new set of variables but once I initialize them it resets all my existing variables. At the moment my way around this is to save all the variable I need and then reapply them after the tf.initalize_all_variables call. This works but is a bit ugly and clunky. I cannot find anything like this in the docs...
Does anyone know of any good way to just initialize the uninitialized variables?
There is no elegant* way to enumerate the uninitialized variables in a graph. However, if you have access to the new variable objects--let's call them
v_8--you can selectively initialize them using
init_new_vars_op = tf.initialize_variables([v_6, v_7, v_8]) sess.run(init_new_vars_op)
- A process of trial and error could be used to identify the uninitialized variables, as follows:
uninitialized_vars =  for var in tf.all_variables(): try: sess.run(var) except tf.errors.FailedPreconditionError: uninitialized_vars.append(var) init_new_vars_op = tf.initialize_variables(uninitialized_vars) # ...
...however, I would not condone such behavior :-).