Sdílet prostřednictvím


rozhraní API knihovny CNTK C#

Spravované rozhraní API knihovny CNTK je implementováno v jazyce C# a lze ho využívat v jazyce C# a dalších jazycích .NET. Na stránce Použití spravovaného rozhraní API knihovny CNTK a používání CNTK s jazykem C# se dozvíte, jak používat toto rozhraní API ve vaší aplikaci. Následující části popisují třídy a metody spravovaného rozhraní Eval API knihovny CNTK.

class CNTKLib

Toto je statická třída obsahuje mnoho operací, inicializace a mnoho různých metod.


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

Vytvořte instanci CNTK integrované operace negate v elementu se zadaným vstupním operandem. Parametry:

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Operace Sigmoid. Vezme vstupní proměnnou a použije na ni operaci Sigmoid.

Parametry:

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

public static Function Tanh(Variable operand, string name)

Tanh aktivace. Vezme vstupní proměnnou a použije na ni operaci Tanh.

Parametry:

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK integrované operace asin s zadaným vstupním operandem.

Parametry:

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK předdefinované operace elementového sinusu se zadaným vstupním operandem. Parametry:

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK integrované operace elementu acos se zadaným vstupním operandem.

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK předdefinované operace kosinusu s zadaným vstupním operandem.

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK integrované operace elementu cosh se zadaným vstupním operandem.

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK integrované operace elementwise sinh se zadaným vstupním operandem.

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Lineární aktivace usměrňovače. Vezme vstupní proměnnou a na ni použije operaci lineární aktivace usměrňovače.

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK předdefinované operace elementwise exp se zadaným vstupním operandem.

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK integrované operace protokolu v prvku s zadaným vstupním operandem.

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK předdefinované operace elementwise square se zadaným vstupním operandem.

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK předdefinované operace odmocniny odmocniny se zadaným vstupním operandem.

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci integrované operace softmax CNTK na zadané ose na zadané ose na zadaném vstupním operandu Tensor Parameters:

  • operand: Vstupní proměnná operace. Může to být výpočet jiné funkce.
  • axis: Osa pro použití operace softmax
  • name: název operace.

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

Vytvoření instance CNTK integrované operace hardmax na zadaném vstupním operandu tensoru

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvoření instance integrované operace transponování CNTK zadaného 1D nebo 2D vstupního operandu

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvoření instance operace rozevíracího seznamu na zadaném vstupním operandu tensoru

  • operand: Vstupní proměnné. Může to být výpočet jiné funkce.
  • dropoutRate:
  • seed:
  • name: název operace.

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

Vytvoření instance operace přetěsování u zadaného operandu vstupu tensoru


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

Vytvořte instanci CNTK předdefinované operace násobení tensoru se zadanými vstupními operandy.


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

Vytvořte instanci CNTK předdefinované operace násobení matice pomocí transpozice levého vstupního operandu a zadaného pravého operandu. Přijímá pouze levé operandy pořadí 1 nebo 2.


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

Binární operace sčítání tensoru v prvku. Parametry:

  • leftOperand: Levá proměnná operace plus. Může to být výpočet jiné funkce.
  • rightOperand: Levá proměnná operace plus. Může to být výpočet jiné funkce.
  • name: název operace.

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

Vytvořte instanci CNTK předdefinované operace odčítání tensoru v prvku se zadanými vstupními operandy.


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

Vytvořte instanci CNTK předdefinované operace tensoru, která vypočítá protokol součtu exponenciálních hodnot zadaných vstupních operandů.


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

Vytvořte instanci CNTK integrované operace tensoru v prvku, která vypočítá levýOperand vyvolaný na výkon pravého operandu.


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

Vytvořte instanci CNTK integrované operace násobení prvků na zadaných operandech vstupu tensoru.


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

Vytvořte instanci CNTK integrované operace dělení prvků na zadaných operandech vstupu tensoru.


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

Vytvořte instanci CNTK předdefinované operace pro výpočet kosinusové vzdálenosti pro zadané vstupní operandy.


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

Vytvořte instanci integrované operace CNTK pro výpočet kosinusové vzdálenosti se zápornými vzorky zadaných vstupních operandů.


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

Vytvořte instanci CNTK předdefinované operace pro výpočet binárního křížového entropie pro zadané vstupní operandy.


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

Vytvořte instanci CNTK předdefinované operace pro výpočet váženého binárního křížového entropie pro zadané vstupní operandy.


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

Vytvořte instanci CNTK předdefinované operace pro výpočet křížové entropie s softmaxem pro zadané vstupní operandy.


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

Vytvořte instanci integrované operace CNTK pro výpočet chyby predikce klasifikace pro zadané operandy.


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

Vytvořte instanci integrované operace CNTK pro získání předchozí hodnoty podél lone dynamické osy zadaného operandu.


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

Vytvořte instanci integrované operace CNTK pro získání budoucí hodnoty podél lone dynamické osy zadaného 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 = "");

Konvoluce


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

Vytvoření instance CNTK integrované operace sdružování ROI na zadaných operandech vstupu tensoru se zadaným výstupním obrazcem


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 = "");

Vytvoření instance integrované operace splice CNTK ke spojení všech zadaných operandů tensoru do jednoho výstupního tensoru


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

Vytvořte novou instanci funkce, která pouze kombinuje výstupy zadaného seznamu funkcí operands, aby "Výstupy" nové funkce "Funkce" byly sjednocením "Výstupy" každého z zadaných "operandů". Například při vytváření klasifikačního modelu se obvykle funkce CrossEntropy loss a Funkce ClassificationError skládá ze dvou kořenů grafu výpočtů, které lze "kombinovat" k vytvoření jedné funkce se 2 výstupy; viz. Výstup chyby CrossEntropy a ClassificationError


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

