关于 Julia MXNet 中符号 API 的查询
Queries regarding Symbolic API in MXNet in Julia
我很难理解 Julia 中 MXNet 的符号 API 细微差别。我在 MXNet 文档中看到了一个示例,其中包含以下行:
act1 = mx.Activation(data = fc1, name=:relu1, act_type=:relu)
为什么 act_type
分配了符号 :relu
.?
:relu
是函数指针吗?如果不是,那么我们在哪里为 :relu
符号赋值?为什么数据没有分配符号?为什么名称分配的是符号而不是字符串?
符号是 "Symbol" 类型变量的有效值。我的猜测是内部有一个 switch
样式语句,它根据传递的符号应用特定的子例程,或者如您所说,符号本身用于调用特定的函数。事实上,它是一个符号而不是一个字符串,这大概只是一个设计问题;没有什么能阻止人们定义这样一个函数,即接受一个字符串参数,然后使用该字符串调用一个函数。
请注意,符号与 "function handle" 不同(我认为您将其混淆)。换句话说,不,您没有将 "function pointer" 作为此语法的参数传递。
数据未分配符号,因为您可能在调用函数时将实际数据作为第一个参数传递。
我很难理解 Julia 中 MXNet 的符号 API 细微差别。我在 MXNet 文档中看到了一个示例,其中包含以下行:
act1 = mx.Activation(data = fc1, name=:relu1, act_type=:relu)
为什么 act_type
分配了符号 :relu
.?
:relu
是函数指针吗?如果不是,那么我们在哪里为 :relu
符号赋值?为什么数据没有分配符号?为什么名称分配的是符号而不是字符串?
符号是 "Symbol" 类型变量的有效值。我的猜测是内部有一个 switch
样式语句,它根据传递的符号应用特定的子例程,或者如您所说,符号本身用于调用特定的函数。事实上,它是一个符号而不是一个字符串,这大概只是一个设计问题;没有什么能阻止人们定义这样一个函数,即接受一个字符串参数,然后使用该字符串调用一个函数。
请注意,符号与 "function handle" 不同(我认为您将其混淆)。换句话说,不,您没有将 "function pointer" 作为此语法的参数传递。
数据未分配符号,因为您可能在调用函数时将实际数据作为第一个参数传递。