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 parametrcreatePersistentOutputValues
nie jest określony lub jest ustawiony nafalse
wartość , 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 jawnieDeepClone
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ślonanull
w danych wyjściowych. Jeśli jest ustawiona natrue
wartość , 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 totrue
.
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 totrue
.
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 totrue
.
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ętrznaIEnumerable
reprezentuje kolekcję sekwencji o zmiennej długości, a wewnętrznaIEnumerable
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 totrue
.
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ętrznaIEnumerable
reprezentuje kolekcję sekwencji o zmiennej długości, a wewnętrznaIEnumerable
reprezentuje każdą pojedynczą sekwencję. -
sequenceStartFlags
: kolekcja wartości logicznych. Każdy element reprezentuje, czy odpowiednia sekwencja wbatchOfSequences
programie jest nową sekwencją (w przypadku ),true
czy kontynuacją poprzedniej sekwencji (w przypadku elementufalse
). -
device
: na którym urządzeniu należy utworzyć wartość. -
readOnly
: wartość jest tylko do odczytu, jeśli ta flaga totrue
.
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 idouble
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 totrue
.
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 idouble
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 totrue
.
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 idouble
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 totrue
.
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 idouble
są obsługiwane. -
dimension
: rozmiar wymiaru wektora jednorazowego. -
batchOfSequences
: kolekcja indeksów reprezentujących sekwencje przykładów. ZewnętrznaIEnumerable
reprezentuje kolekcję sekwencji o zmiennej długości, a wewnętrznaIEnumerable
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 totrue
.
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 idouble
są obsługiwane. -
dimension
: rozmiar wymiaru wektora jednorazowego. -
batchOfSequences
: kolekcja indeksów reprezentujących sekwencje przykładów. ZewnętrznaIEnumerable
reprezentuje kolekcję sekwencji o zmiennej długości, a wewnętrznaIEnumerable
reprezentuje każdą pojedynczą sekwencję. -
sequenceStartFlags
: kolekcja wartości logicznych. Każdy element reprezentuje, czy odpowiednia sekwencja wbatchOfSequences
programie jest nową sekwencją (w przypadku ),true
czy kontynuacją poprzedniej sekwencji (w przypadku elementufalse
). -
device
: na którym urządzeniu należy utworzyć obiekt Value. -
readOnly
: wartość jest tylko do odczytu, jeśli ta flaga totrue
.
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 tablicynonZeroValues
. -
colStarts
: tablica zawierająca indeksy w tablicachrowIndices
inonZeroValues
.
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 idouble
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 tablicachrowIndices
inonZeroValues
. -
rowIndices
: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicynonZeroValues
. -
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 totrue
.
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 idouble
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 tablicachrowIndices
inonZeroValues
. -
rowIndices
: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicynonZeroValues
. -
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 totrue
.
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 idouble
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 tablicachrowIndices
inonZeroValues
. -
rowIndices
: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicynonZeroValues
. -
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 totrue
.
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 idouble
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 tablicachrowIndices
inonZeroValues
. -
rowIndices
: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicynonZeroValues
. -
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 totrue
.
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 totrue
.
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 wsequences
programie jest nową sekwencją (w przypadku ),true
czy kontynuacją poprzedniej sekwencji (w przypadku elementufalse
). -
device
: na którym urządzeniu należy utworzyć obiekt Value. -
readOnly
: wartość jest tylko do odczytu, jeśli ta flaga totrue
.
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 Source
danych 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 totrue
.
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 totrue
.
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 dononZeorValues
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 sequences
usł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 elementusequences
. -
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 sequences
program . 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 elementusequences
. -
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 totrue
.
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 tablicachrowIndices
inonZeroValues
. -
rowIndices
: tablica zawierająca indeksy wierszy odpowiednich elementów w tablicynonZeroValues
. -
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 totrue
.
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 totrue
.
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 totrue
.
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 totrue
.
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 dothis
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 dothis
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 };