Vytvořte instanci CNTK integrované operace úniku lineárního usměrňovače s zadaným vstupním operandem.

Výuka předmětu

class – funkce

Označuje Function symbolický výpočet s nulovými nebo více vstupními argumenty a jedním nebo více výstupy. Funkce může být primitivní nebo složená (složená z jiných instancí funkce, jejichž vstupy a výstupy jsou připojeny dohromady). Funkce je efektivně výpočetní graf složený z jiných primitivních funkcí (označujících výpočty) jako uzlů a Variable objektů (označujících data) jako okrajů a listů grafu.

Třída Function obsahuje následující vlastnosti a metody, které jsou relevantní pro vyhodnocení:


public string Name { get; }

Název funkce.


public IList<Variable> Arguments { get; }

Seznam všech vstupních proměnných funkce, které nejsou typu Parametr nebo Konstanta. Tyto proměnné jsou povinné vstupy pro výpočet výstupů funkce.


public Variable Output { get; }

Jedna výstupní proměnná funkce, pokud existuje pouze jedna. V opačném případě je pro přístup vyvolána výjimka modulu runtime.


public IList<Variable> Outputs { get; }

Seznam všech výstupních proměnných funkce


public Function RootFunction { get; }

Vrátí primitivní funkci v kořenovém adresáři grafu funkce, která je základem funkce. Pokud je samotná funkce primitivní funkcí, pak (this-RootFunction>() == toto).


public string OpName { get; }

Název operace, kterou funkce označuje.


public bool IsComposite { get; }

Logická hodnota označující, zda je funkce složenou funkcí.


public bool IsPrimitive { get; }

Logická hodnota označující, zda je funkce primitivní funkcí.


public bool IsBlock { get; }

Logická hodnota označující, zda je funkce bloková funkce.


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)

Vyhodnotí funkci pomocí zadaného vstupu. Vypočítá výstupy funkce na základě hodnot zadaných pro každou vstupní proměnnou zadanou ve slovníku inputs . Výstupy jsou uloženy ve výstupních hodnotách odpovídajících výstupním proměnným ve slovníku outputs .

Parametry:

  • inputs: vstupní proměnné a jejich hodnoty funkce.
  • outputs: výstupní hodnoty pro každou výstupní proměnnou. Volající může zadat objekt Value pro uložení výstupu nebo předání null v takovém případě metoda přidělí úložiště pro výstupní výsledky. V obou případech vrátí objekt Value výsledek odpovídajícího výstupu funkce. Pokud byla zadána null hodnota a parametr createPersistentOutputValues není zadán nebo je nastaven na false, hodnota objekt vrácený metodou je dočasný a zaručuje, že bude platný pouze do dalšího volání Forward/Backward. Pokud k němu budete potřebovat získat přístup později, měli byste zadat createPersistentOutputValuestruehodnotu nebo explicitně DeepClone dočasný objekt Value.
  • computeDevice: zařízení, na kterém se provádí výpočet. Měl by být zarovnaný se zařízením, na kterém je model načten.
  • createPersistentOutputValues: Relevantní pouze v případě, že null byla hodnota zadána ve výstupech. Pokud je nastavena na true, metoda vytvoří trvalé hodnoty objekty, jinak hodnoty objekty jsou dočasné a jsou platné pouze do dalšího volání Forward/Backward.

public Function Clone(ParameterCloningMethod parameterCloneMethod = ParameterCloningMethod.Share)

Klonuje this funkci.

Parametry:

  • parameterCloneMethod: Určuje, jak se naklonují parametry funkce: ParameterCloningMethod.Share – Parametry se sdílejí mezi naklonovanou funkcí a novým klonem. Tuto hodnotu byste měli použít, pokud se klonovaná funkce používá pro souběžné vyhodnocení. ParameterCloningMethod.Clone - Vytvoří se a inicializuje nové naučitelné parametry s aktuálními hodnotami odpovídajících parametrů naklonované funkce. ParameterCloningMethod.Freeze - Parametry jsou klonovány a neměnné; tj. konstanty v novém klonu (např. pro použití jako extraktor pevných funkcí). ParametrCloningMethod je zde definován.

public Function FindByName(string name, bool nestedSearchInsideBlockFunction)

Najde funkci s daným názvem v grafu funkce, který je podkladem funkce. Pokud existuje více než jedna funkce se stejným názvem, vyvolá se výjimka. Pokud je vnořenéSearchInsideBlockFunction pravdivé, vyhledejte všechny funkce uvnitř blokových funkcí také.

Parametry:

  • name: název, který se má vyhledat.
  • nestedSearchInsideBlockFunction: Pokud je pravda, prověří se také všechny funkce uvnitř blokových funkcí.

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

Najde seznam funkcí s daným názvem v grafu funkce, který je podkladem funkce. Pokud je vnořenéSearchInsideBlockFunction pravdivé, vyhledejte všechny funkce uvnitř blokových funkcí také.

Parametry:

  • name: název, který se má vyhledat.
  • nestedSearchInsideBlockFunction: Pokud je pravda, prověří se také všechny funkce uvnitř blokových funkcí.

public static Function Load(string modelFile, DeviceDescriptor computeDevice)

Načte funkci ze souboru modelu.

