Python 尝试创建GAN:InvalidArgumentError:矩阵大小不兼容
我对这个领域很陌生,但我正试图创建一个生成性对抗网络来生成音乐。我有一个模型,它是生成器和鉴别器的组合,但当我训练它时,它会给我一个错误。关于它不喜欢的输出。我正在使用Keras。任何帮助都将不胜感激 据我所知,在任何Keras模型中,输入和输出应该具有相同的维度。我的输入形状-(300,30,1)。输出形状-(300,1)。当我单独训练它们时,它们不会导致错误。但是当我把它们组合在一个单独的模型中时,它们开始给出一个错误——特别是在鉴别器的最后一行——>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
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时,我认为您不需要一个展平层
batchnormalization
您的模型需要(30,30),但您正在输入(300,1)
这里有一些更好的变化:
model.add(展平(input_shape=((30,1)))
位于错误的位置。它应该在密集层之前的下方。或者,当您正在构建RNN时,我认为您不需要一个展平层
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}}]]