Быстрое средство чтения UCI BrainScript
Предупреждение
UCIFastReader является нерекомендуемым и заменяется средством чтения CNTK текстового формата. Используйте средство чтения текстового формата CNTK для сетей.
UCIFastReader считывает текстовые данные формата UCI, в которых каждая запись данных представляет собой линию функций с плавающей запятой с разделителями пробелов и значений меток. Сведения о метке — в начале или конце каждой строки, если указана информация о метке. Чтобы использовать UCIFastReader, вы задали значение readerType
as UCIFastReader
in
reader = [
readerType = "UCIFastReader"
file = "c:\cntk\data\mnist\mnist_train.txt"
features = [
dim = 784
start = 1
]
labels = [
dim = 1
start = 0
labelDim = 10
labelMappingFile = "c:\cntk\data\mnist\mnistlabels.txt"
]
]
В этом примере также можно заметить два вложенных блока с именем features
и labels
. Эти имена используются средствами чтения данных для сопоставления вычислительного узла в сети и данных, загруженных из файлов. Если простые сетевые построители используются для создания сети и features
labels
являются стандартными именами узлов компонентов и меток соответственно. Если вы определили сеть с помощью построителя сети NDL, необходимо убедиться, что эти имена соответствуют соответствующим узлам в сети. UCIFastReader имеет следующие параметры:
file
: файл, содержащий набор данных. Этот параметр был перемещен из вложенных блоков функций и меток, так как UCIFastReader требует, чтобы файл был таким же, и перемещение на уровень гарантирует выполнение этого ограничения.dim
: измерение входного значения. Обратите внимание, что каждый столбец в файле данных UCI представляет одно измерение входных данных.start
: начальный столбец (отсчитываемый от нуля) входных данных.labelDim
: количество возможных значений меток. Этот параметр необходим для категориальных меток, так как измерение узла метки будет определяться этим значением. Обратите внимание, что само значение метки обычно указывается в одном столбце в файле данных UCI.labelMappingFile
: путь к файлу, используемому для сопоставления значения метки с идентификатором числовых меток. Файл обычно перечисляет все возможные значения меток, по одной строке, которые могут быть текстовыми или числовыми. Отсчитываемый от нуля номер строки — это идентификатор, который будет использоваться CNTK для идентификации этой метки. Важно, чтобы один и тот же файл сопоставления меток использовался для обучения и оценки. Это можно сделать, переместив параметр labelMappingFile вверх, чтобы его можно было совместно использовать как в блоках обучения, так и для оценки.customDelimiter
: настраиваемый разделитель. По умолчанию пробелы используются в качестве разделителя. С помощью этого параметра можно использовать другой разделитель, например запятую или точку с запятой, в дополнение к пробелам. Обратите внимание, что это средство чтения не обрабатывает пустые поля, например две запятые в строке или без пробелов между ними.customDecimalPoint
: настраиваемая десятичная точка. По умолчанию точка используется в качестве десятичной запятой. С помощью этого параметра можно использовать еще одну десятичную запятую, например те, которые используются в европейских странах.labelType
: указывает, как следует интерпретировать столбцы меток. По умолчанию для него задано значение Category, то есть для сопоставления таблицы сопоставления из значений (может быть строка) с идентификаторами классов, чтобы значения преобразовылись в 1-горячее представление. Можно задать значение "Регрессия", чтобы указать, что значения используются непосредственно без преобразования или "Нет", чтобы указать, что метки не используются.
Другие варианты:
traceLevel
: целое число, определяющее детализацию средства чтения. В настоящее время используется: 0 (без трассировки) и 1. Значение по умолчанию — 0.prefetch
: логическое значение ("true" или "false"), указывающее, следует ли включить предварительную выборку. Предварительная выборка означает, что данные считываются асинхронно в основную обработку. Значение по умолчанию — false.randomize
: строка ("none", "auto") управляет порядком чтения строк. В случае "Нет" они считываются в линейном порядке; В случае "авто" они выбираются случайным образом; TODO также может быть целым числом в определенных ограничениях.minibatchMode
: если задано и задано значение "partial", принимаются частичные мини-баты; В противном случае размер данных для обучения должен быть кратным размером мини-пакета.