Parametry:

  • modelFile: cesta k souboru modelu.
  • computeDevice: zařízení, na kterém je funkce načtena.

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

Načte funkci z vyrovnávací paměti představující model.

Parametry:

  • modelBuffer: Pole bajtů obsahuje serializovaný obsah modelu.
  • computeDevice: zařízení, na kterém je funkce načtena.

public static Function Combine(IEnumerable<Variable> operands)

Vytvoří novou instanci funkce, která kombinuje výstupy zadaného seznamu operandů funkcí. "Výstupy" nové funkce "Funkce" jsou sjednocením "Výstupy" jednotlivých zadaných funkcí "operands". Jako příklad při vytváření klasifikačního modelu obvykle funkce CrossEntropy loss Function a ClassificationError Funkce tvoří kořeny výpočetního grafu, který může být "Kombinovat"d vytvořit jednu funkci s 2 výstupy; viz. Výstup chyby CrossEntropy a ClassificationError

Parametr:

  • operands: seznam funkcí nebo proměnných, které by měly být zahrnuty do výstupů nové funkce.

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

Vytvoří složenou funkci, která má zadaný rootFunction jako kořen. Složená funkce označuje zapouzdření celého grafu funkcí, který je základem zadané kořenové funkce.

Parametry:

  • rootFunction: kořen složené funkce, která se má vytvořit.
  • name: název složené funkce, která se má vytvořit.

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

Vytvoří novou instanci funkce, která je pouze aliasem zadaného operandu.

Parametry:

  • operand: funkce nebo proměnná, pro kterou je vytvořena funkce aliasu.
  • name: název nové funkce, která se má vytvořit.

class Value

A Value je multidimenzionální pole s volitelnou maskou a je skutečná data předávaná do nebo vytvářená z výpočtu.


Následující metody vytvoří objekt Value pomocí zhuštěného vstupu se zadaným tvarem tensoru.


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

Vytvoří nový objekt Value obsahující dávku ukázek. Počet vzorků v dávce je počet prvků rozdělených batch velikostí shape (pokud zbytek není nula), dojde k chybě za běhu. Vytvořený objekt Value obsahuje kopii zadaných dat v batch.

Parametry:

  • sampleShape: tvar tensoru objektu Value.
  • batch: data, která mají být obsažena v objektu Value.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota objekt je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující posloupnost ukázek. Vytvořený objekt Value obsahuje kopii zadaných dat v sequence. Délka posloupnosti je počet prvků rozdělených sequence velikostí shape (pokud zbytek není nula), dojde k chybě za běhu. Vytvořená sekvence je nová sekvence.

Parametry:

  • sampleShape: tvar tensoru hodnoty.
  • sequence: data, která mají být obsažena v hodnotě.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující posloupnost ukázek. Vytvořený objekt Value obsahuje kopii zadaných sequence dat. SequenceStartFlag určuje, zda je tato sekvence novou sekvencí nebo pokračováním předchozí sekvence z předchozího volání této metody. Délka posloupnosti je počet prvků rozdělených sequence velikostí shape (pokud zbytek není nula), dojde k chybě za běhu.

Parametry:

  • sampleShape: tvar tensoru hodnoty.
  • sequence: data, která mají být obsažena v hodnotě.
  • sequenceStartFlag: true označuje, že se jedná o novou sekvenci. false znamená pokračování předchozí sekvence.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující dávku sekvencí délky proměnných. Vytvořený objekt Value obsahuje kopii zadaných dat v batchOfSequences. Počet sekvencí v dávce je velikost .batchOfSequences Délka každé sekvence je počet prvků v odpovídající sekvenci batchOfSequences dělené velikostí shape (k chybě za běhu dochází, pokud zbytek není nula). Každá sekvence je batchOfSequences nová sekvence.

Parametry:

  • sampleShape: tvar tensoru hodnoty.
  • batchOfSequences: data, která mají být uložena v hodnotě. IEnumerable Vnější představuje kolekci sekvencí s proměnlivou délkou a vnitřní IEnumerable představuje každou jednotlivou sekvenci.
  • device: na kterém zařízení by se měla vytvořit hodnota.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující dávku sekvencí délky proměnných. Vytvořený objekt Value obsahuje kopii zadaných dat v batchOfSequences. Počet sekvencí v dávce je velikost .batchOfSequences Délka každé sekvence je počet prvků v odpovídající sekvenci batchOfSequences dělené velikostí shape (k chybě za běhu dochází, pokud zbytek není nula).

Parametry:

  • sampleShape: tvar tensoru hodnoty.
  • batchOfSequences: data, která mají být uložena v hodnotě. IEnumerable Vnější představuje kolekci sekvencí s proměnlivou délkou a vnitřní IEnumerable představuje každou jednotlivou sekvenci.
  • sequenceStartFlags: Kolekce logických hodnot. Každý prvek představuje, zda je odpovídající sekvence v batchOfSequences nové sekvenci (v případě true) nebo pokračování předchozí sekvence (v případě false).
  • device: na kterém zařízení by se měla vytvořit hodnota.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

Následující metody vytvoří objekt Value pomocí vstupu 1-hot vektoru.


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

Vytvoří nový objekt Value obsahující dávku ukázek. Každý vzorek je reprezentován hodnotou indexu, která odkazuje na nenulovou hodnotu v jednom horkém vektoru dimension prvků. Počet vzorků v dávce je počet prvků v batch.

