请教大佬,函数后面又加一个参数,这是什么意思?

2018-01-11 21:19:15 +08:00
 winglight2016

代码如下:

input_tensor = Input(shape=(64,))

x = layers.Dense(32, activation='relu')(input_tensor)

给个关键字我去查一下也是好的^_^

这种函数式语言对 java 程序员太不友好了~~~

3171 次点击
所在节点    Python
15 条回复
mx1700
2018-01-11 21:54:25 +08:00
因为函数的返回值还是个函数
whow
2018-01-11 23:39:27 +08:00
柯里化
azh7138m
2018-01-12 08:52:57 +08:00
1 楼正解
返回值是个函数
XIVN1987
2018-01-12 09:14:27 +08:00
python 里不光函数能调用,callable 的对象也能像函数那样调用

对象想要 callable,只需要它的类实现__call__()方法即可,,这样 objectA()就相当于 objectA.__call__()
mooncakejs
2018-01-12 09:30:11 +08:00
JAVA 也能这么用的
NaVient
2018-01-12 10:14:44 +08:00
Java 也能这么用的
winglight2016
2018-01-12 12:10:23 +08:00
@whow 难怪觉得有点眼熟,scala 里面就是这样的
@mooncakejs
@NaVient
java 怎么这样用的?根本不支持函数式啊,lambda 不能算吧
@XIVN1987 哦呵呵,明白了
@mx1700 感谢大佬,我后来想了想,只能这样解释了
hcnhcn012
2018-01-12 12:21:39 +08:00
Dence 可能是一个闭包结构,返回的是内层函数的引用,再加一个括号就形成内层函数的调用
ryd994
2018-01-12 12:46:05 +08:00
@azh7138m,这不是 curry
curry 是 f(a,b,c)也可以写作 f(a)(b)(c)
Python 里少参数会直接报错的
winglight2016
2018-01-12 19:45:06 +08:00
@ryd994 克里化效果跟这个是一样的,也是返回一个函数来处理后面的参数
azh7138m
2018-01-13 00:08:17 +08:00
@ryd994 你把 mx1700B 了吧?咱俩看到的不是一个一楼
ryd994
2018-01-13 00:26:22 +08:00
@azh7138m 不,单纯点错人了,抱歉
重新点一下 @whow
这不是 curry,参见楼上上我说的
quinoa42
2018-01-14 06:08:38 +08:00
@ryd994 传入一个参数返回一个函数(这个函数再传入一个函数可以返回一个函数或返回结果)这样的过程就是 curry,无非有的语言有语法糖支持(比如 ML 系直接 fun a b c,racket 的(define (((f x) y) z)...)等等)有的语言没有罢了
当然没有语法糖支持的语言里用 curry 很蛋疼就是了…
ryd994
2018-01-14 10:39:44 +08:00
@quinoa42 wiki:In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments (or a tuple of arguments) into evaluating a sequence of functions, each with a single argument. Currying is related to, but not the same as, partial application.

函数返回函数那叫 metaprogramming
quinoa42
2018-01-14 10:56:21 +08:00
@ryd994 确实是我用词不是很准确,但是确实这应该算 curried function,具体也可以参考你给的 wiki

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/422166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX