Каков подходящий синтаксис для определения EvaluationNodes в CNTK Brainscript?

Как правильно определить несколько узлов оценки с помощью Brainscript в CNTK 2.1 для определения базовой сети?

Я создал некоторые пользовательские функции и хочу использовать их вместе/одновременно, однако, когда я использую список, разделенный запятыми, в соответствии с https://docs.microsoft.com/en-us/cognitive-toolkit/Special-Nodes возникает следующая ошибка

[CALL STACK]
                evalNodes = (ce, te, tm)
                   ^
EXCEPTION occurred. while parsing: BrainScriptNetworkBuilder(27): ')' expected

При попытке использовать подход «тег» я сталкиваюсь со следующей ошибкой

                ce = ClassificationError (labels, out.z, tag=eval)
                                                 ^
EXCEPTION occurred. while evaluating: BrainScriptNetworkBuilder(21): unknown identifier 'eval'

Несомненно, проблема в PEBKAC, хотя я был бы очень признателен за указание или два правильного способа достижения этого результата.


person Peter    schedule 12.09.2017    source источник


Ответы (1)


BrainScript чувствителен к регистру. Пожалуйста, измените evalNodes на EvalNodes. Для тега в ClassificationError используйте строку для тега:

ce = ClassificationError(labels, out.z, tag='eval')
person KeD    schedule 12.09.2017
comment
Использование EvalNodes не помогло [СТЕК ВЫЗОВОВ] EvalNodes = (ce,tc,te,tm) ^ ИСКЛЮЧЕНИЕ. при синтаксическом анализе: BrainScriptNetworkBuilder(29): ')' ожидается - person Peter; 14.09.2017
comment
Он может принимать только один узел. Если вам нужно оценить несколько показателей, используйте evalNodeNames. - person KeD; 15.09.2017