Parametry:

  • T: datový typ vytvořeného objektu Value. float V současné době a double jsou podporované.
  • dimension: velikost rozměru 1-horkého vektoru.
  • batch: kolekce indexů představující dávku vzorků.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující posloupnost ukázek. Každý vzorek je reprezentován hodnotou indexu, která odkazuje na nenulovou hodnotu v jednom horkém vektoru dimension prvků. Délka posloupnosti je počet prvků v sequence. Vytvořená sekvence je nová sekvence.

Parametry:

  • T: datový typ vytvořeného objektu Value. float V současné době a double jsou podporované.
  • dimension: velikost rozměru 1-horkého vektoru.
  • sequence: kolekce indexů představující posloupnost vzorků.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující posloupnost ukázek. Každý vzorek je reprezentován hodnotou indexu, která odkazuje na nenulovou hodnotu v jednom horkém vektoru dimension prvků. SequenceStartFlag určuje, zda je tato sekvence novou sekvencí nebo pokračováním předchozí sekvence z předchozího volání této metody. Délka posloupnosti je počet prvků v sequence.

Parametry:

  • T: datový typ vytvořeného objektu Value. float V současné době a double jsou podporované.
  • dimension: velikost rozměru 1-horkého vektoru.
  • sequence: kolekce indexů představující posloupnost vzorků.
  • sequenceStartFlag: true označuje, že se jedná o novou sekvenci. false znamená pokračování předchozí sekvence.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující dávku sekvencí délky proměnných. Každý vzorek je reprezentován hodnotou indexu, která odkazuje na nenulovou hodnotu v jednom horkém vektoru dimension prvků. Počet sekvencí je počet prvků ve vnější kolekci batchOfSequences. Délka jednotlivých sekvencí je počet prvků odpovídající sekvence v seznamu kolekcí batchOfSequences. Každá sekvence je batchOfSequences nová sekvence.

Parametry:

  • T: datový typ vytvořeného objektu Value. float V současné době a double jsou podporované.
  • dimension: velikost rozměru 1-horkého vektoru.
  • batchOfSequences: kolekce indexů představující sekvence vzorků. IEnumerable Vnější představuje kolekci sekvencí s proměnlivou délkou a vnitřní IEnumerable představuje každou jednotlivou sekvenci.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující dávku sekvencí délky proměnných. Každý vzorek je reprezentován hodnotou indexu, která odkazuje na nenulovou hodnotu v jednom horkém vektoru dimension prvků. Počet sekvencí je počet prvků ve vnější kolekci batchOfSequences. Délka každé sekvence je počet prvků odpovídající sekvence ve vnitřní kolekci batchOfSequences.

Parametry:

  • T: datový typ vytvořeného objektu Value. float V současné době a double jsou podporované.
  • dimension: velikost rozměru 1-horkého vektoru.
  • batchOfSequences: kolekce indexů představující sekvence vzorků. IEnumerable Vnější představuje kolekci sekvencí s proměnlivou délkou a vnitřní IEnumerable představuje každou jednotlivou sekvenci.
  • sequenceStartFlags: Kolekce logických hodnot. Každý prvek představuje, zda je odpovídající sekvence v batchOfSequences nové sekvenci (v případě true) nebo pokračování předchozí sekvence (v případě false).
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

Následující metody vytvoří objekt Value pomocí řídké vstupy.

V současné době se podporuje komprimovaný řídký formát sloupce (CSC). Formát CSC ukládá matici ve sloupcovém hlavním formátu a pole obsahující indexy sloupců je komprimované. Matice ve formátu CSC je reprezentována následujícími parametry:

  • nonZeroValues: datové pole, které obsahuje všechny nenulové hodnoty matice ve sloupcovém hlavním formátu.
  • rowIndices: matice obsahující indexy řádků odpovídajících prvků v matici nonZeroValues.
  • colStarts: matice, která obsahuje indexy rowIndices do polí a nonZeroValues.

Podrobný popis formátu CSC najdete zde.


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

Vytvoří nový objekt Value obsahující posloupnost ukázek pomocí řídké vstupního formátu CSC. Délka posloupnosti je počet řádků řídké matice. Vytvořená sekvence je nová sekvence.

Parametry:

  • T: datový typ vytvořeného objektu Value. float V současné době a double jsou podporované.
  • sampleShape: tvar tensoru hodnoty. Pro řídký vstup musí být přední rozměrový tvar tensoru stejný jako celková velikost obrazce tensoru.
  • sequenceLength: délka sekvence, což je také počet řádků v řídké matici.
  • colStarts: Pole obsahuje indexy pro každý sloupec do polí rowIndices a nonZeroValues.
  • rowIndices: matice obsahující indexy řádků odpovídajících prvků v matici nonZeroValues.
  • nonZeroValues: matice, která obsahuje všechny nenulové hodnoty v řídké matici.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující posloupnost ukázek pomocí řídké vstupního formátu CSC. Délka posloupnosti je počet řádků řídké matice. SequenceStartFlag určuje, zda je tato sekvence novou sekvencí nebo pokračováním předchozí sekvence z předchozího volání této metody.

Parametry:

  • T: datový typ vytvořeného objektu Value. float V současné době a double jsou podporované.
  • sampleShape: tvar tensoru hodnoty. Pro řídký vstup musí být přední rozměrový tvar tensoru stejný jako celková velikost obrazce tensoru.
  • sequenceLength: délka sekvence, což je také počet řádků v řídké matici.
  • colStarts: Pole obsahuje indexy pro každý sloupec do polí rowIndices a nonZeroValues.
  • rowIndices: matice obsahující indexy řádků odpovídajících prvků v matici nonZeroValues.
  • nonZeroValues: matice, která obsahuje všechny nenulové hodnoty v řídké matici.
  • sequenceStartFlag: true označuje, že se jedná o novou sekvenci. false znamená pokračování předchozí sekvence.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující posloupnost ukázek pomocí řídké vstupního formátu CSC. Délka posloupnosti je počet řádků řídké matice. Vytvořená sekvence je nová sekvence.

