I am trying to configure this DCGAN code to be able to work with 2x80 sample data.
All generator layers are tf.nn.deconv2d except h0, that is, ReLu. Generator filter dimensions at current level:
Generator: h0: s_h16 x s_w16: 1 x 5 Generator: h1: s_h8 x s_w8: 1 x 10 Generator: h2: s_h4 x s_w4: 1 x 20 Generator: h3: s_h2 x s_w2: 1 x 40 Generator: h4: s_h x s_w: 2 x 80
Due to the nature of my data, I would like it to be initially generated as 2 x ..., that is, for filters there would be 2 x 5 , 2 x 10 , 2 x 20 , 2 x 40 and 2 x 80 , However, when I just manually enter s_h16 = 2 * s_h16 , etc. Before s_h2 = 2 * s_h2 , I run the following error:
ValueError: Shapes (64, 1, 40, 64) and (64, 2, 40, 64) are not compatible
So, I know that the error occurs at the h3 level, but I can not completely track it (64 here is the batch size). Any ideas how this can be fixed?
Edit: the edited DCGANs code in this repository after configuring DCGAN-tensorflow as in the instructions , you need to put the Data_npy folder in the DCGAN-tensorflow/data folder.
Then running python main.py --dataset Data_npy --input_height=2 --output_height=2 --train will give you the error I am getting.
A complete error trace is as follows:
Traceback (most recent call last): File "/home/marija/.local/lib/python3.5/site-packages/tensorflow/python/framework/tensor_shape.py", line 560, in merge_with new_dims.append(dim.merge_with(other[i])) File "/home/marija/.local/lib/python3.5/site-packages/tensorflow/python/framework/tensor_shape.py", line 135, in merge_with self.assert_is_compatible_with(other) File "/home/marija/.local/lib/python3.5/site-packages/tensorflow/python/framework/tensor_shape.py", line 108, in assert_is_compatible_with % (self, other)) ValueError: Dimensions 1 and 2 are not compatible During handling of the above exception, another exception occurred: Traceback (most recent call last): File "main.py", line 97, in <module> tf.app.run() File "/home/marija/.local/lib/python3.5/site-packages/tensorflow/python/platform/app.py", line 48, in run _sys.exit(main(_sys.argv[:1] + flags_passthrough)) File "main.py", line 80, in main dcgan.train(FLAGS) File "/home/marija/DCGAN-tensorflow/model.py", line 180, in train .minimize(self.g_loss, var_list=self.g_vars) File "/home/marija/.local/lib/python3.5/site-packages/tensorflow/python/training/optimizer.py", line 315, in minimize grad_loss=grad_loss) File "/home/marija/.local/lib/python3.5/site-packages/tensorflow/python/training/optimizer.py", line 386, in compute_gradients colocate_gradients_with_ops=colocate_gradients_with_ops) File "/home/marija/.local/lib/python3.5/site-packages/tensorflow/python/ops/gradients_impl.py", line 580, in gradients in_grad.set_shape(t_in.get_shape()) File "/home/marija/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 413, in set_shape self._shape = self._shape.merge_with(shape) File "/home/marija/.local/lib/python3.5/site-packages/tensorflow/python/framework/tensor_shape.py", line 564, in merge_with (self, other)) ValueError: Shapes (64, 1, 40, 64) and (64, 2, 40, 64) are not compatible