Udostępnij za pośrednictwem


interfejs API języka C# biblioteki CNTK

Interfejs API zarządzany przez bibliotekę CNTK jest implementowany w języku C# i może być używany przez język C# i inne języki platformy .NET. Strona Using the CNTK Library Managed API and Using CNTK with C# (Korzystanie z interfejsu API zarządzanego w bibliotece CNTK) oraz Using CNTK with C# (Używanie CNTK w języku C#) przedstawia sposób używania tego interfejsu API w aplikacji. W poniższych sekcjach opisano klasy i metody zarządzanego interfejsu API oceny biblioteki CNTK.

klasa CNTKLib

Jest to klasa statyczna zawierająca wiele operacji, inicjowania i wiele różnych metod.


public static Function Negate(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji negacji elementów CNTK z określonym operandem wejściowym. Parametry:

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Sigmoid(Variable operand, string name = "")

Operacja sigmoidowa. Przyjmuje zmienną wejściową i stosuje do niej operację Sigmoid.

Parametry:

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Tanh(Variable operand, string name)

Aktywacja Tanh. Przyjmuje zmienną wejściową i stosuje do niej operację Tanh.

Parametry:

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Asin(Variable operand, string name = "");

Utwórz wystąpienie CNTK wbudowanej operacji w sposób podobny do operacji z określonym operandem wejściowym.

Parametry:

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Sin(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji sinusu CNTK elementowego z określonym operandem wejściowym. Parametry:

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Acos(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji acos CNTK elementów z określonym operandem wejściowym.

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Cos(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji kosinusowej CNTK elementu z określonym operandem wejściowym.

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Cosh(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji kosh z CNTK elementami za pomocą określonego operandu wejściowego.

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Sinh(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji sinh CNTK elementwise z określonym operandem wejściowym.

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function ReLU(Variable operand, string name = "")

Aktywacja liniowa prostownika. Przyjmuje zmienną wejściową i stosuje do niej operację aktywacji liniowej prostownika.

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Exp(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji eksplodowania CNTK elementu za pomocą określonego operandu wejściowego.

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Log(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji dziennika elementów CNTK z określonym operandem wejściowym.

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Square(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji kwadratu CNTK elementami przy użyciu określonego operandu wejściowego.

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Sqrt(Variable operand, string name = "");

Utwórz wystąpienie CNTK wbudowanej operacji pierwiastek kwadratowy z określonym operandem wejściowym.

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Softmax(Variable operand, Axis axis, string name = "")

Utwórz wystąpienie wbudowanej operacji softmax CNTK na określonej osi na określonej osi wejściowej tensor parametry operandu:

  • operand: zmienna wejściowa operacji. Może to być argument innej funkcji.
  • axis: oś do zastosowania operacji softmax
  • name: nazwa operacji.

public static Function Hardmax(Variable operand, string name = "");

Tworzenie wystąpienia wbudowanej operacji hardmax CNTK dla określonego operandu wejściowego tensor

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Transpose(Variable operand, string name = "");

Tworzenie wystąpienia wbudowanej operacji transponowania CNTK na określonym operandzie wejściowym 1D lub 2D

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Dropout(Variable operand, dropoutRate, uint seed, string name = "");

Tworzenie wystąpienia operacji dropout dla określonego operandu wejściowego tensor

  • operand: zmienne wejściowe. Może to być argument innej funkcji.
  • dropoutRate:
  • seed:
  • name: nazwa operacji.

public static Function Reshape(Variable operand, NDShape replacementShape, Axis beginAxis, Axis endAxis, string name = "");

Tworzenie wystąpienia operacji przekształcania dla określonego operandu wejściowego tensor


public static Function Times(Variable leftOperand, Variable rightOperand, string name = "");

Utwórz wystąpienie wbudowanej operacji mnożenia tensorowego CNTK z określonymi operandami wejściowymi.


public static Function TransposeTimes(Variable leftOperand, Variable rightOperand, uint outputRank, string name = "");

Utwórz wystąpienie wbudowanej operacji mnożenia macierzy CNTK z transponacją lewego operandu wejściowego i określonym prawym operandem. Akceptuje tylko lewe operandy rangi 1 lub 2.


public static Function Plus(Variable leftOperand, Variable rightOperand, string name = "")

Operacja dodawania tensora elementu binarnego. Parametry:

  • leftOperand: lewa zmienna operacji plus. Może to być argument innej funkcji.
  • rightOperand: lewa zmienna operacji plus. Może to być argument innej funkcji.
  • name: nazwa operacji.

public static Function Minus(Variable leftOperand, Variable rightOperand, string name = "");

Utwórz wystąpienie wbudowanej operacji odejmowania tensor CNTK elementów z określonymi operandami wejściowymi.


public static Function LogAddExp(Variable leftOperand, Variable rightOperand, string name = "");

Utwórz wystąpienie wbudowanej operacji tensor CNTK elementu, która oblicza dziennik sumy wykładników określonych operandów wejściowych.


public static Function Pow(Variable leftOperand, Variable rightOperand, string name = "");

Utwórz wystąpienie wbudowanej operacji tensor CNTK elementowej, która oblicza lewyOperand podniesiony do potęgi prawego operandu.


public static Function ElementTimes(Variable leftOperand, Variable rightOperand, string name = "");

Utwórz wystąpienie wbudowanej operacji mnożenia elementów CNTK na określonych operandach wejściowych tensor.


public static Function ElementDivide(Variable leftOperand, Variable rightOperand, string name = "");

Utwórz wystąpienie wbudowanej operacji dzielenia elementów CNTK na określonych operandach wejściowych tensor.


public static Function CosineDistance(Variable leftOperand, Variable rightOperand, string name = "");

Utwórz wystąpienie wbudowanej CNTK, aby obliczyć odległość cosinusu dla określonych operandów wejściowych.


public static Function CosineDistanceWithNegativeSamples(Variable leftOperand, Variable rightOperand, uint shiftWindow, uint numberOfNegativeSamples, string name = "");

Utwórz wystąpienie wbudowanej CNTK, aby obliczyć odległość cosinusu z ujemnymi próbkami dla określonych operandów wejściowych.


public static Function BinaryCrossEntropy(Variable prediction, Variable targets, string name = "");

Utwórz wystąpienie wbudowanej operacji CNTK w celu obliczenia binarnej entropii dla określonych operandów wejściowych.


public static Function WeightedBinaryCrossEntropy(Variable prediction, Variable targets, Variable weights, string name = "");

Utwórz wystąpienie wbudowanej operacji CNTK w celu obliczenia ważonej entropy binarnej dla określonych operandów wejściowych.


public static Function CrossEntropyWithSoftmax(Variable prediction, Variable labels, Axis axis, string name = "");

Utwórz wystąpienie wbudowanej operacji CNTK w celu obliczenia wielu entropii za pomocą softmax dla określonych operandów wejściowych.


public static Function ClassificationError(Variable prediction, Variable labels, uint topN, Axis axis, string name = "");

Utwórz wystąpienie wbudowanej operacji CNTK przetwarzania błędu przewidywania klasyfikacji dla określonych operandów.


public static Function PastValue(Variable operand, Variable initialState, uint offset = 1, string name = "");

Utwórz wystąpienie wbudowanej operacji CNTK na potrzeby pobierania poprzedniej wartości wzdłuż samotnej osi dynamicznej określonego operandu.


public static Function FutureValue(Variable operand, Variable initialState, uint offset = 1, string name = "");

Utwórz wystąpienie wbudowanej operacji CNTK w celu uzyskania przyszłej wartości wzdłuż samotnej osi dynamicznej określonego operandu.


public static Function Convolution(Variable convolutionMap,
                                     Variable operand,
                                     NDShape strides = { 1 },
                                     BoolVector sharing = { true },
                                     BoolVector autoPadding = { true },
                                     NDShape dilation = { 1 },
                                     uint reductionRank = 1,
                                     uint maxTempMemSizeInSamples = 0,
                                     string name = "");

Konwolucja


public static Function ROIPooling(Variable operand,
                                    Variable rois,
                                    PoolingType poolingType,
                                    NDShape roiOutputShape,
                                    double spatialScale,
                                    string name= "");

Tworzenie wystąpienia wbudowanej operacji buforowania roI CNTK na określonych operandach wejściowych tensor z określonym kształtem danych wyjściowych


public static Function Pooling(Variable operand,
                                 PoolingType poolingType,
                                 NDShape poolingWindowShape,
                                 NDShape strides = {1},
                                 BoolVector autoPadding = {false},
                                 const bool ceilOutDim = false,
                                 const bool includePad = false,
                                 string name = "");

public static Function BatchNormalization(Variable operand,
                                            Variable scale,
                                            Variable bias,
                                            Variable runningMean,
                                            Variable runningInvStd,
                                            Variable runningCount,
                                            bool spatial,
                                            double normalizationTimeConstant = 0,
                                            double blendTimeConstant = 0,
                                            double epsilon = 0.00001,
                                            bool useCuDNNEngine = true,
                                            string name = "");

public static Function Splice(VariableVector operands, Axis axis, string name = "");

Tworzenie wystąpienia wbudowanej operacji splice CNTK do łączenia wszystkich określonych operandów tensorowych w jeden tensorowy tensor


public static Function Combine(VariableVector operands, string name = "");

Utwórz nowe wystąpienie funkcji, które łączy tylko dane wyjściowe określonej listy funkcji "operands", tak aby "Outputs" nowej funkcji było połączeniem "Outputs" każdego z określonych funkcji "operands". Na przykład podczas tworzenia modelu klasyfikacji zazwyczaj funkcja utraty CrossEntropy i funkcja ClassificationError składają się z dwóch korzeni grafu obliczeniowego, który może być "Połączony", aby utworzyć pojedynczą funkcję z 2 danymi wyjściowymi; Viz. Utrata międzyenttropii i dane wyjściowe classificationError.


public static Function LeakyReLU(Variable operand, string name = "");

Utwórz wystąpienie wbudowanej operacji prostownika liniowego przecieku CNTK z określonym operandem wejściowym.

uczniów zajęć

class, funkcja

Oznacza Function symboliczne obliczenie z co najmniej zerem argumentów wejściowych i co najmniej jednym wyjściem. Funkcja może być pierwotna lub złożona (składa się z innych wystąpień funkcji, których dane wejściowe i wyjściowe są połączone ze sobą). Funkcja jest grafem obliczeniowym składającym się z innych pierwotnych funkcji (oznaczających obliczenia) jako węzłów i Variable obiektów (oznaczających dane) jako krawędzi i liści grafu.

Klasa Function zawiera następujące właściwości i metody, które są istotne dla oceny:


public string Name { get; }

Nazwa funkcji.


public IList<Variable> Arguments { get; }

Lista wszystkich zmiennych wejściowych funkcji, które nie są typu Parametr lub Stała. Te zmienne są wymaganymi danymi wejściowymi w celu obliczenia danych wyjściowych funkcji.


public Variable Output { get; }

Pojedyncza zmienna wyjściowa funkcji, jeśli istnieje tylko jedna. W przeciwnym razie zgłaszany jest wyjątek środowiska uruchomieniowego w przypadku dostępu.


public IList<Variable> Outputs { get; }

Lista wszystkich zmiennych wyjściowych funkcji.


public Function RootFunction { get; }

Zwraca funkcję pierwotną w katalogu głównym grafu funkcji bazowej funkcji. Jeśli sama funkcja jest funkcją pierwotną, to (this-RootFunction>() == to).


public string OpName { get; }

Nazwa operacji, którą określa funkcja.


public bool IsComposite { get; }

Wartość logiczna wskazująca, czy funkcja jest funkcją złożoną.


public bool IsPrimitive { get; }

Wartość logiczna wskazująca, czy funkcja jest funkcją pierwotną.


public bool IsBlock { get; }

Wartość logiczna wskazująca, czy funkcja jest funkcją bloku.


public void Evaluate(IDictionary<Variable, Value> inputs, IDictionary<Variable, Value> outputs, DeviceDescriptor computeDevice)
public void Evaluate(IDictionary<Variable, Value> inputs, IDictionary<Variable, Value> outputs, bool createPersistentOutputValues, DeviceDescriptor computeDevice)

Oblicza funkcję przy użyciu określonych danych wejściowych. Oblicza dane wyjściowe funkcji na podstawie wartości podanych dla każdej zmiennej wejściowej określonej w słowniku inputs . Dane wyjściowe są przechowywane w danych wyjściowych Wartości odpowiadające zmiennym wyjściowym w słowniku outputs .

Parametry:

  • inputs: zmienne wejściowe i ich wartości funkcji.
  • outputs: wartości wyjściowe dla każdej zmiennej wyjściowej. Obiekt wywołujący może określić obiekt Value do przechowywania danych wyjściowych lub przekazać null , w którym przypadku metoda przydziela magazyn dla wyników wyjściowych. W obu przypadkach po powrocie obiekt Value zawiera wynik odpowiadających danych wyjściowych funkcji. null Jeśli określono wartość, a parametr createPersistentOutputValues nie jest określony lub jest ustawiony na falsewartość , obiekt Value zwrócony przez metodę jest tymczasowy i ma gwarancję, że będzie prawidłowy tylko do następnego wywołania do przodu/do tyłu. Jeśli trzeba uzyskać do niego dostęp później, należy określić createPersistentOutputValues wartość true, lub jawnie DeepClone tymczasowy obiekt Value.
  • computeDevice: urządzenie, na którym jest wykonywane obliczenia. Powinien być zgodny z urządzeniem, na którym jest ładowany model.
  • createPersistentOutputValues: istotne tylko wtedy, gdy wartość została określona null w danych wyjściowych. Jeśli jest ustawiona na truewartość , metoda utworzy trwałe obiekty Value, w przeciwnym razie obiekty Value są tymczasowe i są prawidłowe tylko do następnego wywołania do przodu/wstecz.

public Function Clone(ParameterCloningMethod parameterCloneMethod = ParameterCloningMethod.Share)

Klonuje this funkcję.

Parametry:

  • parameterCloneMethod: określa sposób klonowania parametrów funkcji: ParameterCloningMethod.Share - Parametry są współużytkowane między sklonowaną funkcją a nowym klonem. Ta wartość powinna być używana, jeśli sklonowana funkcja jest używana do jednoczesnej oceny. ParameterCloningMethod.Clone — Nowe parametry do nauki są tworzone i inicjowane przy użyciu bieżących wartości odpowiednich parametrów sklonowanej funkcji. ParameterCloningMethod.Freeze - Parametry są klonowane i tworzone niezmienne; tj. Stałe w nowym klonie (np. do użycia jako stały ekstraktor funkcji). ParametrCloningMethod jest zdefiniowany tutaj.

public Function FindByName(string name, bool nestedSearchInsideBlockFunction)

Znajduje funkcję o podanej nazwie na grafie funkcji bazowej funkcji. Jeśli istnieje więcej niż jedna funkcja o tej samej nazwie, zostanie zgłoszony wyjątek. Jeśli zagnieżdżonySearchInsideBlockFunction ma wartość true, przeszukaj wszystkie funkcje wewnątrz funkcji blokowych.

Parametry:

  • name: nazwa do wyszukania.
  • nestedSearchInsideBlockFunction: jeśli jest to prawdą, wszystkie funkcje wewnątrz funkcji blokowych są również badane.

public IList<Function> FindAllWithName(string name, bool nestedSearchInsideBlockFunction = false)

Znajduje listę funkcji o podanej nazwie na grafie funkcji bazowej funkcji. Jeśli zagnieżdżonySearchInsideBlockFunction ma wartość true, przeszukaj wszystkie funkcje wewnątrz funkcji blokowych.

Parametry:

  • name: nazwa do wyszukania.
  • nestedSearchInsideBlockFunction: jeśli jest to prawdą, wszystkie funkcje wewnątrz funkcji blokowych są również badane.

public static Function Load(string modelFile, DeviceDescriptor computeDevice)

Ładuje funkcję z pliku modelu.

Parametry:

  • modelFile: ścieżka do pliku modelu.
  • computeDevice: urządzenie, na którym jest ładowana funkcja.

public static Function Load(byte[] modelBuffer, DeviceDescriptor computeDevice)

Ładuje funkcję z buforu pamięci reprezentującego model.

Parametry:

  • modelBuffer: tablica bajtów zawiera serializowaną zawartość modelu.
  • computeDevice: urządzenie, na którym jest ładowana funkcja.

public static Function Combine(IEnumerable<Variable> operands)

Tworzy nowe wystąpienie funkcji, które łączy dane wyjściowe określonej listy "operandów" funkcji. Dane wyjściowe nowej funkcji "Function" są częścią "Outputs" każdego z określonych funkcji "operandów". Na przykład podczas tworzenia modelu klasyfikacji zazwyczaj funkcja crossEntropy loss i funkcja ClassificationError składają się z korzeni grafu obliczeniowego, który może być "Połącz"d, aby utworzyć pojedynczą funkcję z 2 danymi wyjściowymi; Viz. Utrata międzyenttropii i dane wyjściowe classificationError.

Parametr:

  • operands: lista funkcji lub zmiennych, które powinny być uwzględnione w danych wyjściowych nowej funkcji.

public static Function AsComposite(Function rootFunction, string name = "")

Tworzy funkcję złożoną, która ma określony element rootFunction jako element główny. Złożony określa funkcję wyższego poziomu hermetyzując cały graf funkcji bazowej określonego elementu rootFunction.

Parametry:

  • rootFunction: element główny funkcji złożonej do utworzenia.
  • name: nazwa funkcji złożonej, która ma zostać utworzona.

public static Function Alias(Variable operand, string name = "")

Tworzy nowe wystąpienie funkcji, które jest tylko aliasem określonego operandu.

Parametry:

  • operand: funkcja lub zmienna utworzona przez funkcję aliasu.
  • name: nazwa nowej funkcji, która ma zostać utworzona.

wartość klasy

A Value to tablica wielowymiarowa z opcjonalną maską i jest rzeczywistymi danymi wprowadzanymi lub generowanymi z obliczeń.


Poniższe metody tworzą obiekt Value przy użyciu gęstych danych wejściowych z określonym kształtem tensora.


public static Value CreateBatch<T>(NDShape sampleShape, IEnumerable<T> batch, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający partię przykładów. Liczba próbek w partii jest liczbą elementów batch podzielonych przez rozmiar shape (błąd środowiska uruchomieniowego występuje, jeśli reszta nie jest równa zero). Utworzony obiekt Value zawiera kopię określonych danych w pliku batch.

Parametry:

  • sampleShape: kształt tensor obiektu Value.
  • batch: dane, które mają być zawarte w obiekcie Value.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: obiekt Value jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateSequence<T>(NDShape sampleShape, IEnumerable<T> sequence, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający sekwencję próbek. Utworzony obiekt Value zawiera kopię określonych danych w pliku sequence. Długość sekwencji to liczba elementów sequence podzielonych przez rozmiar shape (błąd środowiska uruchomieniowego występuje, jeśli reszta nie jest równa zero). Utworzona sekwencja jest nową sekwencją.

Parametry:

  • sampleShape: kształt tensora wartości.
  • sequence: dane, które mają być zawarte w wartości.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateSequence<T>(NDShape sampleShape, IEnumerable<T> sequence, bool sequenceStartFlag, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający sekwencję próbek. Utworzony obiekt Value zawiera kopię określonych sequence danych. SekwencjaStartFlag określa, czy ta sekwencja jest nową sekwencją, czy kontynuacją poprzedniej sekwencji z poprzedniego wywołania tej metody. Długość sekwencji to liczba elementów sequence podzielonych przez rozmiar shape (błąd środowiska uruchomieniowego występuje, jeśli reszta nie jest równa zero).

Parametry:

  • sampleShape: kształt tensora wartości.
  • sequence: dane, które mają być zawarte w wartości.
  • sequenceStartFlag: true wskazuje, że jest to nowa sekwencja. false oznacza kontynuację poprzedniej sekwencji.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateBatchOfSequences<T>(NDShape sampleShape, IEnumerable<IEnumerable<T>> batchOfSequences, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający partię sekwencji o zmiennej długości. Utworzony obiekt Value zawiera kopię określonych danych w pliku batchOfSequences. Liczba sekwencji w partii to rozmiar batchOfSequences. Długość każdej sekwencji to liczba elementów w odpowiedniej sekwencji batchOfSequences dzielenia przez rozmiar shape (błąd czasu wykonania występuje, jeśli reszta nie jest równa zero). Każda sekwencja w programie batchOfSequences jest nową sekwencją.

Parametry:

  • sampleShape: kształt tensora wartości.
  • batchOfSequences: dane, które mają być przechowywane w wartości. Zewnętrzna IEnumerable reprezentuje kolekcję sekwencji o zmiennej długości, a wewnętrzna IEnumerable reprezentuje każdą pojedynczą sekwencję.
  • device: na którym urządzeniu należy utworzyć wartość.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateBatchOfSequences<T>(NDShape sampleShape, IEnumerable<IEnumerable<T>> batchOfSequences, IEnumerable<bool> sequenceStartFlags, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający partię sekwencji o zmiennej długości. Utworzony obiekt Value zawiera kopię określonych danych w pliku batchOfSequences. Liczba sekwencji w partii to rozmiar batchOfSequences. Długość każdej sekwencji to liczba elementów w odpowiedniej sekwencji batchOfSequences dzielenia przez rozmiar shape (błąd czasu wykonania występuje, jeśli reszta nie jest równa zero).

Parametry:

  • sampleShape: kształt tensora wartości.
  • batchOfSequences: dane, które mają być przechowywane w wartości. Zewnętrzna IEnumerable reprezentuje kolekcję sekwencji o zmiennej długości, a wewnętrzna IEnumerable reprezentuje każdą pojedynczą sekwencję.
  • sequenceStartFlags: kolekcja wartości logicznych. Każdy element reprezentuje, czy odpowiednia sekwencja w batchOfSequences programie jest nową sekwencją (w przypadku ), trueczy kontynuacją poprzedniej sekwencji (w przypadku elementu false).
  • device: na którym urządzeniu należy utworzyć wartość.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

Poniższe metody tworzą obiekt Value przy użyciu danych wejściowych wektora jednorazowego.


public static Value CreateBatch<T>(int dimension, IEnumerable<int> batch, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający partię próbek. Każda próbka jest reprezentowana przez wartość indeksu, która wskazuje wartość niezerową w wektorze z gorącą jedyną wartością dimension elementów. Liczba próbek w partii to liczba elementów w elemecie batch.

Parametry:

  • T: typ danych utworzonego obiektu Value. float Obecnie i double są obsługiwane.
  • dimension: rozmiar wymiaru wektora jednorazowego.
  • batch: kolekcja indeksów reprezentujących partię próbek.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateSequence<T>(int dimension, IEnumerable<int> sequence, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający sekwencję próbek. Każda próbka jest reprezentowana przez wartość indeksu, która wskazuje wartość niezerową w wektorze z gorącą jedyną wartością dimension elementów. Długość sekwencji to liczba elementów w elemecie sequence. Utworzona sekwencja jest nową sekwencją.

Parametry:

  • T: typ danych utworzonego obiektu Value. float Obecnie i double są obsługiwane.
  • dimension: rozmiar wymiaru wektora jednorazowego.
  • sequence: kolekcja indeksów reprezentujących sekwencję przykładów.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateSequence<T>(int dimension, IEnumerable<int> sequence, bool sequenceStartFlag, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający sekwencję próbek. Każda próbka jest reprezentowana przez wartość indeksu, która wskazuje wartość niezerową w wektorze z gorącą jedyną wartością dimension elementów. SekwencjaStartFlag określa, czy ta sekwencja jest nową sekwencją, czy kontynuacją poprzedniej sekwencji z poprzedniego wywołania tej metody. Długość sekwencji to liczba elementów w elemecie sequence.

Parametry:

  • T: typ danych utworzonego obiektu Value. float Obecnie i double są obsługiwane.
  • dimension: rozmiar wymiaru wektora jednorazowego.
  • sequence: kolekcja indeksów reprezentujących sekwencję przykładów.
  • sequenceStartFlag: true wskazuje, że jest to nowa sekwencja. false oznacza kontynuację poprzedniej sekwencji.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateBatchOfSequences<T>(int dimension, IEnumerable<IEnumerable<int>> batchOfSequences, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający partię sekwencji o zmiennej długości. Każda próbka jest reprezentowana przez wartość indeksu, która wskazuje wartość niezerową w wektorze z gorącą jedyną wartością dimension elementów. Liczba sekwencji to liczba elementów w zewnętrznej kolekcji batchOfSequences. Długość każdej sekwencji to liczba elementów odpowiedniej sekwencji na liście kolekcji .batchOfSequences Każda sekwencja w programie batchOfSequences jest nową sekwencją.

Parametry:

  • T: typ danych utworzonego obiektu Value. float Obecnie i double są obsługiwane.
  • dimension: rozmiar wymiaru wektora jednorazowego.
  • batchOfSequences: kolekcja indeksów reprezentujących sekwencje przykładów. Zewnętrzna IEnumerable reprezentuje kolekcję sekwencji o zmiennej długości, a wewnętrzna IEnumerable reprezentuje każdą pojedynczą sekwencję.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateBatchOfSequences<T>(int dimension, IEnumerable<IEnumerable<int>> batchOfSequences, IEnumerable<bool> sequenceStartFlags, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający partię sekwencji o zmiennej długości. Każda próbka jest reprezentowana przez wartość indeksu, która wskazuje wartość niezerową w wektorze z gorącą jedyną wartością dimension elementów. Liczba sekwencji to liczba elementów w zewnętrznej kolekcji batchOfSequences. Długość każdej sekwencji to liczba elementów odpowiedniej sekwencji w wewnętrznej kolekcji batchOfSequences.

Parametry:

  • T: typ danych utworzonego obiektu Value. float Obecnie i double są obsługiwane.
  • dimension: rozmiar wymiaru wektora jednorazowego.
  • batchOfSequences: kolekcja indeksów reprezentujących sekwencje przykładów. Zewnętrzna IEnumerable reprezentuje kolekcję sekwencji o zmiennej długości, a wewnętrzna IEnumerable reprezentuje każdą pojedynczą sekwencję.
  • sequenceStartFlags: kolekcja wartości logicznych. Każdy element reprezentuje, czy odpowiednia sekwencja w batchOfSequences programie jest nową sekwencją (w przypadku ), trueczy kontynuacją poprzedniej sekwencji (w przypadku elementu false).
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

Poniższe metody tworzą obiekt Value przy użyciu rzadkich danych wejściowych.

Obecnie obsługiwany jest skompresowany format kolumny rozrzedzonej (CSC). Format CSC przechowuje macierz w formacie głównym kolumny, a tablica zawierająca indeksy kolumn jest kompresowana. Macierz w formacie CSC jest reprezentowana przez następujące parametry:

  • nonZeroValues: tablica danych, która zawiera wszystkie wartości niezerowe macierzy w formacie głównym kolumny.
  • rowIndices: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicy nonZeroValues.
  • colStarts: tablica zawierająca indeksy w tablicach rowIndices i nonZeroValues.

Szczegółowy opis formatu CSC można znaleźć tutaj.


public static Value CreateSequence<T>(NDShape sampleShape, int sequenceLength, int[] colStarts, int[] rowIndices, T[] nonZeroValues, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający sekwencję próbek przy użyciu formatu wejściowego CSC rozrzedzeniowego. Długość sekwencji to liczba wierszy macierzy rozrzedowej. Utworzona sekwencja jest nową sekwencją.

Parametry:

  • T: typ danych utworzonego obiektu Value. float Obecnie i double są obsługiwane.
  • sampleShape: kształt tensora wartości. W przypadku rzadkich danych wejściowych wymiarowość wiodącego kształtu tensora musi być taka sama jak całkowity rozmiar kształtu tensora.
  • sequenceLength: długość sekwencji, która jest również liczbą wierszy w macierzy rozrzedowej.
  • colStarts: tablica zawiera indeksy dla każdej kolumny w tablicach rowIndices i nonZeroValues.
  • rowIndices: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicy nonZeroValues.
  • nonZeroValues: tablica, która zawiera wszystkie wartości inne niżzerowe w macierzy rozrzedzeniu.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateSequence<T>(NDShape sampleShape, int sequenceLength, int[] colStarts, int[] rowIndices, T[] nonZeroValues, bool sequenceStartFlag, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający sekwencję próbek przy użyciu formatu wejściowego CSC rozrzedzeniowego. Długość sekwencji to liczba wierszy macierzy rozrzedowej. SekwencjaStartFlag określa, czy ta sekwencja jest nową sekwencją, czy kontynuacją poprzedniej sekwencji z poprzedniego wywołania tej metody.

Parametry:

  • T: typ danych utworzonego obiektu Value. float Obecnie i double są obsługiwane.
  • sampleShape: kształt tensora wartości. W przypadku rzadkich danych wejściowych wymiarowość wiodącego kształtu tensora musi być taka sama jak całkowity rozmiar kształtu tensora.
  • sequenceLength: długość sekwencji, która jest również liczbą wierszy w macierzy rozrzedowej.
  • colStarts: tablica zawiera indeksy dla każdej kolumny w tablicach rowIndices i nonZeroValues.
  • rowIndices: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicy nonZeroValues.
  • nonZeroValues: tablica, która zawiera wszystkie wartości inne niżzerowe w macierzy rozrzedzeniu.
  • sequenceStartFlag: true wskazuje, że jest to nowa sekwencja. false oznacza kontynuację poprzedniej sekwencji.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateSequence<T>(int dimension, int sequenceLength, int[] colStarts, int[] rowIndices, T[] nonZeroValues, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający sekwencję próbek przy użyciu formatu wejściowego CSC rozrzedzeniowego. Długość sekwencji to liczba wierszy macierzy rozrzedowej. Utworzona sekwencja jest nową sekwencją.

Parametry:

  • T: typ danych utworzonego obiektu Value. float Obecnie i double są obsługiwane.
  • dimension: liczba kolumn w macierzy rozrzedowej.
  • sequenceLength: długość sekwencji, która jest również liczbą wierszy w macierzy rozrzedowej.
  • colStarts: tablica zawiera indeksy dla każdej kolumny w tablicach rowIndices i nonZeroValues.
  • rowIndices: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicy nonZeroValues.
  • nonZeroValues: tablica, która zawiera wszystkie wartości inne niżzerowe w macierzy rozrzedzeniu.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value CreateSequence<T>(int dimension, int sequenceLength, int[] colStarts, int[] rowIndices, T[] nonZeroValues, bool sequenceStartFlag, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value zawierający sekwencję próbek przy użyciu formatu wejściowego CSC rozrzedzeniowego. Długość sekwencji to liczba wierszy macierzy rozrzedowej. SekwencjaStartFlag określa, czy ta sekwencja jest nową sekwencją, czy kontynuacją poprzedniej sekwencji.

Parametry:

  • T: typ danych utworzonego obiektu Value. float Obecnie i double są obsługiwane.
  • dimension: liczba kolumn w macierzy rozrzedowej.
  • sequenceLength: długość sekwencji, która jest również liczbą wierszy w macierzy rozrzedowej.
  • colStarts: tablica zawiera indeksy dla każdej kolumny w tablicach rowIndices i nonZeroValues.
  • rowIndices: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicy nonZeroValues.
  • nonZeroValues: tablica, która zawiera wszystkie wartości inne niżzerowe w macierzy rozrzedzeniu.
  • sequenceStartFlag: true wskazuje, że jest to nowa sekwencja. false oznacza kontynuację poprzedniej sekwencji.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

Poniższe metody tworzą obiekt Value z obiektu NDArrayView.


public static Value Create(NDShape sampleShape, IEnumerable<NDArrayView> sequences, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value na podstawie kolekcji obiektów NDArrayViews. Każda sekwencja w programie sequences jest nową sekwencją.

Parametry:

  • sampleShape: kształt tensora tworzonej wartości.
  • sequences: kolekcja sekwencji reprezentowanych przez element NDArrayView. Każdy element NDArrayView reprezentuje sekwencję.
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

public static Value Create(NDShape sampleShape, IEnumerable<NDArrayView> sequences, IEnumerable<bool> sequenceStartFlags, DeviceDescriptor device, bool readOnly = false)

Tworzy nowy obiekt Value na podstawie kolekcji obiektów NDArrayViews. SekwencjaStartFlags określa, czy sekwencja jest nową sekwencją, czy kontynuacją poprzedniej sekwencji.

Parametry:

  • sampleShape: kształt tensora tworzonej wartości.
  • sequences: kolekcja sekwencji reprezentowanych przez element NDArrayView. Każdy element NDArrayView reprezentuje sekwencję.
  • sequenceStartFlags: kolekcja wartości logicznych. Każdy element reprezentuje, czy odpowiednia sekwencja w sequences programie jest nową sekwencją (w przypadku ), trueczy kontynuacją poprzedniej sekwencji (w przypadku elementu false).
  • device: na którym urządzeniu należy utworzyć obiekt Value.
  • readOnly: wartość jest tylko do odczytu, jeśli ta flaga to true.

Obiekt Value zawiera następujące właściwości i metody.


public Value(NDArrayView data)

Tworzy wartość wielowymiarową bez maski.


public Value(NDArrayView data, NDMask mask)

Tworzy wartość wielowymiarową ze skojarzoną maską.


public DataType DataType { get; }

DataType danych zawartych w obiekcie Value.


public DeviceDescriptor Device { get; }

Deskryptor urządzenia, na którym znajduje się wartość.


public NDShape Shape { get; }

Kształt wartości.


public StroageFormat StorageFormat { get; }

Format magazynu wartości.


public bool IsSparse { get; }

Wartość logiczna wskazująca, czy wartość zawiera dane w formacie magazynu rozrzedzonego.


public bool IsReadOnly { get; }

Wartość logiczna wskazująca, czy wartość jest tylko do odczytu.


public int maskedCount { get; }

Liczba zamaskowanych/nieprawidłowych wartości w wartości.


public void CopyFrom(Value Source)

Kopiuje zawartość elementu source do wartości. Kształty Sourcedanych i maski muszą być identyczne z this danymi i maską Wartości.

Parametr:

  • Source: obiekt źródłowy, z którego jest kopiowany wartość.

public Value DeepClone()

Tworzy nową wartość z nowo przydzielonym magazynem na tym samym urządzeniu co this Wartość i kopiuje this zawartość wartości do nowo przydzielonej wartości.


public Value DeepClone(bool readOnly)

Tworzy nową wartość z nowo przydzielonym magazynem na tym samym urządzeniu co this Wartość i kopiuje this zawartość wartości do nowo przydzielonej wartości.

Parametr:

  • readOnly: nowy obiekt Value jest tylko do odczytu, jeśli ta flaga to true.

public Value Alias(bool readOnly)

Tworzy nową wartość, która jest aliasem this Wartość. Parametr:

  • readOnly: nowy obiekt Value jest tylko do odczytu, jeśli ta flaga to true.

public IList<IList<T>> GetDenseData<T>(Variable outputVariable)

Pobiera dane przechowywane w obiekcie Value jako listę sekwencji o zmiennej długości w formacie gęstym. Ta metoda zwraca listę IList IList<>. Każdy element listy zewnętrznej reprezentuje sekwencję. Każda sekwencja reprezentowana przez IList zawiera zmienną liczbę próbek. Każda próbka składa się z stałej liczby elementów o typie "T". Liczba elementów jest określana przez kształt danych wyjściowychVariable. Liczba próbek to liczba elementów na liście IList podzielona przez liczbę elementów próbki.

Parametr:

  • outputVariable: zmienna, do którego wskazuje wartość. Kształt zmiennej powinien być zgodny z kształtem wartości.

public IList<IList<int>> GetOneHotData(Variable outputVariable)

Pobiera dane przechowywane w obiekcie Value jako listę sekwencji o zmiennej długości w formacie wektora jedno-gorącego. Ta metoda zwraca listę IList IList<>. Każdy element listy zewnętrznej reprezentuje sekwencję. Każda sekwencja reprezentowana przez IList zawiera zmienną liczbę próbek. Każda próbka jest reprezentowana przez indeks do wektora o jednej gorącości. Liczba próbek to liczba elementów na liście IList.

Parametr:

  • outputVariable: zmienna, do którego wskazuje wartość. Rozmiar wektora jednorazowego powinien być zgodny z tym, który został zdefiniowany w zmiennej.

public void GetSparseData<T>(Variable outputVariable, out int sequenceLength, out IList<int> colStarts, out IList<int> rowIndices, out IList<T> nonZeroValues, out int numNonZeroValues)

Skopiuj dane przechowywane w obiekcie Value do buforów reprezentujących sekwencję w formacie rozrzedzeniowym CSC. W razie potrzeby bufor sekwencji zostanie zmieniony. Wartość powinna mieć taki sam kształt tensor jak outputVariable. Po powrocie sequenceLength jest ustawiana długość sekwencji przechowywanej w wartości i colStarts, rowIndices i nonZeroValues zawiera dane indeksów początkowych kolumn, indeksów wierszy i wartości innych niż zero i numNonZeroValues jest ustawiona na liczbę wartości innych niż zero zawartych w wartości this Value.

Parametry:

  • outputVariable: określa kształt i osie dynamiczne podczas kopiowania danych z tej wartości do buforów.
  • sequenceLength: po powrocie jest ustawiona na długość sekwencji przechowywanej w wartości.
  • colStarts: po powrocie zawiera indeksy do nonZeorValues pierwszego elementu innego niż zero każdej kolumny macierzy.
  • rowIndices: po powrocie zawiera indeksy wierszy każdego elementu niezerowego macierzy.
  • nonZeroValues: po powrocie zawiera wartości wszystkich elementów niezerowych macierzy.
  • numNonZeroValues: po powrocie zwraca liczbę elementów niezerowych macierzy.

Następujące metody zostaną wkrótce wycofane. Użyj poleceń GetDenseData() i GetOneHotData() opisanych powyżej.


public void CopyVariableValueTo<T>(Variable outputVariable, List<List<T>> sequences)

Kopiuje dane przechowywane w wartości do buforu dostarczonego przez sequencesusługę . Jest sequences to lista sekwencji o zmiennej długości. Liczba elementów znajdujących się na zewnętrznej liście sequences to liczba sekwencji w wartości. Każdy element listy zewnętrznej reprezentuje sekwencję. Każda sekwencja reprezentowana przez List<T>element zawiera zmienną liczbę próbek. Każda próbka składa się z stałej liczby elementów o typie T. Liczba elementów próbki jest określana przez kształt outputVariable. Kształt zmiennej powinien być zgodny z kształtem wartości.

Parametry:

  • outputVariable: określa kształt i osie dynamiczne podczas kopiowania danych z wartości do elementu sequences.
  • sequences: bufor wyjściowy używany do przechowywania danych skopiowanych z wartości.

public void CopyVariableValueTo(Variable outputVariable, List<List<uint>> sequences

Kopiuje dane przechowywane w obiekcie Value do buforu dostarczonego przez sequencesprogram . Jest sequences to lista sekwencji o zmiennej długości. Liczba elementów znajdujących się na zewnętrznej liście sequences to liczba sekwencji w wartości. Każdy element listy zewnętrznej reprezentuje sekwencję. Każda sekwencja reprezentowana przez List<uint>element zawiera zmienną liczbę próbek. Każda próbka jest reprezentowana przez indeks wskazujący wartość niezerową w wektorze jedno-gorącym. Rozmiar wymiaru wektora jedno-gorącego powinien być zgodny z tym, który został zdefiniowany w elemecie outputVariable.

Parametry:

  • outputVariable: określa kształt i osie dynamiczne podczas kopiowania danych z wartości do elementu sequences.
  • sequences: bufor wyjściowy używany do przechowywania danych skopiowanych z wartości.

zmienna klasy

Określa jednostkę symboliczną odpowiadającą wejściom i wyjściowym elementu Function.

Właściwości Variable , które są często używane w ocenie, obejmują:


public string Name { get; }

Nazwa zmiennej.


public NDShape Shape { get; }

Kształt zmiennej.


public DataType DataTye { get; }

DataType(#enum-datatype) danych reprezentowanych przez zmienną.


public VariableKind Kind { get; }

ZmiennaKind zmiennej.


public bool IsSparse { get; }

Wartość logiczna wskazująca, czy zmienna określa rozrzedzoną dane.


public bool IsInput { get; }

Wartość logiczna wskazująca, czy zmienna jest wejściem.


public bool IsOutput { get; }

Wartość logiczna wskazująca, czy zmienna jest wyjściem.


public bool IsParameter { get; }

Wartość logiczna wskazująca, czy zmienna jest parametrem.


public bool IsConstant { get; }

Wartość logiczna wskazująca, czy zmienna jest stałą.


public bool IsPlaceholder { get; }

Wartość logiczna wskazująca, czy zmienna jest symbolem zastępczym.


public IList<Axis> DynamicAxes { get; }

Zwraca osie dynamiczne zmiennej.


public Function Owner { get; }

Zwraca funkcję, której wynikiem jest zmienna. Zwraca wartość null , gdy zmienna nie jest zmienną ZmiennaKind output.

klasa DeviceDescriptor

Określa wystąpienie urządzenia obliczeniowego.

Klasa DeviceDescriptor zawiera następujące właściwości i metody:


public int Id { get; }

Identyfikator urządzenia.


public DeviceKind Type { get; }

DeviceKind urządzenia.


public static DeviceDescriptor CPUDevice { get; }

DeviceDescriptor reprezentujący urządzenie CPU w systemie lokalnym.


public static DeviceDescriptor GPUDevice(int deviceId)

Pobiera deskryptor urządzenia GPU w systemie lokalnym z określonym identyfikatorem urządzenia CUDA.

Parametr:

  • deviceId: identyfikator urządzenia CUDA.

public static IList<DeviceDescriptor> AllDevices()

Pobiera listę deskryptorów wszystkich dostępnych/obsługiwanych urządzeń.

klasa NDShape

Określa wielowymiarowy kształt prostokątny.


public NDShape()

Tworzy kształt NDShape z osiami 0, co oznacza skalarny.


public NDShape(int numAxes, int dimension)

Tworzy wystąpienie NDShape o określonej rangi i rozmiarze wymiaru. Każda oś ma taką samą wymiarowość.

Parametry:

  • numAxes: liczba osi kształtu.
  • dimension: rozmiar wymiaru zastosowany do każdej osi.

public NDShape(int numAxes)

Tworzy wystąpienie NDShape o określonej rangi. Wymiarowość w każdej osi to NDShape.InferredDimension.

Parametr:

  • numAxes: liczba osi kształtu.

public static NDShape CreateNDShape(IEnumerable<int> dimensions)

Tworzy wystąpienie NDShape z określonymi wymiarami. Parametr:

  • dimensions: rozmiar wymiaru każdej osi.

public int Rank { get; }

Ranga NDShape.


public IList<int> Dimensions { get; }

Wymiary modułu NDShape.


public int TotalSize { get; }

Całkowity rozmiar prostokątnego kształtu, który określa kształt.


public int this[int key] { get; }

Zwraca rozmiar wymiaru określonej osi.


public int IsUnknown { get; }

Wartość logiczna wskazująca, czy kształt jest specjalnym nieznanym kształtem.


public int HasInferredDimension { get; }

Wartość logiczna wskazująca, czy rozmiar wymiaru dla dowolnej osi kształtu jest nieznany/wnioskowany (NDShape.InferredDimension).


public NDShape AppendShape(NDShape shape)

Tworzy i zwraca nowy kształt skonstruowany przez dołączenie wymiarów określonego kształtu do this wymiarów kształtu.


public NDShape SubShape(int beginAxisId, int endAxisId)

Tworzy i zwraca nowe wystąpienie NDShape o tych samych wymiarach co this określony zakres osi kształtu [beginAxisId, endAxisId).


public NDShape SubShape(int beginAxisId)

Tworzy i zwraca nowe wystąpienie NDShape o tych samych wymiarach co this zakres osi kształtu między osią beginAxisId (włącznie) i ostatnią osią (włącznie).

class NDArrayView

Określa wielowymiarową tablicę wartości elementalnych lub tylko do odczytu. Ten typ określa widok i może istnieć wiele równoczesnych widoków danych bazowych dla wystąpienia NDArrayView. Dane bazowe są przechowywane w rozrzednionym lub gęstym formacie i znajdują się na określonym urządzeniu.


public NDArrayView(NDShape viewShape, float[] dataBuffer, DeviceDescriptor device, bool readOnly = false)
public NDArrayView(NDShape viewShape, double[] dataBuffer, DeviceDescriptor device, bool readOnly = false)

Tworzy obiekt NDArrayView z określonym formatem "dataBuffer" w formacie gęstym jako magazyn zapasowy na określonym urządzeniu.

Parametry:

  • viewShape: kształt tworzonego elementu NDArrayView.
  • dataBuffer: wartości danych zawarte w NDArrayView. Wartość "dataBuffer" musi być co najmniej tak duża, jak łączny rozmiar określonego obiektu "viewShape" i musi przetrwać utworzony obiekt NDArrayView.
  • device: na którym urządzeniu powinien zostać utworzony obiekt NDArrayView.
  • readOnly: obiekt NDArrayView jest tylko do odczytu, jeśli ta flaga to true.

public NDArrayView(NDShape viewShape, int[] colStarts, int[] rowIndices, float[] nonZeroValues, DeviceDescriptor device, bool readOnly = false)
public NDArrayView(NDShape viewShape, int[] colStarts, int[] rowIndices, double[] nonZeroValues, DeviceDescriptor device, bool readOnly = false)

Tworzy obiekt NDArrayView z określonym magazynem w formacie CSC rozrzedzeniowym na określonym urządzeniu. Określone rozrzedłe dane muszą przetrwać utworzony obiekt NDArrayView.

Parametry:

  • viewShape: kształt tworzonego elementu NDArrayView.
  • colStarts: tablica zawiera indeksy dla każdej kolumny w tablicach rowIndices i nonZeroValues.
  • rowIndices: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicy nonZeroValues.
  • nonZeroValues: tablica zawierająca wszystkie wartości niezerowe w macierzy rozrzedzeniu. Określone rozrzedłe dane muszą przetrwać utworzony obiekt NDArrayView.
  • device: na którym urządzeniu powinien zostać utworzony obiekt NDArrayView.
  • readOnly: obiekt NDArrayView jest tylko do odczytu, jeśli ta flaga to true.

public DeviceDescriptor Device

Element DeviceDescriptor urządzenia, na którym znajduje się element NDArrayView.


public NDShape Shape

Kształt obiektu NDArrayView.


public DataType DataType

Typ danych przechowywanych przez element NDArrayView.


public StroageFormat StorageFormat

Format magazynu NDArrayView.


public bool IsSparse

Wartość logiczna wskazująca, czy element NDArrayView zawiera dane w formacie magazynu rozrzedzonego.


public bool IsReadOnly`

A boolean value indicating whether the NDArrayView is read-only.

***
```cs
public NDArrayView DeepClone()

Tworzy nowy element NDArrayView z nowo przydzielonym magazynem na tym samym urządzeniu co this widok i kopiuje this zawartość widoku do nowo przydzielonego widoku.


public NDArrayView DeepClone(bool readOnly)

Tworzy nowy element NDArrayView z nowo przydzielonym magazynem na tym samym urządzeniu co this widok i kopiuje this zawartość widoku do nowo przydzielonego widoku.

Parametr:

  • readOnly: nowy obiekt NDArrayView jest tylko do odczytu, jeśli ta flaga to true.

public NDArrayView DeepClone(DeviceDescriptor device, bool readOnly)

Tworzy nowy element NDArrayView z nowo przydzielonym magazynem na określonym urządzeniu i kopiuje this zawartość widoku do nowo przydzielonego widoku.

Parametry:

  • device: na którym urządzeniu powinien zostać utworzony nowy obiekt NDArrayView.
  • readOnly: nowy obiekt NDArrayView jest tylko do odczytu, jeśli ta flaga to true.

public NDArrayView Alias(bool readOnly)

Tworzy nowy widok NDArrayView, który jest aliasem this widoku, tj. nowy widok tego samego kształtu co this w przypadku tych samych danych bazowych.

Parametr:

  • readOnly: nowy obiekt NDArrayView jest tylko do odczytu, jeśli ta flaga to true.

public NDArrayView AsShape(NDShape newShape)

Tworzy nowy element NDArrayView, który jest aliasem this widoku, ale z nowym kształtem.

Parametr:

  • newShape: kształt nowego obiektu NDArrayView.

public void CopyFrom(NDArrayView source)

Kopiuje zawartość elementu "source" NDArrayView do this wyświetlenia. Kształty widoku źródłowego i this widoku muszą być identyczne.

Parametr:

  • source: źródłowy element NDArrayView, którego zawartość jest kopiowana do this widoku.

public void ChangeDevice(DeviceDescriptor device)

Zmienia urządzenie elementu NDArrayView na określone urządzenie.

Parametr:

  • device: urządzenie docelowe obiektu NDArrayView.

klasa NDMask

Określa maskę wielowymiarową używaną do określania określonych sekcji obiektu NDArrayView jako maskowanego/nieprawidłowego. Ten typ określa widok i może istnieć wiele równoczesnych widoków danych bazowych dla wystąpienia maski ND.


public NDMask(NDShape shape, DeviceDescriptor device)

Skonstruuj nowy obiekt Maska określonego kształtu na określonym urządzeniu.

Parametry:

  • shape: kształt obiektu NDMask.
  • device: urządzenie docelowe obiektu MDMask.

public int MaskedCount { get; }

Liczba zamaskowanych/nieprawidłowych wartości.


public int Device { get; }

Deskryptor urządzenia, na którym znajduje się maska


public int Shape { get; }

Kształt maski.


public void InvalidateSection(IEnumerable<int> sectionOffset, NDShape sectionShape)

Zamaskuj określoną sekcję podrzędną jako nieprawidłową.

Parametry:

  • sectionOffset: lista określająca pozycje początkowe sekcji, które powinny być maskowane jako nieprawidłowe.
  • sectionShape: Kształt opisuje sekcję, która powinna być maskowana jako nieprawidłowa.

public void MarkSequenceBegin(IEnumerable<int> offset)

Oznacz określoną pozycję jako początek sekwencji.

Parametr:

  • sectionOffset: Lista określająca pozycje początkowe w masce, która powinna być maskowana jako początek sekwencji.

public void MarkSequenceBegin(IEnumerable<int> offset, NDShape sectionShape)

Oznacz określoną podsekcję jako początek sekwencji.

Parametry:

  • offset: Lista określająca pozycje początkowe sekcji, które powinny być zamaskowane jako początek sekwencji.
  • sectionShape: Kształt opisuje sekcję, która powinna być maskowana jako początek sekwencji.

public void Clear()

Wyczyść maskę. Wszystkie obecnie wartości maskowane jako nieprawidłowe są ustawione na prawidłowe.


public NDMask DeepClone(DeviceDescriptor device)

Tworzy nową maskę ND z nowo przydzielonym magazynem na określonym urządzeniu i kopiuje zawartość maski this do nowo przydzielonego widoku.

Parametr:

  • device: urządzenie docelowe obiektu MDMask.

public NDMask DeepClone()

Tworzy nową maskę ND z nowo przydzielonym magazynem na tym samym urządzeniu co this maska i kopiuje zawartość maski this do nowo przydzielonej maski.


public NDMask Alias()

Tworzy nową maskę NDMask, która jest aliasem maski this .


public void CopyFrom(NDMask source)

Kopiuje zawartość maski source ND Do maskowania this . Kształty maski source i this maski muszą być identyczne.

Parametr:

  • source: źródłowa maska ND, której zawartość jest kopiowana do this widoku.

oś klasy

Określa oś elementu Variable. Oprócz osi statycznych odpowiadających każdej osi kształtu zmiennej zmiennej typu "Dane wejściowe" i wszelkie zmienne wyjściowe zależne od zmiennej "Wejściowej" mają również 2 dodatkowe osie dynamiczne, których wymiary są znane tylko wtedy, gdy zmienna jest powiązana z rzeczywistymi danymi podczas obliczeń (viz. oś sekwencji i oś wsadowa oznacza oś, wzdłuż której są wsadowane wiele sekwencji)

Następujące właściwości są definiowane w klasie Axis


public string Name { get; }

Nazwa osi.


public bool IsStatic { get; }

Zwraca wartość logiczną wskazującą, czy oś odpowiada osi statycznej.


public bool IsDynamic { get; }

Zwraca wartość logiczną wskazującą, czy oś odpowiada osi dynamicznej.

Utils klasy


public static void SetMaxNumCPUThreads(int numCPUThreads)

Ustawia maksymalną liczbę wątków procesora CPU dla całego procesu, które mają być używane przez każdą pojedynczą operację obliczeniową.


public static int GetMaxNumCPUThreads()

Zwraca maksymalną liczbę wątków procesora CPU dla całego procesu, które mają być używane przez każdą pojedynczą operację obliczeniową.


public static void SetTraceLevel(TraceLevel value)

Określa poziom szczegółowości rejestrowania globalnego.


public static TraceLevel GetTraceLevel()

Zwraca bieżący poziom szczegółowości rejestrowania.

enum VariableKind

Określa rodzaj obiektu symbolicznego Variable

enum VariableKind { Input, Output, Parameter, Constant, Placeholder };

wyliczeniowy typ danych

Określa typ danych symbolicznych jednostek danych lub rzeczywistych danych.

enum DataType { Unknown, Float, Double };

wyliczenie DeviceKind

Określa typ urządzenia obliczeniowego.

enum DeviceKind { CPU, GPU };

enum StorageFormat

Określa format magazynu bazowego wystąpienia obiektu NDArrayView.

enum StorageFormat { Dense, SparseCSC, SparseBlockCol };

enum ParameterCloningMethod

Określa sposób obsługi parametrów podczas klonowania funkcji.

enum ParameterCloningMethod {
    Share, // Parameters are shared between the Function being cloned and the new clone.
    Clone, // New learnable Parameters are created and initialized with the current values of the corresponding Parameters of the Function being cloned.
    Freeze // Parameters are cloned and made immutable.
};

Enum TraceLevel

Oznacza poziomy szczegółowości rejestrowania.

enum TraceLevel { Error, Warning, Info };