Parametry:

  • T: datový typ vytvořeného objektu Value. float V současné době a double jsou podporované.
  • dimension: počet sloupců v řídké matici.
  • sequenceLength: délka sekvence, což je také počet řádků v řídké matici.
  • colStarts: Pole obsahuje indexy pro každý sloupec do polí rowIndices a nonZeroValues.
  • rowIndices: matice obsahující indexy řádků odpovídajících prvků v matici nonZeroValues.
  • nonZeroValues: matice, která obsahuje všechny nenulové hodnoty v řídké matici.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value obsahující posloupnost ukázek pomocí řídké vstupního formátu CSC. Délka posloupnosti je počet řádků řídké matice. SekvenceStartFlag určuje, zda je tato sekvence novou posloupností nebo pokračováním předchozí sekvence.

Parametry:

  • T: datový typ vytvořeného objektu Value. float V současné době a double jsou podporované.
  • dimension: počet sloupců v řídké matici.
  • sequenceLength: délka sekvence, což je také počet řádků v řídké matici.
  • colStarts: Pole obsahuje indexy pro každý sloupec do polí rowIndices a nonZeroValues.
  • rowIndices: matice obsahující indexy řádků odpovídajících prvků v matici nonZeroValues.
  • nonZeroValues: matice, která obsahuje všechny nenulové hodnoty v řídké matici.
  • sequenceStartFlag: true označuje, že se jedná o novou sekvenci. false znamená pokračování předchozí sekvence.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

Následující metody vytvoří value objekt z NDArrayView.


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

Vytvoří nový objekt Value založený na kolekci NDArrayViews. Každá sekvence je sequences nová sekvence.

Parametry:

  • sampleShape: tvar tensoru vytvořené hodnoty.
  • sequences: kolekce sekvencí reprezentovaných objektem NDArrayView. Každá NDArrayView představuje sekvenci.
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

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

Vytvoří nový objekt Value založený na kolekci NDArrayViews. SekvenceStartFlags určuje, zda je sekvence novou posloupností nebo pokračováním předchozí sekvence.

Parametry:

  • sampleShape: tvar tensoru vytvořené hodnoty.
  • sequences: kolekce sekvencí reprezentovaných objektem NDArrayView. Každá NDArrayView představuje sekvenci.
  • sequenceStartFlags: Kolekce logických hodnot. Každý prvek představuje, zda je odpovídající sekvence v sequences nové sekvenci (v případě true) nebo pokračování předchozí sekvence (v případě false).
  • device: na kterém zařízení by se měl vytvořit objekt Value.
  • readOnly: Hodnota je jen pro čtení, pokud je truetento příznak .

Objekt Value obsahuje následující vlastnosti a metody.


public Value(NDArrayView data)

Vytvoří multidimenzionální hodnotu bez masky.


public Value(NDArrayView data, NDMask mask)

Vytvoří multidimenzionální hodnotu s přidruženou maskou.


public DataType DataType { get; }

Datový typ dat obsažených v objektu Value.


public DeviceDescriptor Device { get; }

Popisovač zařízení, na kterém se hodnota nachází.


public NDShape Shape { get; }

Tvar hodnoty.


public StroageFormat StorageFormat { get; }

Formát úložiště hodnoty.


public bool IsSparse { get; }

Logická hodnota označující, zda hodnota obsahuje data v řídkém formátu úložiště.


public bool IsReadOnly { get; }

Logická hodnota označující, jestli je hodnota určená jen pro čtení.


public int maskedCount { get; }

Počet maskovaných/neplatných hodnot v hodnotě


public void CopyFrom(Value Source)

Zkopíruje obsah source hodnoty. Obrazce Sourcedat a masky musí být identické s this daty a maskou hodnoty.

Parametr:

  • Source: Zdrojový objekt, ze kterého se hodnota zkopíruje.

public Value DeepClone()

Vytvoří novou hodnotu s nově přiděleným úložištěm na stejném zařízení jako this Hodnota a zkopíruje this obsah hodnoty do nově přidělené hodnoty.


public Value DeepClone(bool readOnly)

Vytvoří novou hodnotu s nově přiděleným úložištěm na stejném zařízení jako this Hodnota a zkopíruje this obsah hodnoty do nově přidělené hodnoty.

Parametr:

  • readOnly: Nový objekt Value je jen pro čtení, pokud je truetento příznak .

public Value Alias(bool readOnly)

Vytvoří novou hodnotu, což je alias this hodnoty. Parametr:

  • readOnly: Nový objekt Value je jen pro čtení, pokud je truetento příznak .

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

Získá data uložená v objektu Value jako seznam sekvencí s proměnnou délkou v hustém formátu. Tato metoda vrátí IList IList IList<>. Každý prvek vnějšího seznamu představuje sekvenci. Každá sekvence reprezentovaná seznamem IList obsahuje proměnný počet vzorků. Každá ukázka se skládá z pevného počtu prvků s typem T. Počet prvků je určen tvarem outputVariable. Počet vzorků je počet prvků v seznamu IList vydělený počtem prvků vzorku.

