accel-brain / accel-brain-code

The purpose of this repository is to make prototypes as case study in the context of proof of concept(PoC) and research and development(R&D) that I have written in my website. The main research topics are Auto-Encoders in relation to the representation learning, the statistical machine learning for energy-based models, adversarial generation networks(GANs), Deep Reinforcement Learning such as Deep Q-Networks, semi-supervised learning, and neural network language model for natural language processing.
https://accel-brain.co.jp
GNU General Public License v2.0
310 stars 92 forks source link

ValueError: operands could not be broadcast together with shapes #8

Closed youssefavx closed 4 years ago

youssefavx commented 4 years ago

While trying to run pycomposer on MacOS 10.14 Mojave, Python3.7...

After entering this line:

gan_composer.learn(iter_n=1000, k_step=10) (Note I gave it a midi file of one song, I'm not sure if that was the problem.) I got this error:

----------------------------------------------------------------------------------------------------
Iterations: (1/10)
----------------------------------------------------------------------------------------------------
The `discriminator`'s turn.
----------------------------------------------------------------------------------------------------
Error raised in Deconvolution layer 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-15-0dd5c74c0d95> in <module>
----> 1 gan_composer.learn(iter_n=10, k_step=10)

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pycomposer/gancomposable/conditional_gan_composer.py in learn(self, iter_n, k_step)
    333             self.__discriminative_model,
    334             iter_n=iter_n,
--> 335             k_step=k_step
    336         )
    337         self.__generative_model = generative_model

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generative_adversarial_networks.py in train(self, true_sampler, generative_model, discriminative_model, iter_n, k_step)
     87                     generative_model,
     88                     discriminative_model,
---> 89                     d_logs_list
     90                 )
     91 

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generative_adversarial_networks.py in train_discriminator(self, k_step, true_sampler, generative_model, discriminative_model, d_logs_list)
    136         for k in range(k_step):
    137             true_arr = true_sampler.draw()
--> 138             generated_arr = generative_model.draw()
    139             true_posterior_arr = discriminative_model.inference(true_arr)
    140             generated_posterior_arr = discriminative_model.inference(generated_arr)

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generativemodel/conditionalgenerativemodel/conditional_convolutional_model.py in draw(self)
    174             conv_arr += noise_arr
    175 
--> 176         deconv_arr = self.__deconvolution_model.inference(conv_arr)
    177         return np.concatenate((observed_arr, deconv_arr), axis=self.conditional_axis)
    178 

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generativemodel/deconvolution_model.py in inference(self, observed_arr)
    110         for i in range(len(self.__deconvolution_layer_list)):
    111             try:
--> 112                 observed_arr = self.__deconvolution_layer_list[i].forward_propagate(observed_arr)
    113             except:
    114                 self.__logger.debug("Error raised in Deconvolution layer " + str(i + 1))

pydbm/cnn/layerablecnn/convolutionlayer/deconvolution_layer.pyx in pydbm.cnn.layerablecnn.convolutionlayer.deconvolution_layer.DeconvolutionLayer.forward_propagate()

pydbm/activation/softmax_function.pyx in pydbm.activation.softmax_function.SoftmaxFunction.activate()

pydbm/activation/softmax_function.pyx in pydbm.activation.softmax_function.SoftmaxFunction.forward()

ValueError: operands could not be broadcast together with shapes (20,1,8,1259) (201440,1) 
chimera0 commented 4 years ago

Please install pydbm again. I fixed it.

youssefavx commented 4 years ago

I tried reinstalling pydbm and pycomposer by running:

pip3 uninstall pydbm 
pip3 uninstall pycomposer 

Then installing them again. However, I did not see pip downloading a new version of the module which is what I expected.

Got the same error.

----------------------------------------------------------------------------------------------------
Iterations: (1/100)
----------------------------------------------------------------------------------------------------
The `discriminator`'s turn.
----------------------------------------------------------------------------------------------------
Error raised in Deconvolution layer 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-f50c214c0d9d> in <module>
----> 1 gan_composer.learn(iter_n=100, k_step=10)

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pycomposer/gancomposable/conditional_gan_composer.py in learn(self, iter_n, k_step)
    333             self.__discriminative_model,
    334             iter_n=iter_n,
--> 335             k_step=k_step
    336         )
    337         self.__generative_model = generative_model

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generative_adversarial_networks.py in train(self, true_sampler, generative_model, discriminative_model, iter_n, k_step)
     87                     generative_model,
     88                     discriminative_model,
---> 89                     d_logs_list
     90                 )
     91 

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generative_adversarial_networks.py in train_discriminator(self, k_step, true_sampler, generative_model, discriminative_model, d_logs_list)
    136         for k in range(k_step):
    137             true_arr = true_sampler.draw()
