0

I'm trying to find variables that end in train_step from tf.report_uninitialized_variables(), but you can't iterate over tensors without eager execution. I get that you need to use tf.map_fn, but I do not understand it well enough.

This is what I have:

variables = []
for s, t in zip(tf.report_uninitialized_variables().eval(session=sess), 
                tf.report_uninitialized_variables()):
    if 'train_step' in s:
        variables.append(t)
train_step_init = tf.variables_initializer(variables, name='train_step_init')
itsdarrylnorris
  • 630
  • 5
  • 21
  • duplicate:https://stackoverflow.com/questions/44268206/how-to-get-the-list-of-uninitialized-variables-from-tf-report-uninitialized-vari – syltruong May 22 '18 at 02:04
  • @syltruong `[v for v in tf.global_variables() if v.name.split(':')[0] in set(sess.run(tf.report_uninitialized_variables())) ]` just returns an empty list. – Emergency Temporal Shift May 22 '18 at 03:21

1 Answers1

0

Turns out I could do:

variables = []
for i, v in enumerate(tf.global_variables()):
    name = v.name.split(':')[0].encode('ASCII')
    if name in sess.run(tf.report_uninitialized_variables()[0]):
        if b'train_step' in name:
            variables.append(v)

train_step_init = tf.variables_initializer(variables)
sess.run(train_step_init)