Parametr:

  • outputVariable: Proměnná, na kterou hodnota označuje. Tvar proměnné by měl odpovídat tvaru hodnoty.

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

Získá data uložená v objektu Value jako seznam sekvencí s proměnnou délkou v jednom-horké vektor formátu. Tato metoda vrátí IList IList IList<>. Každý prvek vnějšího seznamu představuje sekvenci. Každá sekvence reprezentovaná seznamem IList obsahuje proměnný počet vzorků. Každý z vzorků je reprezentován indexem k 1-horké vektoru. Počet vzorků je počet prvků v seznamu IList.

Parametr:

  • outputVariable: Proměnná, na kterou hodnota označuje. Velikost vektoru 1-hot by se měla shodovat s velikostí definovanou v proměnné.

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

Zkopírujte data uložená v objektu Value do vyrovnávací paměti představující posloupnost v CSC řídkém formátu. V případě potřeby se vyrovnávací paměť sekvence změní na velikost. Hodnota by měla mít stejný tvar tensoru jako outputVariable. Při vrácení sequenceLength je nastavená délka sekvence uložená v hodnotě a rowIndicescolStartsobsahuje nonZeroValues data počátečních indexů sloupců, indexy řádků a nenulové hodnoty a numNonZeroValues je nastavena na počet nenulových hodnot obsažených v this hodnotě.

Parametry:

  • outputVariable: Označuje obrazec a dynamické osy při kopírování dat z této hodnoty do vyrovnávacích pamětí.
  • sequenceLength: při vrácení je nastavená na délku sekvence uložené v hodnotě.
  • colStarts: Při vrácení obsahuje indexy do nonZeorValues prvního nenulového prvku každého sloupce matice.
  • rowIndices: Při vrácení obsahuje indexy řádků každého nenulového prvku matice.
  • nonZeroValues: při vrácení obsahuje hodnoty všech nenulových prvků matice.
  • numNonZeroValues: Při vrácení vrátí počet nenulových prvků matice.

Následující metody budou brzy zastaralé. Použijte GetDenseData() a GetOneHotData() popsané výše.


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

Zkopíruje data uložená v hodnotě do vyrovnávací paměti poskytované .sequences Jedná se sequences o seznam sekvencí s proměnnou délkou. Počet položek obsažených v vnějším seznamu sequences je počet sekvencí v hodnotě. Každý prvek vnějšího seznamu představuje sekvenci. Každá sekvence reprezentovaná hodnotou List<T>obsahuje proměnný počet vzorků. Každý vzorek se skládá z pevného počtu prvků s typem T. Počet prvků vzorku je určen tvarem outputVariable. Tvar proměnné by měl odpovídat tvaru hodnoty.

Parametry:

  • outputVariable: označuje obrazec a dynamické osy při kopírování dat z hodnoty do sequences.
  • sequences: výstupní vyrovnávací paměť použitá k ukládání dat zkopírovaných z hodnoty.

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

Zkopíruje data uložená v objektu Value do vyrovnávací paměti poskytnuté sequences. Jedná se sequences o seznam sekvencí s proměnnou délkou. Počet položek obsažených v vnějším seznamu sequences je počet sekvencí v hodnotě. Každý prvek vnějšího seznamu představuje sekvenci. Každá sekvence reprezentovaná hodnotou List<uint>obsahuje proměnný počet vzorků. Každý vzorek je reprezentován indexem odkazující na nenulovou hodnotu ve vektoru 1-hot. Velikost rozměru vektoru 1-hot by se měla shodovat s rozměry definovanými v sadě outputVariable.

Parametry:

  • outputVariable: označuje obrazec a dynamické osy při kopírování dat z hodnoty do sequences.
  • sequences: výstupní vyrovnávací paměť použitá k ukládání dat zkopírovaných z hodnoty.

proměnná třídy

Označuje symbolickou entitu odpovídající vstupům a výstupům Function.

Mezi vlastnosti Variable , které se často používají při vyhodnocování, patří:


public string Name { get; }

Název proměnné.


public NDShape Shape { get; }

Tvar proměnné


public DataType DataTye { get; }

DataType(#enum-datový typ) dat, která proměnná představuje.


public VariableKind Kind { get; }

ProměnnáKind proměnné.


public bool IsSparse { get; }

Logická hodnota označující, zda proměnná označuje řídká data.


public bool IsInput { get; }

Logická hodnota označující, jestli je proměnná vstupem.


public bool IsOutput { get; }

Logická hodnota označující, jestli je proměnná výstupem.


public bool IsParameter { get; }

Logická hodnota označující, jestli je proměnná parametrem.


public bool IsConstant { get; }

Logická hodnota označující, jestli je proměnná konstanta.


public bool IsPlaceholder { get; }

Logická hodnota označující, jestli je proměnná zástupný symbol.


public IList<Axis> DynamicAxes { get; }

Vrátí dynamickou osu proměnné.


public Function Owner { get; }

Vrátí funkci, ze které je proměnná výstupem. Vrátí null , pokud proměnná není výstupem VariableKind.

Třída DeviceDescriptor

Označuje instanci výpočetního zařízení.

DeviceDescriptor Třída obsahuje následující vlastnosti a metody:


public int Id { get; }

ID zařízení.


public DeviceKind Type { get; }

DeviceKind zařízení.


public static DeviceDescriptor CPUDevice { get; }

Popisovač DeviceDescriptor představující cpu zařízení v místním systému.


public static DeviceDescriptor GPUDevice(int deviceId)

Získá Popisovač DeviceDescriptor zařízení GPU v místním systému se zadaným ID zařízení CUDA.

Parametr:

  • deviceId: ID zařízení CUDA.

public static IList<DeviceDescriptor> AllDevices()

Získá seznam popisovačů všech dostupných/podporovaných zařízení.

třída NDShape

Označuje vícerozměrný obdélníkový tvar.


public NDShape()

Vytvoří NDShape s 0 osami, které označují skalární.


public NDShape(int numAxes, int dimension)

Vytvoří instanci NDShape se zadanou velikostí pořadí a dimenze. Každá osa má stejnou dimenzionalitu.

Parametry:

  • numAxes: počet os obrazce.
  • dimension: velikost rozměru použitá na každou osu.

public NDShape(int numAxes)

Vytvoří instanci NDShape se zadaným pořadím. Rozměrnost v každé osě je NDShape.InferredDimension.

Parametr:

  • numAxes: počet os obrazce.

public static NDShape CreateNDShape(IEnumerable<int> dimensions)

Vytvoří instanci NDShape se zadanými dimenzemi. Parametr:

  • dimensions: velikost rozměru jednotlivých os.

public int Rank { get; }

Pořadí NDShape.


public IList<int> Dimensions { get; }

Rozměry obrazce ND.


public int TotalSize { get; }

Celková velikost obdélníkového obrazce, který obrazec označuje.


public int this[int key] { get; }

Vrátí velikost rozměru zadané osy.


public int IsUnknown { get; }

Logická hodnota označující, jestli je obrazec speciální neznámý obrazec.


public int HasInferredDimension { get; }

Logická hodnota označující, jestli je velikost rozměru pro libovolnou osu obrazce neznámá nebo odvozená (NDShape.InferredDimension).


public NDShape AppendShape(NDShape shape)

Vytvoří a vrátí nový obrazec vytvořený přidáním rozměrů zadaného obrazce k this rozměrům obrazce.


public NDShape SubShape(int beginAxisId, int endAxisId)

Vytvoří a vrátí novou instanci NDShape se stejnými rozměry jako this zadaný rozsah osy obrazce [beginAxisId, endAxisId).


public NDShape SubShape(int beginAxisId)

Vytvoří a vrátí novou instanci NDShape se stejnými rozměry jako this rozsah osy obrazce mezi počáteční osou AxisId (včetně) a poslední osou (včetně).

třída NDArrayView

Označuje vícerozměrnou zapisovatelnou nebo jen pro čtení pole elementálních hodnot. Tento typ označuje zobrazení a může existovat více souběžných zobrazení dat podkladových instancí NDArrayView. Podkladová data jsou uložená v řídkém nebo hustém formátu a nachází se na konkrétním zařízení.


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

Vytvoří NDArrayView se zadanou hodnotou dataBuffer v hustém formátu jako záložní úložiště na zadaném zařízení.

Parametry:

  • viewShape: obrazec vytvořeného objektu NDArrayView.
  • dataBuffer: datové hodnoty obsažené v NDArrayView. Hodnota dataBuffer musí být alespoň tak velká jako celková velikost zadaného objektu ViewShape a musí přeživit vytvořený objekt NDArrayView.
  • device: na kterém zařízení by se měl vytvořit objekt NDArrayView.
  • readOnly: Objekt NDArrayView je jen pro čtení, pokud je truetento příznak .

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)

Vytvoří NDArrayView se zadaným úložištěm v řídkém formátu CSC na zadaném zařízení. Zadaná řídká data musí prožít vytvořený objekt NDArrayView.

Parametry:

  • viewShape: obrazec vytvořeného objektu NDArrayView.
  • colStarts: Pole obsahuje indexy pro každý sloupec do polí rowIndices a nonZeroValues.
  • rowIndices: matice obsahující indexy řádků odpovídajících prvků v matici nonZeroValues.
  • nonZeroValues: matice, která obsahuje všechny nenulové hodnoty v řídké matici. Zadaná řídká data musí prožít vytvořený objekt NDArrayView.
  • device: na kterém zařízení by se měl vytvořit objekt NDArrayView.
  • readOnly: Objekt NDArrayView je jen pro čtení, pokud je truetento příznak .

public DeviceDescriptor Device

Popisovač DeviceDescriptor zařízení, na kterém se nachází NDArrayView.


public NDShape Shape

Tvar NDArrayView.


public DataType DataType

Datový typ dat, která NDArrayView ukládá.


public StroageFormat StorageFormat

Formát úložiště NDArrayView.


public bool IsSparse

Logická hodnota označující, zda NDArrayView obsahuje data ve řídkém formátu úložiště.


