Команды верхнего уровня с помощью BrainScript
Основная команда train
верхнего уровня описана eval
/test
на странице "Обучение", "Тестирование", "Eval ". Дополнительные команды верхнего уровня подробно описаны ниже.
Команда Adapt
Эта команда адаптирует уже обученную модель с помощью регуляризации расхождений KL. Рекомендуется проводить все другие адаптации с помощью редактирования моделей. Команда адаптации очень похожа на команду train, за исключением того, что она содержит еще два параметра:
originalModelFileName
: имя файла модели, которая будет адаптирована.refNodeName
: имя узла в вычислительной сети, которая будет использоваться для нормализации дивергенции KL.
CV
Эта команда оценивает ряд моделей из разных эпох в наборе разработки (или перекрестной проверки) и отображает сведения о лучшей модели. Помимо параметров, используемых для команды теста, эта команда также использует параметры.
crossValidationInterval
: массив из 3 целых чисел, определяющих начальную эпоху, приращение эпохи и окончательную эпоху для вычисления. Например, 3:2:9 означает, что модели 3,5,7 и 9 будут оцениваться.sleepTimeBetweenRuns
: сколько секунд следует ожидать между запусками. Это необходимо только в том случае, если ваш GPU слишком горячий.
Команда Write
Эта команда записывает значение выходного узла в файл. Связанные параметры:
reader
: блок конфигурации средства чтения для чтения входных данных.writer
: блок конфигурации модуля записи, определяющий способ записи выходных данных. Если это значение не указано, будет использоваться параметр outputPath.minibatchSize
: размер мини-пакета, используемый при чтении и обработке набора данных.epochSize
: размер набора данных. Значение по умолчанию — 0. Весь набор данных будет оцениваться, если он имеет значение 0.modelPath
: путь к модели, используемой для вычисления выходных данных.outputPath
: путь к файлу для записи выходных данных в текстовом формате. Если блок модуля записи существует, этот параметр будет игнорироваться. Должен существовать выходной путь или модуль записи.outputNodeNames
: массив из одного или нескольких имен выходных узлов, записываемых в файл.
Команда "Изменить"
Эта команда изменяет модель и сохраняет измененную модель в файл. Мы не рекомендуем использовать этот метод. Связанные параметры:
editPath
: путь к выполняемой скрипту MEL.ndlMacros
: путь к файлу макросов NDL, который будет загружен и использован в скрипте MEL.
Команда SVD
Эта команда проводит приближение с низким рангом с декомпозицией SVD обучаемых параметров. Основная мотивация заключается в факторизации матрицы веса с двумя матрицами нижнего ранга для повышения скорости вывода, сохраняя точность. Пример:
svd = [
action = "SVD"
modelPath = "train\lstm.model.67"
outputModelPath = "train\lstm.model.svd"
SVDConfig = "nodeConfigs"
]
Связанные блоки параметров:
modelPath
: указывает место загрузки начальной модели.outputModelPath
: указывает место сохранения измененной модели.SVDConfig
: файл конфигурации, указывающий, как выполняется SVD для разных групп узлов. Эта конфигурация имеет формат двух столбцов:<NodeNameRegex> <float>
Первый столбец — это регулярное выражение, которое будет соответствовать имени узла в одной группе. Второй столбец — это число с плавающей запятой, указывающее, какой процент SVDdl будет храниться после SVD, где svD-энергия определяется как сумма сингулярных значений. Например, конфигурация
`LSTMoutput[1-3].Wx[ifco] 0.4`
`LSTMoutput[1-3].Wh[ifco] 0.6`
вызовет более агрессивную декомпозицию SVD (0,4) для некриметрических соединений (от x до i,f,c,o шлюзов) в LSTM и менее агрессивной декомпозиции SVD для повторяющихся соединений (от h к i,f,c,o шлюза), где имена параметров определяются в NDL.
Команда Dumpnode
Эта команда сбрасывает сведения о узлах в выходной файл, который также можно выполнить в MEL с большим контролем. Связанные параметры:
modelPath
: путь к файлу модели, содержащающим узлы для дампа.nodeName
: имя узла, записываемого в файл. Если не указано, все узлы будут дампами.nodeNameRegex
: регулярное выражение для имен узлов, записываемых в файл. Если этот параметр указан,nodeName
параметр игнорируется.outputFile
: путь к выходному файлу. Если имя файла не указано, будет автоматически создано на основе modelPath.printValues
: определяет, следует ли выводить значения, связанные с узлом, если значения узла сохраняются в модели. Значение по умолчанию — true.printMetadata
: определяет, следует ли выводить метаданные (имя узла, измерения и т. д.), связанные с узлом. Значение по умолчанию — true.
Команда WriteWordAndClass (не рекомендуется)
Эта команда считывает обучающие данные текста, подсчитывает количество вхождений каждого слова в обучающем наборе, сортирует слова в порядке убывания счетчиков, присваивает каждому слову уникальный идентификатор, присваивает каждое слово классу и создает файл сопоставления с четырьмя столбцами и файл сопоставления слов с идентификатором, используемый (нерекомендуемым) LMSequenceReader для обучения языковых моделей на основе классов. Связанные параметры:
inputFile
: путь к текстовому файлу обучения.outputVocabFile
: имя созданного файла словаря из четырех столбцов. Первый столбец — это идентификатор слова, второй — количество слов, третий столбец — слово, а четвертый — идентификатор класса.outputWord2Cls
: путь к созданному файлу сопоставления слов с классом.outputCls2Index
: путь к созданному файлу сопоставления class-to-wordId.vocabSize
: требуемый размер словаря.nbrClass
: требуемое количество классов.cutoff
: число отсечений. Если число слов ниже или равно этому значению, слово будет рассматриваться как . По умолчанию используется значение 2. Обратите внимание, что этот параметр используется только в том случае, если нужный размер словаря превышает фактическое количество слов в обучаемом наборе.
Команда CreateLabelMap
Часто легко создать файл сопоставления меток вручную. Однако иногда рекомендуется создать автоматически файл сопоставления меток, который является целью команды CreateLabelMap. В настоящее время UCIFastReader является единственным средством чтения, поддерживающим это действие. Связанные параметры:
section
: имя блока параметров (обычно это блок обучения), который содержит вложенный блок чтения, который будет использоваться для создания файла сопоставления меток. Созданный файл сопоставления меток будет сохранен в файле labelMappingFile, указанном в вложенном блоке чтения этого блока параметров.minibatchSize
: размер мини-пакетов, используемый при создании файла сопоставления меток.
Команда DoEncoderDecoder
Нейронные сети можно использовать для формирования цепочки сетей. Первые несколько сетей могут работать в качестве кодировщиков, а следующие сети могут служить декодировщиками. Специальный узел PairNetworkNode используется в каждой сети для обслуживания сокета для подключения другими сетями. Связанные параметры:
section
: encoderReader и decoderReader — это средства чтения для кодировщика и декодера. Аналогично для кодировщикаCVReader и декодераCVReader для набора проверки.encoderNetworkBuilder
иdecoderNetworkBuilder
: они указывают простой построитель сети, который будет использоваться.
Команда BNStat
Оценка среднего и дисперсии оценки и тестирования набора данных для узла пакетной нормализации является сложной задачей. Несмотря на то, что среднее и дисперсию можно вычислить путем выполнения среднего или экспультирования во время обучения, мы по-прежнему предоставляем более стабильный и надежный метод для создания среднего и дисперсии пакетной нормализации - после нормализации пакета статистики. После обучения необходимо вызвать команду. Он создаст среднее и дисперсию для каждого слоя BN.
modelPath
: путь к файлу модели с обученной моделью.minibatchSize
: мини-пакетный размер при оценке, то же самое, что и для обучения minibatchSizeitersPerNode
: итерации статистики для каждого узла нормализации пакетаreader
: блок конфигурации средства чтения для чтения тестовых данных. Дополнительные сведения см. в разделе "Блок чтения"enableDistributedMBReading
: распределенное чтение в параллельном обучении