--> 138             generated_arr = generative_model.draw()
    139             true_posterior_arr = discriminative_model.inference(true_arr)
    140             generated_posterior_arr = discriminative_model.inference(generated_arr)

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generativemodel/conditionalgenerativemodel/conditional_convolutional_model.py in draw(self)
    174             conv_arr += noise_arr
    175 
--> 176         deconv_arr = self.__deconvolution_model.inference(conv_arr)
    177         return np.concatenate((observed_arr, deconv_arr), axis=self.conditional_axis)
    178 

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generativemodel/deconvolution_model.py in inference(self, observed_arr)
    110         for i in range(len(self.__deconvolution_layer_list)):
    111             try:
--> 112                 observed_arr = self.__deconvolution_layer_list[i].forward_propagate(observed_arr)
    113             except:
    114                 self.__logger.debug("Error raised in Deconvolution layer " + str(i + 1))

pydbm/cnn/layerablecnn/convolutionlayer/deconvolution_layer.pyx in pydbm.cnn.layerablecnn.convolutionlayer.deconvolution_layer.DeconvolutionLayer.forward_propagate()

pydbm/activation/softmax_function.pyx in pydbm.activation.softmax_function.SoftmaxFunction.activate()

pydbm/activation/softmax_function.pyx in pydbm.activation.softmax_function.SoftmaxFunction.forward()

ValueError: operands could not be broadcast together with shapes (20,1,8,1259) (201440,1) 
youssefavx commented 4 years ago

Okay, I was pretty sure this was a problem on my end. I didn't find the files you updated so I assume it just installed from the collected packages. So now I'm trying this:

pip3 --no-cache-dir install pydbm

Will report back. If that doesn't work I'll edit/download any files you edited/uploaded.

youssefavx commented 4 years ago

Same error after running with --no-cache-dir and downloading .c and .pyx files to softmaxfunction folder (although I doubt that would've been what fixed it as I imagine that goes through some conversion process):

----------------------------------------------------------------------------------------------------
Iterations: (1/100)
----------------------------------------------------------------------------------------------------
The `discriminator`'s turn.
----------------------------------------------------------------------------------------------------
Error raised in Deconvolution layer 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-f50c214c0d9d> in <module>
----> 1 gan_composer.learn(iter_n=100, k_step=10)

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pycomposer/gancomposable/conditional_gan_composer.py in learn(self, iter_n, k_step)
    333             self.__discriminative_model,
    334             iter_n=iter_n,
--> 335             k_step=k_step
    336         )
    337         self.__generative_model = generative_model

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generative_adversarial_networks.py in train(self, true_sampler, generative_model, discriminative_model, iter_n, k_step)
     87                     generative_model,
     88                     discriminative_model,
---> 89                     d_logs_list
     90                 )
     91 

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generative_adversarial_networks.py in train_discriminator(self, k_step, true_sampler, generative_model, discriminative_model, d_logs_list)
    136         for k in range(k_step):
    137             true_arr = true_sampler.draw()
--> 138             generated_arr = generative_model.draw()
    139             true_posterior_arr = discriminative_model.inference(true_arr)
    140             generated_posterior_arr = discriminative_model.inference(generated_arr)

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generativemodel/conditionalgenerativemodel/conditional_convolutional_model.py in draw(self)
    174             conv_arr += noise_arr
    175 
--> 176         deconv_arr = self.__deconvolution_model.inference(conv_arr)
    177         return np.concatenate((observed_arr, deconv_arr), axis=self.conditional_axis)
    178 

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pygan/generativemodel/deconvolution_model.py in inference(self, observed_arr)
    110         for i in range(len(self.__deconvolution_layer_list)):
    111             try:
--> 112                 observed_arr = self.__deconvolution_layer_list[i].forward_propagate(observed_arr)
    113             except:
    114                 self.__logger.debug("Error raised in Deconvolution layer " + str(i + 1))

pydbm/cnn/layerablecnn/convolutionlayer/deconvolution_layer.pyx in pydbm.cnn.layerablecnn.convolutionlayer.deconvolution_layer.DeconvolutionLayer.forward_propagate()

pydbm/activation/softmax_function.pyx in pydbm.activation.softmax_function.SoftmaxFunction.activate()

pydbm/activation/softmax_function.pyx in pydbm.activation.softmax_function.SoftmaxFunction.forward()

ValueError: operands could not be broadcast together with shapes (20,1,8,1259) (201440,1) 
chimera0 commented 4 years ago

The version of this library has not changed.

https://github.com/chimera0/accel-brain-code/tree/master/Deep-Learning-by-means-of-Design-Pattern#installation

https://docs.python.org/3.7/installing/index.html#basic-usage