首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras错误:无法将符号Keras输入/输出转换为numpy数组

Keras错误:无法将符号Keras输入/输出转换为numpy数组
EN

Stack Overflow用户
提问于 2021-11-02 18:40:06
回答 1查看 53关注 0票数 0

我有来自RaGan (相对论平均Gan)的代码(部分代码):

代码语言:javascript
复制
def get_ragan_network(generator,discriminator,optimizer):
    imgs_hr = Input(image_shape)
    generated_hr = Input(image_shape)

    Discriminator_real_out = discriminator(imgs_hr)
    Discriminator_fake_out = discriminator(generated_hr)


    Real_Fake_relativistic_average_out = tf.add(Discriminator_real_out,-(K.mean(Discriminator_fake_out, axis=0)))
    Fake_Real_relativistic_average_out = tf.add(Discriminator_fake_out,-(K.mean(Discriminator_real_out, axis=0)))

    epsilon=0.000001 
    def relativistic_discriminator_loss(y_true, y_pred):
        if isinstance(Real_Fake_relativistic_average_out, np.ndarray):
            return -(K.mean(K.log(K.sigmoid(Real_Fake_relativistic_average_out)+epsilon ),axis=0)
                 +K.mean(K.log(1-K.sigmoid(Fake_Real_relativistic_average_out)+epsilon),axis=0))
        else:
            return -(K.mean(K.log(K.sigmoid(Real_Fake_relativistic_average_out)+epsilon ),axis=0)
                 +K.mean(K.log(1-K.sigmoid(Fake_Real_relativistic_average_out)+epsilon),axis=0))

    model = Model([generated_hr,imgs_hr],[Discriminator_real_out,Discriminator_fake_out])

    model.compile(optimizer=optimizer, loss=[relativistic_discriminator_loss,None])
    return model

但是当我执行代码时,我得到了这个错误:

Cannot convert a symbolic Keras input/output to a numpy array. This error may indicate that you're trying to pass a symbolic value to a NumPy call, which is not supported. Or, you may be trying to pass Keras symbolic inputs/outputs to a TF API that does not register dispatching, preventing Keras from automatically converting the API call to a lambda layer in the Functional Model.

我不知道如何解决这个问题。

Numpy版本= 1.19

tensorflow版本= 2.6

EN

回答 1

Stack Overflow用户

发布于 2021-11-03 11:56:58

我认为错误来自下面这一行:isinstance(Real_Fake_relativistic_average_out, np.ndarray),因为Real_Fake_relativistic_average_out来自鉴别器输出,而np.ndarray是一个numpy对象。显然,条件if else语句是无用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69815458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档