Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

local variable 'z' referenced before assignment #23

Open
emnab opened this issue Jul 18, 2019 · 4 comments
Open

local variable 'z' referenced before assignment #23

emnab opened this issue Jul 18, 2019 · 4 comments

Comments

@emnab
Copy link

emnab commented Jul 18, 2019

I have this error! can you help me, please?

WARNING: Logging before flag parsing goes to stderr.
I0718 14:45:17.243686 140030963623808 tl_logging.py:99] [!] checkpoint exists ...
I0718 14:45:17.247771 140030963623808 tl_logging.py:99] [!] samples exists ...
W0718 14:45:19.318463 140030963623808 deprecation.py:323] From /usr/local/lib/python3.6/dist-packages/tensorflow/python/data/ops/dataset_ops.py:505: py_func (from tensorflow.python.ops.script_ops) is deprecated and will be removed in a future version.
Instructions for updating:
tf.py_func is deprecated in TF V2. Instead, there are two
options available in V2.
- tf.py_function takes a python function which manipulates tf eager
tensors instead of numpy arrays. It's easy to convert a tf eager tensor to
an ndarray (just call tensor.numpy()) but having access to eager tensors
means tf.py_functions can use accelerators such as GPUs as well as
being differentiable using a gradient tape.
- tf.numpy_function maintains the semantics of the deprecated tf.py_func
(it is not differentiable, and manipulates numpy arrays). It drops the
stateful argument making all functions stateful.

I0718 14:45:19.464441 140030963623808 tl_logging.py:99] Input _inputlayer_1: [None, 100]
I0718 14:45:19.974161 140030963623808 tl_logging.py:99] Dense dense_1: 8192 No Activation
I0718 14:45:20.649731 140030963623808 tl_logging.py:99] Reshape reshape_1
I0718 14:45:20.707117 140030963623808 tl_logging.py:99] BatchNorm batchnorm_1: decay: 0.900000 epsilon: 0.000010 act: relu is_train: False
I0718 14:45:20.782280 140030963623808 tl_logging.py:99] DeConv2d deconv2d_1: n_filters: 256 strides: (2, 2) padding: SAME act: No Activation dilation: (1, 1)
I0718 14:45:22.796400 140030963623808 tl_logging.py:99] BatchNorm batchnorm2d_1: decay: 0.900000 epsilon: 0.000010 act: relu is_train: False
I0718 14:45:22.873876 140030963623808 tl_logging.py:99] DeConv2d deconv2d_2: n_filters: 128 strides: (2, 2) padding: SAME act: No Activation dilation: (1, 1)
I0718 14:45:23.076492 140030963623808 tl_logging.py:99] BatchNorm batchnorm2d_2: decay: 0.900000 epsilon: 0.000010 act: relu is_train: False
I0718 14:45:23.153287 140030963623808 tl_logging.py:99] DeConv2d deconv2d_3: n_filters: 64 strides: (2, 2) padding: SAME act: No Activation dilation: (1, 1)
I0718 14:45:23.227763 140030963623808 tl_logging.py:99] BatchNorm batchnorm2d_3: decay: 0.900000 epsilon: 0.000010 act: relu is_train: False
I0718 14:45:23.307783 140030963623808 tl_logging.py:99] DeConv2d deconv2d_4: n_filters: 3 strides: (2, 2) padding: SAME act: tanh dilation: (1, 1)
I0718 14:45:23.390201 140030963623808 tl_logging.py:99] Input _inputlayer_2: [None, 64, 64, 3]
I0718 14:45:23.456669 140030963623808 tl_logging.py:99] Conv2d conv2d_1: n_filter: 64 filter_size: (5, 5) strides: (2, 2) pad: SAME act:
I0718 14:45:23.530629 140030963623808 tl_logging.py:99] Conv2d conv2d_2: n_filter: 128 filter_size: (5, 5) strides: (2, 2) pad: SAME act: No Activation
I0718 14:45:23.608061 140030963623808 tl_logging.py:99] BatchNorm batchnorm2d_4: decay: 0.900000 epsilon: 0.000010 act: is_train: False
I0718 14:45:23.691769 140030963623808 tl_logging.py:99] Conv2d conv2d_3: n_filter: 256 filter_size: (5, 5) strides: (2, 2) pad: SAME act: No Activation
I0718 14:45:23.775271 140030963623808 tl_logging.py:99] BatchNorm batchnorm2d_5: decay: 0.900000 epsilon: 0.000010 act: is_train: False
I0718 14:45:23.942049 140030963623808 tl_logging.py:99] Conv2d conv2d_4: n_filter: 512 filter_size: (5, 5) strides: (2, 2) pad: SAME act: No Activation
I0718 14:45:24.041154 140030963623808 tl_logging.py:99] BatchNorm batchnorm2d_6: decay: 0.900000 epsilon: 0.000010 act: is_train: False
I0718 14:45:24.114703 140030963623808 tl_logging.py:99] Flatten flatten_1:
I0718 14:45:24.177696 140030963623808 tl_logging.py:99] Dense dense_2: 1 identity
I0718 14:45:29.721007 140030963623808 tl_logging.py:99] [] Saving TL weights into checkpoint/G.npz
I0718 14:45:31.268130 140030963623808 tl_logging.py:99] [
] Saved
I0718 14:45:31.274845 140030963623808 tl_logging.py:99] [] Saving TL weights into checkpoint/D.npz
I0718 14:45:32.590787 140030963623808 tl_logging.py:99] [
] Saved

UnboundLocalError Traceback (most recent call last)
in ()
58
59 if name == 'main':
---> 60 train()

in train()
53 D.save_weights('{}/D.npz'.format(flags.checkpoint_dir), format='npz')
54 G.eval()
---> 55 result = G(z)
56 G.train()
57 tl.visualize.save_images(result.numpy(), [num_tiles, num_tiles], '{}/train_{:02d}.png'.format(flags.sample_dir, epoch))

UnboundLocalError: local variable 'z' referenced before assignment

@jonluntzel
Copy link

I'm having the same issue. Did you end up fixing it?

@zsdonghao
Copy link
Member

how is it possible? the z is generated during training

@KevinOfCathay
Copy link

z is just noise.
You can simply add:
z = np.random.normal(loc=0.0, scale=1.0, size=[flags.batch_size, flags.z_dim]).astype(np.float32)
before
Gen.save_weights('{}/Gen.npz'.format(flags.checkpoint_dir), format='npz')

@kilroyrlc
Copy link

I think this is caused by z first being assigned in the block that iterates over input images. If your input directory has no images, rather than reporting this as an error, it'll go right to reference z and fail on that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants