Я изо всех сил пытаюсь понять символические нюансы API MXNet в Julia. Я видел пример в MXNet документации, которая имеет следующую строку:Запросы относительно Symbolic API в MXNet в Julia
act1 = mx.Activation(data = fc1, name=:relu1, act_type=:relu)
Почему act_type
присвоен символ :relu
.?
:relu
функция указатель? Если нет, то где мы назначим значение значению :relu
? Почему данным не присвоен символ? Почему имя назначается символом, а не строкой?
Когда вы говорите оператор стиля switch, который выполняется в зависимости от переданного символа - означает ли это, что: символ relu может быть проверен для какого-либо имени. typeof (: relu) даст результат -Symbol. Итак, как мы можем проверить, какой тип символа был принят –
да. это может быть нечто простое, как 'if name ==: relu; callrelu(); elseif name ==: expo; callexpo(); end'. Сказав это, глядя на исходный код, библиотека MXNet, похоже, основана на python. Символы иногда используются в PyCall для вызова соответствующих членов модуля python. например если в python у вас есть 'mx.relu', в julia, который обычно становится' mx [: relu] '. Более чем вероятно, что это то, что происходит здесь, и 'relu' является членом модуля mx' python или что-то в этом роде. –
, как я подозревал, это синтаксис PyCall. Посмотрите на эквивалентную документацию на python. (например, установите mxnet с помощью pip, затем в python выполните 'import mxnet', затем' help (mxnet.symbol.Activation) '). Обратите внимание, что (пока модуль python установлен) вы можете получить одну и ту же информацию через julia, выполнив «использование PyCall», «mxnet = pyimport (« mxnet »);', 'pybuiltin (« help ») (mxnet [ : symbol] [: Activation]) ' –