Lecteur rapide UCI BrainScript
Avertissement
UCIFastReader est déconseillé et est remplacé par CNTK Lecteur au format texte. Utilisez CNTK lecteur de format de texte pour vos réseaux.
UCIFastReader lit les données de format UCI basées sur du texte, dans lesquelles chaque enregistrement de données est une ligne de caractéristiques à virgule flottante délimitée par un espace et des valeurs d’étiquette. Les informations d’étiquette sont au début ou à la fin de chaque ligne, si les informations d’étiquette sont fournies. Pour utiliser UCIFastReader, vous définissez la readerType
valeur UCIFastReader
comme dans
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"
]
]
Dans cet exemple, vous pouvez également remarquer deux sous-blocs nommés features
et labels
. Ces noms sont utilisés par les lecteurs de données pour faire correspondre le nœud de calcul de votre réseau et les données chargées à partir des fichiers. Si des générateurs de réseau simples sont utilisés pour créer votre réseau et features
labels
sont les noms standard des nœuds de fonctionnalité et d’étiquette, respectivement. Si vous avez défini votre réseau à l’aide du générateur de réseau NDL, vous devez vous assurer que ces noms correspondent aux nœuds correspondants dans votre réseau. UCIFastReader a les paramètres suivants :
file
: fichier qui contient le jeu de données. Ce paramètre a été déplacé à partir des sous-blocs de fonctionnalités et d’étiquettes, car UCIFastReader exige que le fichier soit le même et que le déplacement vers le haut d’un niveau garantit que cette restriction est remplie.dim
: dimension de la valeur d’entrée. Notez que chaque colonne du fichier de données UCI représente une dimension des données d’entrée.start
: colonne de début (de base zéro) des données d’entrée.labelDim
: nombre de valeurs d’étiquette possibles. Ce paramètre est requis pour les étiquettes catégorielles, car la dimension du nœud d’étiquette sera déterminée par cette valeur. Notez que la valeur d’étiquette elle-même est généralement spécifiée dans une colonne du fichier de données UCI.labelMappingFile
: chemin d’accès à un fichier utilisé pour mapper de la valeur d’étiquette à un identificateur d’étiquette numérique. Le fichier répertorie généralement toutes les valeurs d’étiquette possibles, une par ligne, qui peuvent être du texte ou des valeurs numériques. Le numéro de ligne de base zéro est l’identificateur qui sera utilisé par CNTK pour identifier cette étiquette. Il est important que le même fichier de mappage d’étiquettes soit utilisé pour l’entraînement et l’évaluation. Pour ce faire, déplacez le paramètre labelMappingFile vers le haut afin qu’il puisse être partagé par les blocs d’entraînement et d’évaluation.customDelimiter
: délimiteur personnalisé. Par défaut, les espaces sont utilisés comme délimiteur. Avec ce paramètre, vous pouvez choisir d’utiliser un autre délimiteur tel que des virgules ou des points-virgules en plus des espaces. Notez toutefois que ce lecteur ne gère pas les champs vides, par exemple, deux virgules dans une ligne, avec ou sans espace blanc entre eux.customDecimalPoint
: la virgule décimale personnalisée. Par défaut, le point est utilisé comme point décimal. Avec ce paramètre, vous pouvez choisir d’utiliser un autre point décimal tel que ceux utilisés dans les pays européens.labelType
: pour indiquer comment les colonnes d’étiquette doivent être interprétées. Par défaut, elle est définie sur « Category », ce qui signifie qu’une table de mappage doit être mappée à partir de valeurs (il peut s’agir d’une chaîne) à des ID de classe afin que les valeurs soient converties en représentation à chaud à 1. Il peut être défini sur « Régression » pour indiquer que les valeurs sont utilisées directement sans conversion ou « Aucun » pour indiquer qu’aucune étiquette n’est utilisée.
Autres options :
traceLevel
: entier qui définit le détail du lecteur. Actuellement utilisé : 0 (aucun suivi) et 1. La valeur par défaut est 0.prefetch
: valeur booléenne (« true » ou « false ») indiquant si la prérécupération doit être activée. La prérécupération fait référence au fait que les données sont lues de manière asynchrone au traitement principal. La valeur par défaut est false.randomize
: chaîne (« none », « auto ») contrôlant l’ordre dans lequel les lignes doivent être lues. En cas de « Aucun » ils sont lus dans l’ordre linéaire ; En cas de « auto » ils sont choisis de façon aléatoire ; TODO peut également être un entier sous certaines contraintes.minibatchMode
: s’il est donné et défini sur « partiel », les minibatches partiels sont acceptés ; Sinon, la taille des données d’apprentissage doit être un multiple de la taille de minibatch.