我正在尝试使用最新的Keras包和Tensorflow后端和python3.6构建一个critic网络,作为Wasserstein远程生成对抗网络的一部分。以下是网络体系结构的代码:
def build_critic():
critic = Sequential(name='critic')
critic.add(Conv2D(64, (3, 3), padding='same',
kernel_initializer='he_normal', input_shape=
(48,48,1),data_format='channels_last'))
critic.add(LeakyReLU())
critic.add(Conv2D(128, (3, 3), padding='same',
kernel_initializer='he_normal'))
critic.add(LeakyReLU())
critic.add(Conv2D(128, (3, 3), padding='same',
kernel_initializer='he_normal'))
critic.add(LeakyReLU())
critic.add(Conv2D(256, (3, 3), padding='same',
kernel_initializer='he_normal'))
critic.add(LeakyReLU())
critic.add(GlobalMaxPooling2D(data_format='channels_last'))
critic.add(Dense(100))
critic.add(LeakyReLU())
critic.add(Dense(1))
return critic
在试图编译网络时,我得到了一个错误:
InvalidArgumentError (see above for traceback): Matrix size-incompatible: In[0]: [256,48], In[1]: [256,100] [[Node: critic_2/dense_2/MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:CPU:0"](critic_2/global_max_pooling2d_1/Max, dense_2/kernel/read)]]
我明白错误在抱怨什么。为了将大小为AxB和CxD的两个矩阵相乘,B必须等于C,而这里B=48和C=256。如何设置C?或者还有其他问题需要我考虑吗?在
以下是generator和Critical网络的网络摘要:
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