python - Python Lambda 函数
问题描述
所以我在这里有这个功能,谁能解释这里发生了什么?我知道函数体中发生了什么,但不知道 lambda 函数如何工作我是 lambda 函数的新手,所以我不确定函数返回的方式或内容。t 和 c 到底是什么?
def get_gradient(self, A, b, x, beta):
return (lambda t,c: (2*self.lambda_*x - A.T@(b*t)/c, sum(-b*t)/c))(1/(1+np.exp(b*(A@x+beta))), A.shape[0]
A 是矩阵,b 和 x 是列向量,而 beta 和 lambda_ 是标量
解决方案
在这里,get_gradient(self, A, b, x, beta)
返回一个函数。换句话说,它是一个将定义另一个函数并将其作为输出返回的函数。如果您想根据不同类型的参数定义许多函数,这很有用。
我将向您推荐这篇文章,以获取有关lambda
函数及其典型用途的更多信息。
但是在您的情况下,一个更简单的示例可能会帮助您了解发生了什么!假设您有:
def f(a):
return lambda x: x**a
在这里, f 返回一个函数,该函数将 a 的幂应用于其输入。
一旦你有了这个,你可以这样做:
g = f(2)
结果与您所做的基本相同:
def g(x):
return x**2
无论哪种情况,您现在都可以执行以下操作:
g(5)
# > 25
推荐阅读
- reactjs - props 是未定义的 react,试图访问无状态组件中传递的 props
- shell - Npm run 在 crontab (cronjob) 中不起作用
- pytorch - 如何向量化强化学习环境?
- python-3.x - 消除python中的括号
- c++ - 尝试编译时的 Visual Code C++“没有这样的文件或目录”消息
- python - CentOS 6.9 上 python3.6.8 的 tensorflow 2.0 兼容的 GLIBC 版本是什么?
- ruby-on-rails - Rails 正在从 js.erb 渲染一个空的部分
- php - phpfmt php 格式化扩展错误: phpfmt: php_bin "php" is invalid
- r - 创建列出不同观察的列
- javascript - 2CheckOut - TwoCheckoutException:错误请求 - 参数错误