我正在喀拉斯实施一个wgan-gp,在这里我计算两个张量的随机加权平均值。
def random_weighted_average(self, generated, real):
alpha = K.random_uniform(shape=K.shape(real))
diff = keras.layers.Subtract()([generated, real])
return keras.layers.Add()([real, keras.layers.Multiply()([alpha, diff])])
这就是它的使用方法。一旦我尝试创建
discriminator_model
.
averaged_samples = self.random_weighted_average(
generated_samples_for_discriminator,
real_samples)
averaged_samples_out = self.discriminator(averaged_samples)
discriminator_model = Model(
inputs=[real_samples, generator_input_for_discriminator],
outputs=[
discriminator_output_from_real_samples,
discriminator_output_from_generator,
averaged_samples_out
])
我的后端是TensorFlow。当我使用
alpha
在最后一行中,我得到以下错误:
AttributeError: 'Tensor' object has no attribute '_keras_history'
我试着交换
阿尔法
两个都出去
real
和
generated
看看它是否与后端张量有关,情况就是这样(错误消失了)。那么是什么导致了这个问题呢?我需要一个形状为
真实的
或
生成
.