Python 矩阵大小不兼容:在[0]:[161024]中,在[1]:[16384,1]中,在DCGAN中
我正在尝试建立一个DCGANN 我收到:Python 矩阵大小不兼容:在[0]:[161024]中,在[1]:[16384,1]中,在DCGAN中,python,keras,deep-learning,Python,Keras,Deep Learning,我正在尝试建立一个DCGANN 我收到: InvalidArgumentError: Matrix size-incompatible: In[0]: [16,1024], In[1]: [16384,1] [[{{node model_69/dense_50/BiasAdd}}]] 我试图在鉴别器中添加一个重塑,但没有成功 我的图像有维度:(64,64,3) 鉴别器: _________________________________________________________
InvalidArgumentError: Matrix size-incompatible: In[0]: [16,1024], In[1]: [16384,1]
[[{{node model_69/dense_50/BiasAdd}}]]
我试图在鉴别器中添加一个重塑,但没有成功
我的图像有维度:(64,64,3)
鉴别器:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_59 (InputLayer) (None, 64, 64, 3) 0
_________________________________________________________________
conv2d_201 (Conv2D) (None, 32, 32, 128) 9728
_________________________________________________________________
leaky_re_lu_99 (LeakyReLU) (None, 32, 32, 128) 0
_________________________________________________________________
batch_normalization_200 (Bat (None, 32, 32, 128) 512
_________________________________________________________________
conv2d_202 (Conv2D) (None, 16, 16, 256) 819456
_________________________________________________________________
leaky_re_lu_100 (LeakyReLU) (None, 16, 16, 256) 0
_________________________________________________________________
batch_normalization_201 (Bat (None, 16, 16, 256) 1024
_________________________________________________________________
conv2d_203 (Conv2D) (None, 8, 8, 512) 3277312
_________________________________________________________________
leaky_re_lu_101 (LeakyReLU) (None, 8, 8, 512) 0
_________________________________________________________________
batch_normalization_202 (Bat (None, 8, 8, 512) 2048
_________________________________________________________________
conv2d_204 (Conv2D) (None, 4, 4, 1024) 13108224
_________________________________________________________________
leaky_re_lu_102 (LeakyReLU) (None, 4, 4, 1024) 0
_________________________________________________________________
batch_normalization_203 (Bat (None, 4, 4, 1024) 4096
_________________________________________________________________
flatten_25 (Flatten) (None, 16384) 0
_________________________________________________________________
dense_50 (Dense) (None, 1) 16385
=================================================================
Total params: 17,238,785
Trainable params: 17,234,945
Non-trainable params: 3,840
discriminator_out: Tensor("model_69/dense_50/Sigmoid:0", shape=(?, 1), dtype=float32)
gan模型:
Layer (type) Output Shape Param #
=================================================================
input_61 (InputLayer) (None, 100) 0
_________________________________________________________________
model_70 (Model) (None, 4, 4, 3) 18876163
_________________________________________________________________
model_69 (Model) (None, 1) 17238785
=================================================================
Total params: 36,114,948
Trainable params: 18,872,323
Non-trainable params: 17,242,625
生成器的输出张量具有形状
(无,4,4,3)
,这与预期的形状(无,64,64,3)
不同。这是由于使用了跨步卷积
以下生成器生成尺寸为64x64x3的图像:
def generator(gen_inputs):
# 4x4x1024
inputs = Input(shape=(gen_inputs,))
x = Dense(4 * 4 * 1024, activation='relu')(inputs)
x = Reshape((4, 4, 1024))(x)
x = BatchNormalization()(x)
# 8x8x512
x = UpSampling2D()(x)
x = Conv2D(512, (5, 5), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
# 16x16x256
x = UpSampling2D()(x)
x = Conv2D(256, (5, 5), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
# 32x32x128
x = UpSampling2D()(x)
x = Conv2D(128, (5, 5), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
# 64x64x3
x = UpSampling2D()(x)
out = Conv2D(3, (5, 5), activation='tanh', padding='same')(x)
return Model(inputs, out)
X_列车的形状是什么?哪一行抛出了错误?@rvinas:gen\u loss=gan.train\u on\u batch(noise,np.ones((batch\u size,1))调用时出错。。X_序列形状:
(22125,64,64,3)
根据GAN总结,为什么发电机的输出形状是(无,4,4,3)
!64而不是4!谢谢请回答。
def generator(gen_inputs):
# 4x4x1024
inputs = Input(shape=(gen_inputs,))
x = Dense(4 * 4 * 1024, activation='relu')(inputs)
x = Reshape((4, 4, 1024))(x)
x = BatchNormalization()(x)
# 8x8x512
x = UpSampling2D()(x)
x = Conv2D(512, (5, 5), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
# 16x16x256
x = UpSampling2D()(x)
x = Conv2D(256, (5, 5), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
# 32x32x128
x = UpSampling2D()(x)
x = Conv2D(128, (5, 5), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
# 64x64x3
x = UpSampling2D()(x)
out = Conv2D(3, (5, 5), activation='tanh', padding='same')(x)
return Model(inputs, out)