Обучение BrainScript, тестирование, Eval
Здесь мы рассмотрим основные команды train
верхнего уровня и test
/eval
соответствующие параметры. Дополнительные команды верхнего уровня см. на соответствующей странице.
Команда обучения
Эта команда запрашивает CNTK для обучения модели. Пример раздела train
команды приведен на странице обзора файла конфигурации . Связанные параметры:
reader
— блок конфигурации средства чтения, используемый для определения способа загрузки входных данных. Дополнительные сведения см. в блоке чтения.SGD
— настройка обучения НАО. Дополнительные сведения см. в блоке JSON.BrainScriptNetworkBuilder
— блок конфигурации BrainScript. Дополнительные сведения см. в построителе сети BrainScript.SimpleNetworkBuilder
— простой блок конфигурации построителя сети. Дополнительные сведения см. в простом построителе сети.cvReader
— (необязательно) блок конфигурации средства чтения для данных перекрестной проверки.makeMode
— если заданоtrue
значение (по умолчанию), обучение будет продолжаться с любой прерванной эпохи. Если задано значениеfalse
для обучения, будет перезапущено с нуля.firstMBsToShowResult
— указывает, сколько мини-пакетов в начале эпохи отображает промежуточные результаты по отдельности.numMBsToShowResult
— указывает, сколько мини-пакетов должны отображаться промежуточные результаты.
Команда Test или Eval
Эти команды оценивают и тестируют модель для точности, обычно с помощью тестового набора данных. Связанные параметры:
reader
— блок конфигурации средства чтения для чтения тестовых данных. Дополнительные сведения см. в блоке чтения.modelPath
— путь к модели для оценки.BrainScriptNetworkBuilder
— если это задано, модель не только считывается,modelPath
но и создается на основе этой конфигурации. Он используется для изменения моделей на лету для оценки.minibatchSize
— размер мини-пакета, используемый при чтении и обработке набора данных.epochSize
— размер набора данных. По умолчанию —0
. Весь набор данных будет оцениваться, если он имеет значение0
.numMBsToShowResult
— указывает, сколько мини-пакетов должны отображаться промежуточные результаты.evalNodeNames
— массив из одного или нескольких имен узлов для оценки.distributedMBReading
— принимает логическое значение: true или false; значение по умолчанию — false. Оно должно иметь значение true для читателей, поддерживающих распределенное чтение мини-пакетов. Если вы используете CNTK средство чтения текстовых форматов, средство чтения изображений или составное средство чтения данных, необходимо задать значение distributedMBReading=true.
В следующем примере взят пример Simple2d. В этом примере modelPath
определяется на верхнем уровне и автоматически выбирается как командой train
, так и test
командой.
Simple_Demo_Test = [
action = "test"
# Parameter values for the reader
reader = [
readerType = "CNTKTextFormatReader"
file = "$DataDir$/SimpleDataTest_cntk_text.txt"
randomize = false
input = [
features = [
dim = 2 # two-dimensional input data
format = "dense"
]
labels = [
dim = 2 # two-dimensional labels
format = "dense"
]
]
]
]