【问题标题】:Python Lambda function usagePython Lambda 函数使用
【发布时间】:2018-04-02 11:22:19
【问题描述】:

我遇到过这行代码。

loss={'ctc': lambda y_true, y_pred: y_pred}

1. lambda在这里的作用是什么?

2。 'ctc' 在这里有什么用?

【问题讨论】:

  • 这是损失参考吗?
  • 关于“ctc”,可能在代码的其他地方恢复了,比如loss['ctc']loss['ctc'](arg1,arg2)

标签: python lambda keras loss-function


【解决方案1】:

lambda函数返回第二个参数:y_pred 就像这个函数一样:

def foo(y_true, y_pred):
    return y_pred

'ctc'的使用是作为字典loss中的键:

loss['ctc'] = lambda y_true, y_pred: y_pred

例如我可以这样做:

loss['ctc'](0, 1)

这将返回 1

【讨论】:

    【解决方案2】:

    这里是lambda本身的函数,

    lambda y_true, y_pred: y_pred
    

    对应函数,

    def something(y_true, y_pred):
       return y_pred
    

    y_true, y_pred 都是传入函数的参数,

    y_pred返回值,存储在键'ctc'中

    【讨论】:

      【解决方案3】:
      lambda y_true, y_pred: y_pred
      

      可以扩展为:

      def foo(y_true, y_pred):
          return y_pred  
      # function takes two parameters, returns second parameter.
      

      关于 lambda 的注意事项

      • lambda 运算符或 lambda 函数是一种创建小 匿名函数。

      • Lambda 函数是一次性函数,即只在创建它们的地方需要它们。

      ctc 是字典 loss 中的一个键。

      loss = {'ctc': lambda y_true, y_pred: y_pred}
      

      也可以写成,

      loss['ctc'] = lambda y_true, y_pred: y_pred
      

      【讨论】:

      • 不是返回的项目,它存储了要从字典中调用的函数本身。
      猜你喜欢
      • 1970-01-01
      • 2021-09-19
      • 2018-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 2015-10-21
      相关资源
      最近更新 更多