Udostępnij przez


Polecenia najwyższego poziomu z językiem BrainScript

Główne polecenie train najwyższego poziomu itesteval/są opisane na stronie Trenowanie, Testowanie, Eval. Poniżej przedstawiono dalsze polecenia najwyższego poziomu.

Polecenie Adapt

To polecenie dostosowuje już wytrenowany model przy użyciu regularyzacji różnic kl. Zaleca się przeprowadzenie wszystkich innych adaptacji przy użyciu edycji modelu. Polecenie adapt jest bardzo podobne do polecenia train, z wyjątkiem tego, że zawiera dwa kolejne parametry:

  • originalModelFileName: nazwa pliku modelu, który zostanie dostosowany.

  • refNodeName: nazwa węzła w sieci obliczeniowej, która będzie używana do uregulowania różnic w kl.

CV

To polecenie oblicza serię modeli z różnych epok w zestawie projektowym (lub krzyżowym weryfikacji) i wyświetla informacje o najlepszym modelu. Oprócz parametrów używanych do polecenia testowego to polecenie również używa parametrów

  • crossValidationInterval: tablica 3 liczby całkowite identyfikujące epokę początkową, przyrost epoki i końcową epokę do oceny. Na przykład 3:2:9 oznacza, że modele 3,5,7 i 9 zostaną ocenione.

  • sleepTimeBetweenRuns: ile sekund ma czekać między przebiegami. Jest to konieczne tylko wtedy, gdy procesor GPU jest zbyt gorący.

Write , polecenie

To polecenie zapisuje wartość węzła wyjściowego do pliku. Powiązane parametry to

  • reader: blok konfiguracji czytnika w celu odczytania danych wejściowych.

  • writer: blok konfiguracji składnika zapisywania w celu określenia sposobu zapisywania danych wyjściowych. Jeśli ta wartość nie zostanie określona, zostanie użyty parametr outputPath.

  • minibatchSize: rozmiar minibatch używany podczas odczytywania i przetwarzania zestawu danych.

  • epochSize: rozmiar zestawu danych. Wartość domyślna to 0. Cały zestaw danych zostanie oceniony, jeśli jest ustawiony na wartość 0.

  • modelPath: ścieżka do modelu, która ma zostać użyta do obliczenia danych wyjściowych.

  • outputPath: ścieżka do pliku w celu zapisania danych wyjściowych w formacie tekstowym. Jeśli blok zapisywania istnieje, ten parametr zostanie zignorowany. Musi istnieć ścieżka wyjściowa lub składnik zapisywania.

  • outputNodeNames: tablica z co najmniej jedną nazwą węzła wyjściowego, która ma być zapisywana w pliku.

Edytuj polecenie

To polecenie edytuje model i zapisuje zmodyfikowany model w pliku. Jest to przestarzałe. Skojarzone parametry to:

  • editPath: ścieżka do skryptu MEL do wykonania.
  • ndlMacros: ścieżka do pliku makr NDL, który zostanie załadowany i użyty w skrycie MEL.

Polecenie SVD

To polecenie przeprowadza przybliżenie o niskiej rangi z dekompozycją SVD parametrów do nauki. Podstawową motywacją jest faktoryzacja macierzy wagowej z dwiema macierzami niższej rangi w celu poprawy szybkości wnioskowania, zachowując jednocześnie dokładność. Przykład:

svd = [
    action = "SVD"
    modelPath = "train\lstm.model.67"
    outputModelPath = "train\lstm.model.svd"
    SVDConfig = "nodeConfigs"
]

Skojarzone bloki parametrów to:

  • modelPath: określa miejsce ładowania modelu początkowego.

  • outputModelPath: określa miejsce zapisania zmienionego modelu.

  • SVDConfig: plik konfiguracji określający sposób wykonywania svD dla różnych grup węzłów. Ta konfiguracja ma format dwukolumny:

    <NodeNameRegex> <float>

Pierwsza kolumna to wyrażenie regularne, które będzie zgodne z nazwą węzła w jednej grupie. Druga kolumna to zmiennoprzecinkowy wskazujący, jaki procent SVDgia będzie utrzymywany po SVD, gdzie energia SVD jest definiowana jako suma wartości pojedynczych. Na przykład konfiguracja

`LSTMoutput[1-3].Wx[ifco] 0.4`
`LSTMoutput[1-3].Wh[ifco] 0.6`

spowoduje bardziej agresywną dekompozycję SVD (0.4) dla niecyklicznych połączeń (od x do i,f,c,o gates) w LSTM i mniej agresywnych dekompozycji SVD dla cyklicznych połączeń (od h do i,f,c,o gates), gdzie nazwy parametrów są zdefiniowane w NDL.

Dumpnode, polecenie

