遇到一个看不懂的语法,文档里也找不到,据称是Julia1.0.0,具体如下:
abstract type ActivationFunction end
struct ReLU <: ActivationFunction end
(f::ReLU)(x) = max.(x,0)
前两行我看懂是创建抽象类型和创建复合类型,请问第三行里(f::ReLU)(x)是什么作用?
遇到一个看不懂的语法,文档里也找不到,据称是Julia1.0.0,具体如下:
abstract type ActivationFunction end
struct ReLU <: ActivationFunction end
(f::ReLU)(x) = max.(x,0)
前两行我看懂是创建抽象类型和创建复合类型,请问第三行里(f::ReLU)(x)是什么作用?
相当于functor,给某个类型的对象添加方法,使之可被调用
f=ReLU()
f(0)
如果你用不到这个对象自身,写成(::ReLU)(x)=...
就行