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