To polecenie zrzutuje informacje o węzłach do pliku wyjściowego, który można również wykonać w mel z większą kontrolą. Powiązane parametry to:

  • modelPath: ścieżka do pliku modelu zawierającego węzły do zrzutu.

  • nodeName: nazwa węzła, który ma zostać zapisany w pliku. Jeśli nie określono wszystkich węzłów, zostaną po cenach dumpingowych.

  • nodeNameRegex: wyrażenie regularne dla nazw węzłów, które mają być zapisywane w pliku. Jeśli zostanie określony, nodeName parametr zostanie zignorowany.

  • outputFile: ścieżka do pliku wyjściowego. Jeśli nazwa pliku nie zostanie określona, zostanie wygenerowana automatycznie na podstawie elementu modelPath.

  • printValues: określa, czy mają być wyświetlane wartości skojarzone z węzłem, jeśli wartości węzła są utrwalane w modelu. Wartość domyślna to „true”.

  • printMetadata: określa, czy mają być drukowane metadane (nazwa węzła, wymiary itp.) skojarzone z węzłem. Wartość domyślna to „true”.

WriteWordAndClass — polecenie (przestarzałe)

To polecenie odczytuje dane trenowania tekstu, zlicza liczbę wystąpień każdego wyrazu w zestawie treningowym, sortuje wyrazy w kolejności malejącej liczby, nadaje każdemu słowu unikatowy identyfikator, przypisuje każde słowo do klasy i generuje czterokolumny plik słownictwa oraz plik mapowania wyraz-to-id, który ma być używany przez (przestarzałe) LMSequenceReader do trenowania modeli językowych opartych na klasach. Powiązane parametry to:

  • inputFile: ścieżka do pliku trenowania tekstu.

  • outputVocabFile: nazwa wygenerowanego pliku słownictwa z czterema kolumnami. Pierwsza kolumna to identyfikator wyrazu, druga kolumna to liczba wyrazów, trzecia kolumna to słowo, a czwarta kolumna jest identyfikatorem klasy.

  • outputWord2Cls: ścieżka do wygenerowanego pliku mapowania wyraz-klasa.

  • outputCls2Index: ścieżka do wygenerowanego pliku mapowania klasy na wordId.

  • vocabSize: żądany rozmiar słownictwa.

  • nbrClass: żądana liczba klas.

  • cutoff: liczba odcięć. Gdy liczba wyrazów jest niższa lub równa tej wartości, wyraz będzie traktowany jako . Wartość domyślna to 2. Należy pamiętać, że ten parametr jest używany tylko wtedy, gdy żądany rozmiar słownictwa jest większy niż rzeczywista liczba słów w zestawie treningowym.

CreateLabelMap, polecenie

Często łatwo jest ręcznie utworzyć plik mapowania etykiet. Czasami jednak wolisz automatycznie wygenerować plik mapowania etykiet, który jest celem polecenia CreateLabelMap. Obecnie UCIFastReader jest jedynym czytelnikiem obsługującym tę akcję. Powiązane parametry to

  • section: nazwa bloku parametru (zwykle blok pociągu), który ma podblokowania czytnika, który będzie używany do generowania pliku mapowania etykiet. Wygenerowany plik mapowania etykiet zostanie zapisany w folderze labelMappingFile określonym w podblokowania czytnika tego bloku parametrów.

  • minibatchSize: rozmiar minibatch używany podczas tworzenia pliku mapowania etykiet.

DoEncoderDecoder , polecenie

Sieci neuronowe mogą służyć do tworzenia łańcucha sieci. Pierwsze kilka sieci może działać jako kodery, a następujące sieci mogą służyć jako dekodatory. Specjalny węzeł, PairNetworkNode, jest używany w każdej sieci do obsługi gniazda do połączenia przez inne sieci. Powiązane parametry to

  • section: koderReader i decoderReader to czytniki kodera i dekodera. Podobnie dla koderaCVReader i decoderCVReader dla zestawu walidacji.

  • encoderNetworkBuilder i decoderNetworkBuilder: Określają one prostego konstruktora sieci do użycia.

Polecenie BNStat

Ocena średniej i wariancji oceny i testowania zestawu danych dla węzła normalizacji wsadowej jest trudna. Mimo że średnia i wariancja mogą być obliczane za pomocą średniej lub eksploracyjnej podczas trenowania, nadal mamy tendencję do zapewnienia bardziej stabilnej i niezawodnej metody generowania średniej i wariancji normalizacji wsadowej — statystyki normalizacji po partii. Polecenie należy wywołać po trenowaniu. Spowoduje to wygenerowanie średniej i wariancji dla każdej warstwy BN.

  • modelPath: ścieżka do pliku modelu zawierającego wytrenowany model
  • minibatchSize: rozmiar mini-partii podczas oceny, taki sam jak w przypadku minibatchSize trenowania
  • itersPerNode: iteracje statystyk dla każdego węzła normalizacji partii
  • reader: blok konfiguracji czytnika do odczytywania danych testowych. Aby uzyskać szczegółowe informacje, zobacz Blok czytelnika
  • enableDistributedMBReading: odczyt rozproszony w trenowaniu równoległym