【发布时间】:2020-10-12 14:14:56
【问题描述】:
我正在使用 Keras 构建基于 Conv1DTranspose 层的 GAN。我想实现一个 GAN 模型(尤其是生成器)。但是,我无法做出正确的架构。你能帮我解决这些问题吗:
(1) 问题是我的输入(噪声)的大小与 Keras 文档不匹配。所以,我无法从一开始就建立网络。
(2)如何从Conv1DTranspose层输出到Conv1D层“reshape”?
谢谢你,
这是我的代码:
# define generator model
def define_generator(latent_dim, n_outputs=1):
model = Sequential()
# reshape layer
model.add(Dense(1 * 10 * 10, activation="relu", input_dim=(latent_dim)))
model.add(Reshape((10, 10, 1)))
# 1D Transposed Convolutional Layer
model.add(Conv1DTranspose(filters=32, kernel_size=4, strides=1))
model.add(BatchNormalization(momentum=0.8))
model.add(LeakyReLU(alpha=0.1))
model.add(Conv1DTranspose(filters=64, kernel_size=4, strides=1))
model.add(BatchNormalization(momentum=0.8))
model.add(LeakyReLU(alpha=0.1))
model.add(Conv1DTranspose(filters=128, kernel_size=4, strides=1))
model.add(BatchNormalization(momentum=0.8))
model.add(LeakyReLU(alpha=0.1))
# 1D Convolutional Layer
model.add(Conv1D(filters=128, kernel_size=4, strides=1))
model.add(BatchNormalization(momentum=0.8))
model.add(LeakyReLU(alpha=0.1))
model.add(Conv1D(filters=64, kernel_size=4, strides=1))
model.add(BatchNormalization(momentum=0.8))
model.add(LeakyReLU(alpha=0.1))
model.add(Conv1D(filters=32, kernel_size=4, strides=1))
model.add(BatchNormalization(momentum=0.8))
model.add(LeakyReLU(alpha=0.1))
# output layer
model.add(Dense(n_outputs, activation='sigmoid'))
print('Generator')
model.summary()
return model
错误信息:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-70-a8709ad0f7a6> in <module>()
1 latent_dim = 100
2
----> 3 generator = define_generator(latent_dim)
6 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/convolutional.py in build(self, input_shape)
944 if len(input_shape) != 3:
945 raise ValueError('Inputs should have rank 3. Received input shape: ' +
--> 946 str(input_shape))
947 channel_axis = self._get_channel_axis()
948 if input_shape.dims[channel_axis].value is None:
ValueError: Inputs should have rank 3. Received input shape: (None, 10, 10, 1)
【问题讨论】:
标签: python keras generative-adversarial-network