张量流中的 GAN 训练问题

问题描述

我正在尝试为序列训练 GAN,但以下代码抛出错误。

latent_dim  = 100
def generator():
  gen = Sequential([                  
                    Dense(25* 16,input_dim = latent_dim),LeakyReLU(),Dropout(0.2),Reshape((25,16)),Conv1DTranspose(32,3,2,padding ="same"),BatchNormalization(momentum = 0.7),Conv1DTranspose(64,Conv1D(96,Dense(22,"softmax"),Lambda(lambda x : tf.argmax(x,axis = -1)),])
  print(gen.summary())
  return gen   

def descriminator():
  des = Sequential([
                    InputLayer(input_shape = (max_len,)),Embedding(22,100),Conv1D(32,Conv1D(64,Flatten(),Dense(100),Dense(1,activation= "sigmoid")
    ]) 
  des.compile(tf.keras.optimizers.Adam(0.0003),"binary_crossentropy")
  print(des.summary())
  return des

def Adverserial(gen,des):
  des.trainable = False
  gan = Sequential()
  gan.add(gen)
  gan.add(des)
  gan.compile(tf.keras.optimizers.Adam(0.0003),"binary_crossentropy")
  return gan 

gen = generator()
des = descriminator() 
gan = Adverserial(gen,des)

错误是:

ValueError: 没有为任何变量提供梯度:['dense_44/kernel:0','dense_44/bias:0','conv1d_transpose_22/kernel:0','conv1d_transpose_22/bias:0','batch_normalization_77/gamma: 0','batch_normalization_77/beta:0','conv1d_transpose_23/kernel:0','conv1d_transpose_23/bias:0','batch_normalization_78/gamma:0','batch_normalization_78/beta:0','conv1d_44/kernel:,'conv1d_44/bias:0','batch_normalization_79/gamma:0','batch_normalization_79/beta:0','dense_45/kernel:0','dense_45/bias:0']。

是不是因为Lambda层?如果是这样,我该如何解决?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...