【问题标题】:Implementing custom loss function in Keras for adversial loss?在 Keras 中实现自定义损失函数以应对逆向损失?
【发布时间】:2017-08-20 21:53:32
【问题描述】:

我想使用另一个网络的预测在 Keras 中实现自定义损失函数。更具体地说,我想在生成器的损失函数中使用鉴别器生成的预测。但是,当我尝试执行此操作时,出现以下错误:

    if len(array.shape) == 1:
TypeError: object of type 'TensorVariable' has no len()

Keras 是否能够在自定义损失函数中进行网络预测? 谢谢!

【问题讨论】:

    标签: machine-learning theano keras


    【解决方案1】:

    要获取张量的维数,请使用K.ndim 而不是K.shape,例如:

    import keras.backend as K`
    
    def myCustomLoss(x):
        if K.ndim(x) == 3:
            print("is 3")
    

    请注意,诸如array 之类的值只是位于某些 设备(例如您的GPU)上的数据的占位符。因此,像len(array) 这样的东西将不起作用,因为后端必须首先获取这些值,并且它不会自动执行此操作,因为那样效率低下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-19
      • 2017-12-18
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2019-03-10
      • 1970-01-01
      相关资源
      最近更新 更多