关于flux里面的->的解释

深感以后的科研中,Julia语言的重要性与便捷性。打算开始从python向julia转向。

所以从现在开始学习julia的关于机器学习的包还有语法。

今天就来探讨一下Julia里面->的用法。

事情是这样:我在学习julia的机器学习包 flux的时候,其中有一个例子是这样:

using Flux.Tracker

W = param(W)

b = param(b)

gs = Tracker.gradient(() -> loss(x, y), params(W, b)) 

其中对->的用法不是很明白,查了一下发现这个属于匿名函数

根据上面的这个解释,也就是说x-> x^2+2x-1 就是一个函数,自变量是x,只不过没有名字而已。

不只是用x->x^2+2x-1,用function (x) 也是一种定义匿名函数的方法

因为正常定义一个函数是例如:

function 函数名(形式参数)

     Contents...

end

这种匿名函数的作用就是让函数成为一个参数来传递到另外的一个函数中用的。比如:

上面中第二个例子:x->x^2+2x-1就是个函数,把这个函数带到map函数里面(map函数的功能就是让输入的每个自变量都调用一次当作参数传入的函数。ie:1调用一次x->x^2+2x-1, 3调用一次x->x^2+2x-1,-1调用一次x->x^2+2x-1)。

接受多个参数的匿名函数写法可以使用语法 (x,y,z)->2x+y-z,而无参匿名函数写作 ()->3 。无参函数的这种写法看起来可能有些奇怪,不过它对于延迟计算很有必要。这种用法会把代码块包进一个无参函数中,后续把它当做 f 调用。 --来自引用julia官网原话。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值