Python 尝试创建GAN:InvalidArgumentError:矩阵大小不兼容

Python 尝试创建GAN:InvalidArgumentError:矩阵大小不兼容,python,numpy,machine-learning,keras,generative-adversarial-network,Python,Numpy,Machine Learning,Keras,Generative Adversarial Network,我对这个领域很陌生,但我正试图创建一个生成性对抗网络来生成音乐。我有一个模型,它是生成器和鉴别器的组合,但当我训练它时,它会给我一个错误。关于它不喜欢的输出。我正在使用Keras。任何帮助都将不胜感激 据我所知,在任何Keras模型中,输入和输出应该具有相同的维度。我的输入形状-(300,30,1)。输出形状-(300,1)。当我单独训练它们时,它们不会导致错误。但是当我把它们组合在一个单独的模型中时,它们开始给出一个错误——特别是在鉴别器的最后一行——>densite(1,activation

我对这个领域很陌生,但我正试图创建一个生成性对抗网络来生成音乐。我有一个模型,它是生成器和鉴别器的组合,但当我训练它时,它会给我一个错误。关于它不喜欢的输出。我正在使用Keras。任何帮助都将不胜感激

据我所知,在任何Keras模型中,输入和输出应该具有相同的维度。我的输入形状-(300,30,1)。输出形状-(300,1)。当我单独训练它们时,它们不会导致错误。但是当我把它们组合在一个单独的模型中时,它们开始给出一个错误——特别是在鉴别器的最后一行——>
densite(1,activation='sigmoid')

因此,错误本身是错误的

InvalidArgumentError: Matrix size-incompatible: In[0]: [300,1], In[1]: [30,30]   [[{{node sequential_22/dense_37/MatMul}}]]
每当我移除鉴别器的稠密(1,sigmoid)层时,它都会工作,但我需要该层来进行二进制分类。也许我需要重建模型或只是做一个小的修复,但无论如何,所有建议都很感谢。

欢迎来到stackoverflow。 发生此错误的原因是,
您的模型需要(30,30),但您正在输入(300,1)

这里有一些更好的变化:

  • 自动识别器
    model.add(展平(input_shape=((30,1)))
    位于错误的位置。它应该在
    密集层之前的下方。或者,当您正在构建RNN时,我认为您不需要一个
    展平层
  • 使用双向LSTM
  • 在生成器中使用
    batchnormalization
  • 您可以看到,整个网络还需要一些其他更改。希望这有帮助

    欢迎来到stackoverflow。 发生此错误的原因是,
    您的模型需要(30,30),但您正在输入(300,1)

    这里有一些更好的变化:

  • 自动识别器
    model.add(展平(input_shape=((30,1)))
    位于错误的位置。它应该在
    密集层之前的下方。或者,当您正在构建RNN时,我认为您不需要一个
    展平层
  • 使用双向LSTM
  • 在生成器中使用
    batchnormalization
  • 您可以看到,整个网络还需要一些其他更改。希望这有帮助

    Training:
    self.G.train_on_batch(np.array(gen_noiseX), np.array(genY))
    self.D.train_on_batch(np.array(gen_noiseX), disc_label)
    self.GD.train_on_batch(np.array(gen_noiseX), y_mislabled)
    
    Model Summaries:
    Generator:
    Layer (type)                 Output Shape              Param #   
    =================================================================
    lstm_28 (LSTM)               (None, 30, 256)           264192    
    _________________________________________________________________
    dropout_52 (Dropout)         (None, 30, 256)           0         
    _________________________________________________________________
    lstm_29 (LSTM)               (None, 30, 128)           197120    
    _________________________________________________________________
    dropout_53 (Dropout)         (None, 30, 128)           0         
    _________________________________________________________________
    lstm_30 (LSTM)               (None, 64)                49408     
    _________________________________________________________________
    dropout_54 (Dropout)         (None, 64)                0         
    _________________________________________________________________
    dense_36 (Dense)             (None, 1)                 65        
    =================================================================
    Total params: 510,785
    Trainable params: 510,785
    Non-trainable params: 0
    _________________________________________________________________
    None
    
    
    Discriminator:
    
    Layer (type)                 Output Shape              Param #   
    =================================================================
    flatten_8 (Flatten)          (None, 30)                0         
    _________________________________________________________________
    dense_37 (Dense)             (None, 30)                930       
    _________________________________________________________________
    leaky_re_lu_15 (LeakyReLU)   (None, 30)                0         
    _________________________________________________________________
    dense_38 (Dense)             (None, 15)                465       
    _________________________________________________________________
    leaky_re_lu_16 (LeakyReLU)   (None, 15)                0         
    _________________________________________________________________
    dense_39 (Dense)             (None, 1)                 16        
    =================================================================
    Total params: 1,411
    Trainable params: 1,411
    Non-trainable params: 0
    _________________________________________________________________
    None
    
    InvalidArgumentError: Matrix size-incompatible: In[0]: [300,1], In[1]: [30,30]   [[{{node sequential_22/dense_37/MatMul}}]]