Dela via


BrainScript UCI Snabb läsare

Varning

UCIFastReader är inaktuell och ersätts av CNTK textformatläsare. Använd CNTK textformatläsare för dina nätverk.


UCIFastReader läser textbaserade UCI-formatdata, där varje datapost är en rad med utrymmesavgränsade flyttalsfunktioner och etikettvärden. Etikettinformationen är antingen i början eller slutet av varje rad, om etikettinformation tillhandahålls. Om du vill använda UCIFastReader anger readerType du till UCIFastReader som i

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"
    ]
]

I det här exemplet kan du också se två underblock med namnet features och labels. Dessa namn används av dataläsarna för att matcha beräkningsnoden i nätverket och de data som läses in från filerna. Om enkla nätverksbyggare används för att skapa nätverket features och labels är standardnamnen för funktionen respektive etikettnoderna. Om du har definierat nätverket med NDL-nätverksverktyget måste du se till att namnen matchar motsvarande noder i nätverket. UCIFastReader har följande parametrar:

  • file: filen som innehåller datauppsättningen. Den här parametern har flyttats upp från underblocken funktioner och etiketter, eftersom UCIFastReader kräver att filen är densamma och om du flyttar upp en nivå ser du till att den här begränsningen uppfylls.

  • dim: dimensionen för indatavärdet. Observera att varje kolumn i UCI-datafilen representerar en dimension av indata.

  • start: startkolumnen (nollbaserad) för indata.

  • labelDim: antalet möjliga etikettvärden. Den här parametern krävs för kategoriska etiketter eftersom etikettnodens dimension bestäms av det här värdet. Observera att själva etikettvärdet vanligtvis anges i en kolumn i UCI-datafilen.

  • labelMappingFile: sökvägen till en fil som används för att mappa från etikettvärdet till en numerisk etikettidentifierare. Filen visar vanligtvis alla möjliga etikettvärden, en per rad, som kan vara text eller numeriskt. Det nollbaserade radnumret är identifieraren som ska användas av CNTK för att identifiera etiketten. Det är viktigt att samma etikettmappningsfil används för träning och utvärdering. Detta kan göras genom att flytta parametern labelMappingFile uppåt så att den kan delas av både tränings- och utvärderingsblocken.

  • customDelimiter: den anpassade avgränsare. Som standard används blanksteg som avgränsare. Med den här parametern kan du välja att använda en annan avgränsare, till exempel kommatecken eller semikolon utöver blanksteg. Observera dock att den här läsaren inte hanterar tomma fält, t.ex. två kommatecken i rad, med eller utan blanksteg däremellan.

  • customDecimalPoint: den anpassade decimalpunkten. Som standard används punkt som decimal. Med den här parametern kan du välja att använda en annan decimalpunkt, till exempel de som används i europeiska länder.

  • labelType: för att ange hur etikettkolumnerna ska tolkas. Som standard är den inställd på "Kategori", vilket innebär att det krävs en mappningstabell för att mappa från värden (kan vara sträng) till klass-ID:t så att värden konverteras till en 1-frekvent representation. Det kan anges till "Regression" för att indikera att värdena används direkt utan konvertering eller "Ingen" för att indikera att inga etiketter används.

Andra alternativ:

  • traceLevel: Ett heltal som definierar läsarens utförlighet. Används för närvarande: 0 (ingen spårning) och 1. Standardvärdet är 0.
  • prefetch: Ett booleskt värde ("sant" eller "falskt") som anger om prefetching ska aktiveras. Prefetching refererar till det faktum att data läses asynkront till huvudbearbetningen. Standardvärdet är falskt.
  • randomize: En sträng ("none", "auto") som styr i vilken ordning raderna ska läsas. I händelse av "Ingen" läss de i linjär ordning. I händelse av "automatisk" väljs de slumpmässigt; TODO kan också vara ett heltal under vissa begränsningar.
  • minibatchMode: Om de ges och anges till "partiella" accepteras partiella minibatcher. Annars måste träningsdatastorleken vara en multipel av minibatchstorleken.