public bool IsReadOnly`

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

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

Vytvoří nový NDArrayView s nově přiděleným úložištěm na stejném zařízení jako this zobrazení a zkopíruje this obsah zobrazení do nově přiděleného zobrazení.


public NDArrayView DeepClone(bool readOnly)

Vytvoří nový NDArrayView s nově přiděleným úložištěm na stejném zařízení jako this zobrazení a zkopíruje this obsah zobrazení do nově přiděleného zobrazení.

Parametr:

  • readOnly: nový objekt NDArrayView je jen pro čtení, pokud je truetento příznak .

public NDArrayView DeepClone(DeviceDescriptor device, bool readOnly)

Vytvoří nový NDArrayView s nově přiděleným úložištěm na zadaném zařízení a zkopíruje this obsah zobrazení do nově přiděleného zobrazení.

Parametry:

  • device: na kterém zařízení by se měl vytvořit nový objekt NDArrayView.
  • readOnly: nový objekt NDArrayView je jen pro čtení, pokud je truetento příznak .

public NDArrayView Alias(bool readOnly)

Vytvoří nový NDArrayView, což je alias this zobrazení, tj. nové zobrazení stejného obrazce jako this u stejných podkladových dat.

Parametr:

  • readOnly: nový objekt NDArrayView je jen pro čtení, pokud je truetento příznak .

public NDArrayView AsShape(NDShape newShape)

Vytvoří nový NDArrayView, což je alias this zobrazení, ale s novým obrazcem.

Parametr:

  • newShape: tvar nového objektu NDArrayView.

public void CopyFrom(NDArrayView source)

Zkopíruje obsah objektu NDArrayView do this zobrazení. Obrazce zobrazení zdroje a this zobrazení musí být identické.

Parametr:

  • source: zdrojový objekt NDArrayView, jehož obsah se zkopíruje do this zobrazení.

public void ChangeDevice(DeviceDescriptor device)

Změní zařízení NDArrayView na zadané zařízení.

Parametr:

  • device: cílové zařízení objektu NDArrayView.

třída NDMask

Označuje multidimenzionální masku použitou k určení konkrétních oddílů objektu NDArrayView jako maskovaných nebo neplatných. Tento typ označuje zobrazení a může existovat několik souběžných zobrazení dat, která jsou podkladovou instancí masky ND.


public NDMask(NDShape shape, DeviceDescriptor device)

Na zadaném zařízení vytvořte nový objekt masky zadaného obrazce.

Parametry:

  • shape: tvar objektu NDMask.
  • device: cílové zařízení objektu MDMask.

public int MaskedCount { get; }

Počet maskovaných/neplatných hodnot.


public int Device { get; }

Popisovač zařízení, na kterém se maska nachází


public int Shape { get; }

Tvar masky.


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

Zamaskujte zadaný dílčí oddíl jako neplatný.

Parametry:

  • sectionOffset: Seznam určující počáteční pozice oddílu, který by měl být maskován jako neplatný.
  • sectionShape: Obrazec popisuje oddíl, který by měl být maskován jako neplatný.

public void MarkSequenceBegin(IEnumerable<int> offset)

Označte zadanou pozici jako začátek sekvence.

Parametr:

  • sectionOffset: Seznam určující počáteční pozice v masce, která by měla být maskována jako začátek sekvence.

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

Označte zadaný dílčí oddíl jako začátek sekvence.

Parametry:

  • offset: Seznam určující počáteční pozice oddílu, který by měl být maskován jako začátek sekvence.
  • sectionShape: Obrazec popisuje oddíl, který by měl být maskován jako začátek sekvence.

public void Clear()

Vymažte masku. Všechny aktuálně hodnoty maskované jako neplatné jsou nastaveny na platné.


public NDMask DeepClone(DeviceDescriptor device)

Vytvoří novou masku ND s nově přiděleným úložištěm na zadaném zařízení a zkopíruje this obsah masky do nově přiděleného zobrazení.

Parametr:

  • device: cílové zařízení objektu MDMask.

public NDMask DeepClone()

Vytvoří novou masku ND s nově přiděleným úložištěm na stejném zařízení jako this maska a zkopíruje this obsah masky do nově přidělené masky.


public NDMask Alias()

Vytvoří novou masku ND, což je alias masky this .


public void CopyFrom(NDMask source)

Zkopíruje obsah masky source ND.this Tvary masky a this masky source musí být identické.

Parametr:

  • source: zdrojový maska ND, jejíž obsah se zkopíruje do this zobrazení.

Osa třídy

Označuje osu objektu Variable. Kromě statických os odpovídajících každé osě obrazce proměnné mají proměnné typu Vstup a všechny výstupní proměnné závislé na vstupní proměnné také 2 další dynamické osy, jejichž rozměry jsou známy pouze v případě, že proměnná je svázána se skutečnými daty během výpočetních prostředků (viz. osa sekvence a dávková osa označující osu, ve které jsou dávková více sekvencí)

Následující vlastnosti jsou definovány ve třídě. Axis


public string Name { get; }

Název osy.


public bool IsStatic { get; }

Vrátí logickou hodnotu určující, zda osa odpovídá statické ose.


public bool IsDynamic { get; }

Vrátí logickou hodnotu určující, zda osa odpovídá dynamické ose.

Class Utils


public static void SetMaxNumCPUThreads(int numCPUThreads)

Nastaví maximální počet vláken procesoru pro celý proces, které bude používat jakákoli jednotlivá výpočetní operace.


public static int GetMaxNumCPUThreads()

Vrátí maximální počet vláken procesoru, které se použijí pro jednotlivé výpočetní operace.


public static void SetTraceLevel(TraceLevel value)

Určuje úroveň podrobností globálního protokolování.


public static TraceLevel GetTraceLevel()

Vrátí aktuální úroveň podrobností protokolování.

enum VariableKind

Označuje druh symbolického Variable objektu.

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

enum DataType

Označuje datový typ symbolických datových entit nebo skutečných dat.

enum DataType { Unknown, Float, Double };

enum DeviceKind

Označuje typ výpočetního zařízení.

enum DeviceKind { CPU, GPU };

enum StorageFormat

Označuje formát úložiště, který je podkladovou instancí NDArrayView.

enum StorageFormat { Dense, SparseCSC, SparseBlockCol };

enum ParameterCloningMethod

Označuje způsob zpracování parametrů při klonování funkce.

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

Označuje úrovně podrobností protokolování.

enum TraceLevel { Error, Warning, Info };