Lector rápido de BrainScript UCI
Advertencia
UCIFastReader está en desuso y se reemplaza por CNTK Lector de formato de texto. Use CNTK Lector de formato de texto para sus redes.
UCIFastReader lee los datos de formato UCI basados en texto, en los que cada registro de datos es una línea de valores de etiqueta y características de punto flotante delimitadas por espacio. La información de la etiqueta se encuentra al principio o al final de cada línea, si se proporciona información de etiqueta. Para usar UCIFastReader, establezca en readerType
UCIFastReader
como en
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"
]
]
En este ejemplo también puede observar dos sub bloques denominados features
y labels
. Los lectores de datos usan estos nombres para que coincidan con el nodo de cálculo de la red y los datos cargados desde los archivos. Si se usan generadores de red simples para crear la red features
y labels
son los nombres estándar de los nodos de característica y etiqueta, respectivamente. Si ha definido la red mediante el generador de redes NDL, debe asegurarse de que estos nombres coincidan con los nodos correspondientes de la red. UCIFastReader tiene los parámetros siguientes:
file
: el archivo que contiene el conjunto de datos. Este parámetro se ha movido de los sub bloques de características y etiquetas, ya que UCIFastReader requiere que el archivo sea el mismo y mover un nivel garantiza que se cumpla esta restricción.dim
: la dimensión del valor de entrada. Tenga en cuenta que cada columna del archivo de datos UCI representa una dimensión de los datos de entrada.start
: la columna de inicio (basada en cero) de los datos de entrada.labelDim
: el número de valores de etiqueta posibles. Este parámetro es necesario para las etiquetas de categorías, ya que este valor determinará la dimensión del nodo de etiqueta. Tenga en cuenta que el propio valor de etiqueta se especifica normalmente en una columna del archivo de datos UCI.labelMappingFile
: la ruta de acceso a un archivo que se usa para asignar el valor de la etiqueta a un identificador de etiqueta numérico. El archivo suele enumerar todos los valores de etiqueta posibles, uno por línea, que podría ser texto o numérico. El número de línea de base cero es el identificador que usará CNTK para identificar esa etiqueta. Es importante que se use el mismo archivo de asignación de etiquetas para el entrenamiento y la evaluación. Esto se puede hacer moviendo el parámetro labelMappingFile hacia arriba para que pueda compartirlo los bloques de entrenamiento y evaluación.customDelimiter
: el delimitador personalizado. De forma predeterminada, los espacios se usan como delimitador. Con este parámetro, puede optar por usar otro delimitador, como comas o punto y coma, además de espacios. Sin embargo, tenga en cuenta que este lector no controla campos vacíos, por ejemplo, dos comas en una fila, con o sin espacios en blanco entre sí.customDecimalPoint
: el separador decimal personalizado. De forma predeterminada, el punto se usa como separador decimal. Con este parámetro puede optar por usar otro separador decimal, como los usados en países europeos.labelType
: para indicar cómo se deben interpretar las columnas de etiqueta. De forma predeterminada, se establece en "Category", lo que significa que requiere una tabla de asignación para asignar valores (puede ser cadena) a identificadores de clase para que los valores se conviertan en una representación activa. Se puede establecer en "Regresión" para indicar que los valores se usan directamente sin ninguna conversión o "None" para indicar que no se usan etiquetas.
Otras opciones:
traceLevel
: entero que define el nivel de detalle del lector. Usado actualmente: 0 (sin seguimiento) y 1. El valor predeterminado es 0.prefetch
: un valor booleano ("true" o "false") que indica si se debe habilitar la captura previa. La captura previa hace referencia al hecho de que los datos se leen de forma asincrónica al procesamiento principal. El valor predeterminado es "false".randomize
: una cadena ("none", "auto") que controla el orden en el que se deben leer las líneas. En el caso de "Ninguno" se leen en orden lineal; En el caso de "auto" se seleccionan aleatoriamente; TODO también puede ser un entero bajo ciertas restricciones.minibatchMode
: si se especifica y se establece en "parcial", se aceptan minibaches parciales; De lo contrario, el tamaño de los datos de entrenamiento debe ser un múltiplo del tamaño del minibatch.