Freigeben über


CNTK BibliothekS-C#-API

Die CNTK verwaltete Bibliotheks-API wird in C# implementiert und kann von C# und anderen .NET-Sprachen verwendet werden. Die Seite Mit der verwalteten CNTK Bibliotheks-API und der Verwendung von CNTK mit C# stellen die Verwendung dieser API in Ihrer Anwendung dar. In den folgenden Abschnitten werden die Klassen und Methoden der verwalteten Eval-API der CNTK Bibliothek beschrieben.

Klasse CNTKLib

Dies ist eine statische Klasse mit vielen Vorgängen, Initialisierung und vielen verschiedenen Methoden.


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementweise negate-Vorgangs mit dem angegebenen Eingabeopernd. Parameter:

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Sigmoid-Operation. Es nimmt eine Eingabevariable und wendet den Sigmoid-Vorgang darauf an.

Parameter:

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

public static Function Tanh(Variable operand, string name)

Tanh-Aktivierung. Es nimmt eine Eingabevariable und wendet tanh-Vorgang darauf an.

Parameter:

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementzeigervorgangs mit dem angegebenen Eingabeopernd.

Parameter:

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten Elementzeigervorgangs CNTK mit dem angegebenen Eingabeopernd. Parameter:

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementweise acos-Vorgangs mit dem angegebenen Eingabeopernd.

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementkosinevorgangs mit dem angegebenen Eingabeopernd.

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementweise-Cosh-Vorgangs mit dem angegebenen Eingabeopernd.

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten elementweise sinh-Vorgangs mit dem angegebenen Eingabeopernd.

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Lineare Aktivierung des Rechtecks. Es nimmt eine Eingabevariable und wendet den linearen Aktivierungsvorgang für rechteckigen Zeichenfolgen an.

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementweise-Exp-Vorgangs mit dem angegebenen Eingabeopernd.

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementweise-Protokollvorgangs mit dem angegebenen Eingabeopernd.

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementweise-Quadratvorgangs mit dem angegebenen Eingabeopernd.

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementweise-Stammvorgangs mit dem angegebenen Eingabeopernd.

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten softmax-Vorgangs CNTK auf der angegebenen Achse auf einer angegebenen Tensoreingabeoperndparameter:

  • operand: Die Eingabevariable des Vorgangs. Es kann die Ouput einer anderen Funktion sein.
  • axis: Die Achse zum Anwenden des Softmax-Vorgangs
  • name: der Name des Vorgangs.

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

Erstellen einer Instanz des integrierten Hardmax-Vorgangs CNTK für angegebene Tensoreingabeopernd

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen einer Instanz des integrierten Umsetzungsvorgangs CNTK für die angegebene 1D- oder 2D-Eingabeopernd

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen einer Instanz des Dropout-Vorgangs auf angegebenem Tensor-Eingabeopernd

  • operand: Die Eingabevariablen. Es kann die Ouput einer anderen Funktion sein.
  • dropoutRate:
  • seed:
  • name: der Name des Vorgangs.

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

Erstellen einer Instanz des Reshape-Vorgangs auf angegebenem Tensor-Eingabeopernd


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Tensor-Multiplikationsvorgangs mit den angegebenen Eingabeopernden.


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Matrixmultiplizierungsvorgangs mit der Übertragung des linken Eingabeopernden und des angegebenen rechten Operanden. Akzeptiert nur linke Operanden von Rang 1 oder 2.


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

Ein binärelementweiser Tensor-Ergänzungsvorgang. Parameter:

  • leftOperand: Die linke Variable des Plusvorgangs. Es kann die Ouput einer anderen Funktion sein.
  • rightOperand: Die linke Variable des Plusvorgangs. Es kann die Ouput einer anderen Funktion sein.
  • name: der Name des Vorgangs.

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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementzeiger-Subtraktionsvorgangs mit den angegebenen Eingabeopernden.


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementweise-Tensor-Vorgangs, der das Protokoll der Summe der Exponentielle der angegebenen Eingabeopernden berechnet.


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementzeiger-Tensor-Vorgangs, der die linkeOper berechnet und auf die Leistung des rechten Operanden ausgelöst wird.


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Elementweise-Multiplikationsvorgangs auf angegebenen Tensoreingabeopernden.


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

Erstellen Sie eine Instanz des integrierten Elementzeigerteilungsvorgangs CNTK auf angegebenen Tensor-Eingabeopernden.


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

Erstellen Sie eine Instanz des integrierten CNTK-Vorgangs, um den Kosineabstand für die angegebenen Eingabeopernden zu berechnen.


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

Erstellen Sie eine Instanz des integrierten CNTK-Vorgangs, um den Kosineabstand mit negativen Beispielen für die angegebenen Eingabeopernden zu berechnen.


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Vorgangs, um binäre Kreuz-Entropie für angegebene Eingabeopernden zu berechnen.


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Vorgangs, um die binär-entropische Entropie für angegebene Eingabeopernden zu berechnen.


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

Erstellen Sie eine Instanz des integrierten vorgangs CNTK, um querentropie mit softmax für angegebene Eingabeopernden zu berechnen.


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

Erstellen Sie eine Instanz des integrierten CNTK-Vorgangs zum Berechnen des Klassifizierungsvorhersagefehlers für angegebene Operanden.


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

Erstellen Sie eine Instanz des integrierten CNTK-Vorgangs zum Abrufen des letzten Werts entlang der lone dynamischen Achse des angegebenen Operanden.


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

Erstellen Sie eine Instanz des integrierten CNTK-Vorgangs zum Abrufen des zukünftigen Werts entlang der lone dynamischen Achse des angegebenen Operanden.


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

Konvolution


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

Erstellen einer Instanz CNTK des integrierten ROI-Pooling-Vorgangs für angegebene Tensor-Eingabeopernden mit der angegebenen Ausgabeform


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten Splizvorgangs, um alle angegebenen Tensoropernden in einen einzelnen Ausgabe-Tensor-Tensor zu splizieren


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

Erstellen Sie eine neue Funktionsinstanz, die nur die Ausgabe der angegebenen Liste der "operands"-Funktionen kombiniert, sodass die "Ausgabe" der neuen "Funktion" die Union der angegebenen "Operands"-Funktionen sind. Z. B. beim Erstellen eines Klassifizierungsmodells, in der Regel die Funktion "CrossEntropy Loss" und die "ClassificationError"-Funktion umfassen die beiden Wurzeln des Berechnungsdiagramms, das "kombiniert" werden kann, um eine einzelne Funktion mit 2 Ausgaben zu erstellen; Nämlich. CrossEntropy Loss and ClassificationError output.


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

Erstellen Sie eine Instanz des integrierten CNTK integrierten linearen Rechteck-Vorgangs mit dem angegebenen Eingabeopernd.

Kurslerner

Klassenfunktion

A Function bezeichnet eine symbolische Berechnung mit null oder mehr Eingabeargumenten und einer oder mehreren Ausgaben. Eine Funktion kann grundtypiv oder zusammengesetzt sein (bestehend aus anderen Funktionsinstanzen, deren Eingaben und Ausgabe miteinander verkabelt werden). Eine Funktion ist effektiv ein Berechnungsdiagramm, das aus anderen Grundfunktionen (denoting computation) als Knoten und Objekte (denoting data) als Ränder und Variable Blätter des Diagramms besteht.

Die Function Klasse enthält die folgenden Eigenschaften und Methoden, die für die Auswertung relevant sind:


public string Name { get; }

Name der Funktion.


public IList<Variable> Arguments { get; }

Liste aller Eingabevariablen der Funktion, die nicht vom Typ Parameter oder Konstante sind. Diese Variablen sind erforderlich, um die Ausgabe der Funktion zu berechnen.


public Variable Output { get; }

Die einzelne Ausgabevariable der Funktion, wenn nur eine vorhanden ist. Andernfalls wird eine Laufzeit-Ausnahme auf Zugriff ausgelöst.


public IList<Variable> Outputs { get; }

Liste aller Ausgabevariablen der Funktion.


public Function RootFunction { get; }

Gibt die Grundfunktion am Stamm des Diagramms von Funktionen zurück, die der Funktion zugrunde liegen. Wenn die Funktion selbst eine Grundfunktion ist, dann (this-RootFunction>() ==


public string OpName { get; }

Der Name des Vorgangs, den die Funktion angibt.


public bool IsComposite { get; }

Ein boolescher Wert, der angibt, ob die Funktion eine zusammengesetzte Funktion ist.


public bool IsPrimitive { get; }

Ein boolescher Wert, der angibt, ob die Funktion eine Grundfunktion ist.


public bool IsBlock { get; }

Ein boolescher Wert, der angibt, ob die Funktion eine Blockfunktion ist.


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)

Wertet die Funktion mithilfe der angegebenen Eingabe aus. Es berechnet die Ausgabe der Funktion basierend auf den werten , die für jede eingabevariable, die im inputs Wörterbuch angegeben ist. Die Ausgabewerte werden in den Ausgabewerten gespeichert, die den Ausgabevariablen im outputs Wörterbuch entsprechen.

Parameter:

  • inputs: die Eingabevariablen und deren Werte der Funktion.
  • outputs: Ausgabewerte für jede Ausgabevariable. Der Aufrufer kann das Value-Objekt angeben, um die Ausgabe zu speichern oder zu übergeben null , in welchem Fall die Methode den Speicher für die Ausgabeergebnisse zuordnet. In beiden Fällen enthält das Value-Objekt das Ergebnis der entsprechenden Ausgabe der Funktion. Wenn ein null Wert angegeben wurde und der Parameter createPersistentOutputValues nicht angegeben falseoder auf festgelegt ist, ist das vom Methode zurückgegebene Value-Objekt vorübergehend und wird nur bis zum nächsten Forward/Backward-Aufruf gültig. Wenn später auf sie zugegriffen werden muss, sollten Sie das temporäre Value-Objekt angeben createPersistentOutputValuestrueoder explizit DeepClone angeben.
  • computeDevice: das Gerät, auf dem die Berechnung ausgeführt wird. Es sollte mit dem Gerät ausgerichtet werden, auf dem das Modell geladen wird.
  • createPersistentOutputValues: Nur relevant, wenn ein null Wert in Ausgabeangaben angegeben wurde. Wenn die Methode auf true"Wert" festgelegt ist, erstellt die Methode beständige Wertobjekte, andernfalls sind die Value-Objekte vorübergehend und sind nur gültig, bis der nächste Forward/Backward-Aufruf ausgeführt wird.

public Function Clone(ParameterCloningMethod parameterCloneMethod = ParameterCloningMethod.Share)

Klonenfunktion this .

Parameter:

  • parameterCloneMethod: gibt an, wie die Parameter der Funktion geklont werden: ParameterCloningMethod.Share - Parameter werden zwischen der Funktion, die geklont wird, und dem neuen Klon freigegeben. Dieser Wert sollte verwendet werden, wenn die klonte Funktion für gleichzeitige Auswertung verwendet wird. ParameterCloningMethod.Clone - Neue lernbare Parameter werden erstellt und mit den aktuellen Werten der entsprechenden Parameter der Funktion initialisiert, die geklont werden. ParameterCloningMethod.Freeze - Parameter werden geklont und unveränderlich gemacht; d. h. Konstanten im neuen Klon (z. B. für die Verwendung als fester Feature-Extraktor). ParameterCloningMethod wird hier definiert.

public Function FindByName(string name, bool nestedSearchInsideBlockFunction)

Findet eine Funktion mit dem Angegebenen Namen im Funktionsdiagramm, das der Funktion zugrunde liegt. Wenn mehrere Funktionen mit demselben Namen vorhanden sind, wird eine Ausnahme ausgelöst. Wenn geschachtelteSearchInsideBlockFunction wahr ist, durchsuchen Sie auch alle Funktionen innerhalb von Blockfunktionen.

Parameter:

  • name: Der Name, nach dem gesucht werden soll.
  • nestedSearchInsideBlockFunction: Wenn es wahr ist, werden auch alle Funktionen innerhalb von Blockfunktionen untersucht.

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

Findet eine Liste der Funktionen mit dem Angegebenen Namen im Funktionsdiagramm, das der Funktion zugrunde liegt. Wenn geschachtelteSearchInsideBlockFunction wahr ist, durchsuchen Sie auch alle Funktionen innerhalb von Blockfunktionen.

Parameter:

  • name: Der Name, nach dem gesucht werden soll.
  • nestedSearchInsideBlockFunction: Wenn es wahr ist, werden auch alle Funktionen innerhalb von Blockfunktionen untersucht.

public static Function Load(string modelFile, DeviceDescriptor computeDevice)

Lädt eine Funktion aus einer Modelldatei.

Parameter:

  • modelFile: Der Pfad zur Modelldatei.
  • computeDevice: das Gerät, auf dem die Funktion geladen wird.

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

Lädt eine Funktion aus einem Speicherpuffer, der ein Modell darstellt.

Parameter:

  • modelBuffer: das Bytearray enthält den serialisierten Modellinhalt.
  • computeDevice: das Gerät, auf dem die Funktion geladen wird.

public static Function Combine(IEnumerable<Variable> operands)

Erstellt eine neue Funktionsinstanz, die die Ausgabe der angegebenen Liste der "Operands" von Funktionen kombiniert. Die "Ausgabe" der neuen "Funktion" sind eine Union der "Ausgabe" der angegebenen "Operands"-Funktionen. Als Beispiel besteht beim Erstellen eines Klassifizierungsmodells in der Regel die Funktion "CrossEntropy Loss Function" und die "ClassificationError"-Funktion aus den Wurzeln des Berechnungsdiagramms, das "Kombinieren"d sein kann, um eine einzelne Funktion mit 2 Ausgaben zu erstellen; Nämlich. CrossEntropy Loss and ClassificationError output.

Parameter:

  • operands: die Liste der Funktionen oder Variablen, die in die Ausgabe der neuen Funktion einbezogen werden sollen.

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

Erstellt eine zusammengesetzte Funktion, die die angegebene Stammfunktion als Stamm aufweist. Der Zusammengesetzte bezeichnet eine funktion mit höherer Ebene, die das gesamte Diagramm von Funktionen kapselt, das der angegebenen Stammfunktion zugrunde liegt.

Parameter:

  • rootFunction: der Stamm der zusammengesetzten Funktion, die erstellt werden soll.
  • name: der Name der zusammengesetzten Funktion, die erstellt werden soll.

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

Erstellt eine neue Funktionsinstanz, die nur ein Alias des angegebenen Operanden ist.

Parameter:

  • operand: die Funktion oder Variable, für die die Aliasfunktion erstellt wird.
  • name: der Name der zu erstellenden neuen Funktion.

Klassenwert

A Value ist ein mehrdimensionales Array mit einer optionalen Maske und ist die tatsächlichen Daten, die aus einer Berechnung bereitgestellt oder produziert werden.


Die folgenden Methoden erstellen ein Value-Objekt mithilfe einer dichten Eingabe mit der angegebenen Tensor-Form.


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

Erstellt ein neues Value-Objekt mit einem Batch von Beispielen. Die Anzahl der Beispiele im Batch ist die Anzahl der Elemente batch , die durch die Größe shape unterteilt werden (Ein Laufzeitfehler tritt auf, wenn der Rest nicht null ist). Das erstellte Value-Objekt enthält eine Kopie der angegebenen Daten in batch.

Parameter:

  • sampleShape: die Tensor-Form des Value-Objekts.
  • batch: die Daten, die im Value-Objekt enthalten sind.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Das Value-Objekt ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Sequenz von Beispielen enthält. Das erstellte Value-Objekt enthält eine Kopie der angegebenen Daten in sequence. Die Sequenzlänge ist die Anzahl der Elemente, sequence die durch die Größe shape geteilt werden (Ein Laufzeitfehler tritt auf, wenn der Rest nicht null ist). Die erstellte Sequenz ist eine neue Sequenz.

Parameter:

  • sampleShape: die Tensorform des Werts.
  • sequence: die Daten, die im Wert enthalten sind.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Sequenz von Beispielen enthält. Das erstellte Value-Objekt enthält eine Kopie der angegebenen sequence Daten. Der SequenceStartFlag gibt an, ob es sich bei dieser Sequenz um eine neue Sequenz oder eine Fortsetzung einer vorherigen Sequenz aus einem vorherigen Aufruf dieser Methode handelt. Die Sequenzlänge ist die Anzahl der Elemente, sequence die durch die Größe shape geteilt werden (Ein Laufzeitfehler tritt auf, wenn der Rest nicht null ist).

Parameter:

  • sampleShape: die Tensorform des Werts.
  • sequence: die Daten, die im Wert enthalten sind.
  • sequenceStartFlag: true gibt an, dass es sich um eine neue Sequenz handelt. false bedeutet eine Fortsetzung einer vorherigen Sequenz.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Reihe von Variablenlängensequenzen enthält. Das erstellte Value-Objekt enthält eine Kopie der angegebenen Daten in batchOfSequences. Die Anzahl der Sequenzen im Batch ist die Größe von batchOfSequences. Die Länge jeder Sequenz ist die Anzahl der Elemente in der entsprechenden Sequenz batchOfSequences , die durch die Größe shape geteilt wird (Ein Laufzeitfehler tritt auf, wenn der Rest nicht null ist). Jede Sequenz in batchOfSequences ist eine neue Sequenz.

Parameter:

  • sampleShape: die Tensorform des Werts.
  • batchOfSequences: die Daten, die im Wert gespeichert werden sollen. Das Äußere IEnumerable stellt eine Auflistung von Sequenzen mit variabler Länge dar, und das Innere IEnumerable stellt jede einzelne Sequenz dar.
  • device: Auf welchem Gerät der Wert erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Reihe von Variablenlängensequenzen enthält. Das erstellte Value-Objekt enthält eine Kopie der angegebenen Daten in batchOfSequences. Die Anzahl der Sequenzen im Batch ist die Größe von batchOfSequences. Die Länge jeder Sequenz ist die Anzahl der Elemente in der entsprechenden Sequenz batchOfSequences , die durch die Größe shape geteilt wird (Ein Laufzeitfehler tritt auf, wenn der Rest nicht null ist).

Parameter:

  • sampleShape: die Tensorform des Werts.
  • batchOfSequences: die Daten, die im Wert gespeichert werden sollen. Das Äußere IEnumerable stellt eine Auflistung von Sequenzen mit variabler Länge dar, und das Innere IEnumerable stellt jede einzelne Sequenz dar.
  • sequenceStartFlags: Eine Sammlung boolescher Werte. Jedes Element stellt dar, ob es sich bei der entsprechenden Sequenz batchOfSequences um eine neue Sequenz (im Fall von true) oder eine Fortsetzung einer vorherigen Sequenz (im Fall von false).
  • device: Auf welchem Gerät der Wert erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

Mit den folgenden Methoden wird ein Value-Objekt mithilfe der Ein-Hot-Vector-Eingabe erstellt.


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

Erstellt ein neues Value-Objekt, das einen Batch von Beispielen enthält. Jedes Beispiel wird durch einen Indexwert dargestellt, der auf den Nicht-Null-Wert im Vektor der dimension Elemente verweist. Die Anzahl der Beispiele im Batch ist die Anzahl der Elemente in batch.

Parameter:

  • T: Datentyp des erstellten Value-Objekts. float Derzeit und double werden unterstützt.
  • dimension: Die Größe der Dimension des Vektors mit einem heißen Vektor.
  • batch: die Sammlung von Indizes, die den Batch von Beispielen darstellen.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Sequenz von Beispielen enthält. Jedes Beispiel wird durch einen Indexwert dargestellt, der auf den Nicht-Null-Wert im Vektor der dimension Elemente verweist. Die Sequenzlänge ist die Anzahl der Elemente in sequence. Die erstellte Sequenz ist eine neue Sequenz.

Parameter:

  • T: Datentyp des erstellten Value-Objekts. float Derzeit und double werden unterstützt.
  • dimension: Die Größe der Dimension des Vektors mit einem heißen Vektor.
  • sequence: die Sammlung von Indizes, die die Abfolge von Beispielen darstellen.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Sequenz von Beispielen enthält. Jedes Beispiel wird durch einen Indexwert dargestellt, der auf den Nicht-Null-Wert im Vektor der dimension Elemente verweist. Der SequenceStartFlag gibt an, ob es sich bei dieser Sequenz um eine neue Sequenz oder eine Fortsetzung einer vorherigen Sequenz aus einem vorherigen Aufruf dieser Methode handelt. Die Sequenzlänge ist die Anzahl der Elemente in sequence.

Parameter:

  • T: Datentyp des erstellten Value-Objekts. float Derzeit und double werden unterstützt.
  • dimension: Die Größe der Dimension des Vektors mit einem heißen Vektor.
  • sequence: die Sammlung von Indizes, die die Abfolge von Beispielen darstellen.
  • sequenceStartFlag: true gibt an, dass es sich um eine neue Sequenz handelt. false bedeutet eine Fortsetzung einer vorherigen Sequenz.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Reihe von Variablenlängensequenzen enthält. Jedes Beispiel wird durch einen Indexwert dargestellt, der auf den Nicht-Null-Wert im Vektor der dimension Elemente verweist. Die Anzahl der Sequenzen ist die Anzahl der Elemente in der äußeren Auflistung von batchOfSequences. Die Länge jeder Sequenz ist die Anzahl der Elemente der entsprechenden Sequenz in der Auflistungsliste von batchOfSequences. Jede Sequenz in batchOfSequences ist eine neue Sequenz.

Parameter:

  • T: Datentyp des erstellten Value-Objekts. float Derzeit und double werden unterstützt.
  • dimension: Die Größe der Dimension des Vektors mit einem heißen Vektor.
  • batchOfSequences: die Sammlung von Indizes, die Sequenzen von Beispielen darstellen. Das Äußere IEnumerable stellt eine Auflistung von Sequenzen mit variabler Länge dar, und das Innere IEnumerable stellt jede einzelne Sequenz dar.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Reihe von Variablenlängensequenzen enthält. Jedes Beispiel wird durch einen Indexwert dargestellt, der auf den Nicht-Null-Wert im Vektor der dimension Elemente verweist. Die Anzahl der Sequenzen ist die Anzahl der Elemente in der äußeren Auflistung von batchOfSequences. Die Länge jeder Sequenz ist die Anzahl der Elemente der entsprechenden Sequenz in der inneren Sammlung von batchOfSequences.

Parameter:

  • T: Datentyp des erstellten Value-Objekts. float Derzeit und double werden unterstützt.
  • dimension: Die Größe der Dimension des Vektors mit einem heißen Vektor.
  • batchOfSequences: die Sammlung von Indizes, die Sequenzen von Beispielen darstellen. Das Äußere IEnumerable stellt eine Auflistung von Sequenzen mit variabler Länge dar, und das Innere IEnumerable stellt jede einzelne Sequenz dar.
  • sequenceStartFlags: Eine Sammlung boolescher Werte. Jedes Element stellt dar, ob es sich bei der entsprechenden Sequenz batchOfSequences um eine neue Sequenz (im Fall von true) oder eine Fortsetzung einer vorherigen Sequenz (im Fall von false).
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

Die folgenden Methoden erstellen ein Value-Objekt mit wenig Eingabe.

Derzeit wird das Komprimierte Spaltenformat (CSC) unterstützt. Das CSC-Format speichert die Matrix im Spalten-Hauptformat, und das Array, das die Spaltenindizes enthält, wird komprimiert. Eine Matrix im CSC-Format wird durch die folgenden Parameter dargestellt:

  • nonZeroValues: das Datenarray, das alle Nichtzerowerte der Matrix im Spalten-Hauptformat enthält.
  • rowIndices: das Array, das die Zeilenindizes der entsprechenden Elemente im Array nonZeroValuesenthält.
  • colStarts: das Array, das Indizes in den Arrays rowIndices und nonZeroValues.

Eine detaillierte Beschreibung des CSC-Formats finden Sie hier.


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

Erstellt ein neues Value-Objekt, das eine Sequenz von Beispielen mit dem CSC-Sparse-Eingabeformat enthält. Die Sequenzlänge ist die Anzahl der Zeilen der geringen Matrix. Die erstellte Sequenz ist eine neue Sequenz.

Parameter:

  • T: Datentyp des erstellten Value-Objekts. float Derzeit und double werden unterstützt.
  • sampleShape: die Tensorform des Werts. Bei einer geringen Eingabe muss die führende Tensordimensionalität mit der Gesamtgröße des Tensor-Shapes identisch sein.
  • sequenceLength: die Sequenzlänge, die auch die Anzahl der Zeilen in der sparsamen Matrix ist.
  • colStarts: Das Array enthält Indizes für jede Spalte in den Arrays rowIndices und nonZeroValues.
  • rowIndices: das Array, das die Zeilenindizes der entsprechenden Elemente im Array nonZeroValuesenthält.
  • nonZeroValues: das Array, das alle Nichtzerowerte in der sparse Matrix enthält.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Sequenz von Beispielen mit dem CSC-Sparse-Eingabeformat enthält. Die Sequenzlänge ist die Anzahl der Zeilen der geringen Matrix. Der SequenceStartFlag gibt an, ob es sich bei dieser Sequenz um eine neue Sequenz oder eine Fortsetzung einer vorherigen Sequenz aus einem vorherigen Aufruf dieser Methode handelt.

Parameter:

  • T: Datentyp des erstellten Value-Objekts. float Derzeit und double werden unterstützt.
  • sampleShape: die Tensorform des Werts. Bei einer geringen Eingabe muss die führende Tensordimensionalität mit der Gesamtgröße des Tensor-Shapes identisch sein.
  • sequenceLength: die Sequenzlänge, die auch die Anzahl der Zeilen in der sparsamen Matrix ist.
  • colStarts: Das Array enthält Indizes für jede Spalte in den Arrays rowIndices und nonZeroValues.
  • rowIndices: das Array, das die Zeilenindizes der entsprechenden Elemente im Array nonZeroValuesenthält.
  • nonZeroValues: das Array, das alle Nichtzerowerte in der sparse Matrix enthält.
  • sequenceStartFlag: true gibt an, dass es sich um eine neue Sequenz handelt. false bedeutet eine Fortsetzung einer vorherigen Sequenz.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Sequenz von Beispielen mit dem CSC-Sparse-Eingabeformat enthält. Die Sequenzlänge ist die Anzahl der Zeilen der geringen Matrix. Die erstellte Sequenz ist eine neue Sequenz.

Parameter:

  • T: Datentyp des erstellten Value-Objekts. float Derzeit und double werden unterstützt.
  • dimension: die Anzahl der Spalten in der geringen Matrix.
  • sequenceLength: die Sequenzlänge, die auch die Anzahl der Zeilen in der sparsamen Matrix ist.
  • colStarts: Das Array enthält Indizes für jede Spalte in den Arrays rowIndices und nonZeroValues.
  • rowIndices: das Array, das die Zeilenindizes der entsprechenden Elemente im Array nonZeroValuesenthält.
  • nonZeroValues: das Array, das alle Nichtzerowerte in der sparse Matrix enthält.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt, das eine Sequenz von Beispielen mit dem CSC-Sparse-Eingabeformat enthält. Die Sequenzlänge ist die Anzahl der Zeilen der geringen Matrix. Der SequenceStartFlag gibt an, ob es sich bei dieser Sequenz um eine neue Sequenz oder Fortsetzung einer vorherigen Sequenz handelt.

Parameter:

  • T: Datentyp des erstellten Value-Objekts. float Derzeit und double werden unterstützt.
  • dimension: die Anzahl der Spalten in der geringen Matrix.
  • sequenceLength: die Sequenzlänge, die auch die Anzahl der Zeilen in der sparsamen Matrix ist.
  • colStarts: Das Array enthält Indizes für jede Spalte in den Arrays rowIndices und nonZeroValues.
  • rowIndices: das Array, das die Zeilenindizes der entsprechenden Elemente im Array nonZeroValuesenthält.
  • nonZeroValues: das Array, das alle Nichtzerowerte in der sparse Matrix enthält.
  • sequenceStartFlag: true gibt an, dass es sich um eine neue Sequenz handelt. false bedeutet eine Fortsetzung einer vorherigen Sequenz.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

Die folgenden Methoden erstellen ein Value-Objekt aus NDArrayView.


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

Erstellt ein neues Value-Objekt basierend auf einer Auflistung von NDArrayViews. Jede Sequenz in sequences ist eine neue Sequenz.

Parameter:

  • sampleShape: die Tensorform des zu erstellenden Werts.
  • sequences: eine Sammlung von Sequenzen, die durch NDArrayView dargestellt werden. Jede NDArrayView stellt eine Sequenz dar.
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein neues Value-Objekt basierend auf einer Auflistung von NDArrayViews. Die SequenceStartFlags gibt an, ob eine Sequenz eine neue Sequenz oder Fortsetzung einer vorherigen Sequenz ist.

Parameter:

  • sampleShape: die Tensorform des zu erstellenden Werts.
  • sequences: eine Sammlung von Sequenzen, die durch NDArrayView dargestellt werden. Jede NDArrayView stellt eine Sequenz dar.
  • sequenceStartFlags: Eine Sammlung boolescher Werte. Jedes Element stellt dar, ob es sich bei der entsprechenden Sequenz sequences um eine neue Sequenz (im Fall von true) oder eine Fortsetzung einer vorherigen Sequenz (im Fall von false).
  • device: Auf welchem Gerät das Value-Objekt erstellt werden soll.
  • readOnly: Der Wert ist schreibgeschützt, wenn dieses Flag lautet true.

Ein Value-Objekt enthält die folgenden Eigenschaften und Methoden.


public Value(NDArrayView data)

Erstellt einen mehrdimensionalen Wert ohne Maske.


public Value(NDArrayView data, NDMask mask)

Erstellt einen mehrdimensionalen Wert mit einer zugeordneten Maske.


public DataType DataType { get; }

Datentyp der Daten, die im Value-Objekt enthalten sind.


public DeviceDescriptor Device { get; }

Der Deskriptor des Geräts, auf dem sich der Wert befindet.


public NDShape Shape { get; }

Die Form des Werts.


public StroageFormat StorageFormat { get; }

Das Speicherformat des Werts.


public bool IsSparse { get; }

Ein boolescher Wert, der angibt, ob der Wert Daten im Speicherformat sparse enthält.


public bool IsReadOnly { get; }

Ein boolescher Wert, der angibt, ob der Wert schreibgeschützt ist.


public int maskedCount { get; }

Die Anzahl der maskierten/ungültigen Werte im Wert.


public void CopyFrom(Value Source)

Kopiert den Inhalt des source Werts. Die Formen der Daten und Masken des SourceWerts müssen mit den Daten und Masken des this Werts identisch sein.

Parameter:

  • Source: Das Quellobjekt, aus dem der Wert kopiert wird.

public Value DeepClone()

Erstellt einen neuen Wert mit neu zugewiesenem Speicher auf demselben Gerät wie this Wert und kopiert this den Inhalt des Werts in den neu zugewiesenen Wert.


public Value DeepClone(bool readOnly)

Erstellt einen neuen Wert mit neu zugewiesenem Speicher auf demselben Gerät wie this Wert und kopiert this den Inhalt des Werts in den neu zugewiesenen Wert.

Parameter:

  • readOnly: Das neue Value-Objekt ist schreibgeschützt, wenn dieses Flag lautet true.

public Value Alias(bool readOnly)

Erstellt einen neuen Wert, der ein Alias von this Wert ist. Parameter:

  • readOnly: Das neue Value-Objekt ist schreibgeschützt, wenn dieses Flag lautet true.

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

Ruft die in dem Value-Objekt gespeicherten Daten als Liste der Sequenzen mit variabler Länge im dichten Format ab. Diese Methode gibt einen IList-IList-IList-Wert<> zurück. Jedes Element der äußeren Liste stellt eine Sequenz dar. Jede Sequenz, dargestellt durch IList, enthält eine variable Anzahl von Beispielen. Jedes Beispiel besteht aus einer festen Anzahl von Elementen mit dem Typ "T". Die Anzahl der Elemente wird durch die Form der AusgabeVariable bestimmt. Die Anzahl der Beispiele ist die Anzahl der Elemente in IList, die durch die Anzahl der Elemente des Beispiels unterteilt sind.

Parameter:

  • outputVariable: Die Variable, die der Wert angibt. Die Form der Variable sollte mit der Form des Werts übereinstimmen.

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

Ruft die in dem Value-Objekt gespeicherten Daten als Liste der Sequenzen mit variabler Länge im Vektorformat ab. Diese Methode gibt einen IList-IList-IList-Wert<> zurück. Jedes Element der äußeren Liste stellt eine Sequenz dar. Jede Sequenz, dargestellt durch IList, enthält eine variable Anzahl von Beispielen. Jedes Beispiel wird durch einen Index zu dem Vektor mit einem hot-Vektor dargestellt. Die Anzahl der Beispiele ist die Anzahl der Elemente in IList.

Parameter:

  • outputVariable: Die Variable, die der Wert angibt. Die Größe des one-hot vector sollte mit der in der Variable definierten Vektor übereinstimmen.

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

Kopieren Sie die daten, die im Value-Objekt gespeichert sind, in die Puffer, die eine Sequenz im CSC-Sparformat darstellen. Der Sequenzpuffer wird bei Bedarf geändert. Der Wert sollte dieselbe Tensor-Form wie outputVariable aufweisen. sequenceLength Wird auf die Länge der im Wert colStartsnonZeroValuesrowIndices gespeicherten Sequenz festgelegt und enthalten die Daten der Spaltenstartindizes, Zeilenindizes und Nicht-Null-Werte und wird auf die Anzahl der in Wert enthaltenen this Nicht-Null-Werte numNonZeroValues festgelegt.

Parameter:

  • outputVariable: gibt die Form und dynamische Achsen beim Kopieren von Daten aus diesem Wert in die Puffer an.
  • sequenceLength: Auf der Rückgabe wird sie auf die Länge der in der Wert gespeicherten Sequenz festgelegt.
  • colStarts: sie enthält Indizes in den nonZeorValues ersten Nicht-Null-Element jeder Spalte der Matrix.
  • rowIndices: auf Rückgabe enthält sie die Zeilenindizes jedes Nicht-Null-Elements der Matrix.
  • nonZeroValues: auf Rückgabe enthält sie Werte aller Nicht-Null-Elemente der Matrix.
  • numNonZeroValues: auf rückgabe gibt die Anzahl der nicht null elemente der Matrix zurück.

Die folgenden Methoden werden bald veraltet sein. Verwenden Sie GetDenseData() und GetOneHotData() oben beschrieben.


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

Kopiert die daten, die im Wert gespeichert sind, in den sequencesvon . Dies sequences ist eine Liste der Sequenzen mit variabler Länge. Die Anzahl der Elemente, die in der äußeren Liste sequences enthalten sind, ist die Anzahl der Sequenzen im Wert. Jedes Element der äußeren Liste stellt eine Sequenz dar. Jede Sequenz, dargestellt durch List<T>, enthält eine variable Anzahl von Beispielen. Jedes Beispiel besteht aus einer festen Anzahl von Elementen mit Typ .T Die Anzahl der Elemente eines Beispiels wird durch die Form von outputVariable. Die Form der Variable sollte mit der Form des Werts übereinstimmen.

Parameter:

  • outputVariable: gibt die Form und dynamische Achsen beim Kopieren von Daten aus dem Wert in den sequencesWert an.
  • sequences: Der Ausgabepuffer, der zum Speichern der Daten verwendet wird, die aus dem Wert kopiert wurden.

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

Kopiert die daten, die im Value-Objekt gespeichert sind, in den sequencesvon . Dies sequences ist eine Liste der Sequenzen mit variabler Länge. Die Anzahl der Elemente, die in der äußeren Liste sequences enthalten sind, ist die Anzahl der Sequenzen im Wert. Jedes Element der äußeren Liste stellt eine Sequenz dar. Jede Sequenz, dargestellt durch List<uint>, enthält eine variable Anzahl von Beispielen. Jedes Beispiel wird durch einen Index dargestellt, der auf den Nicht-Null-Wert im one-hot vector verweist. Die Dimensiongröße des one-hot vector sollte mit dem im Bereich outputVariabledefinierten Vektor übereinstimmen.

Parameter:

  • outputVariable: gibt die Form und dynamische Achsen beim Kopieren von Daten aus dem Wert in den sequencesWert an.
  • sequences: Der Ausgabepuffer, der zum Speichern der Daten verwendet wird, die aus dem Wert kopiert wurden.

Klassenvariable

Gibt eine symbolische Entität an, die den Eingaben und Ausgaben einer Function.

Die Eigenschaften Variable , die häufig in der Auswertung verwendet werden, umfassen:


public string Name { get; }

Name der Variable.


public NDShape Shape { get; }

Form der Variable.


public DataType DataTye { get; }

DataType(#enum-Datatype) der Daten, die die Variable darstellt.


public VariableKind Kind { get; }

Das VariableKind der Variable .


public bool IsSparse { get; }

Ein boolescher Wert, der angibt, ob die Variable sparse Daten angibt.


public bool IsInput { get; }

Ein boolescher Wert, der angibt, ob die Variable eine Eingabe ist.


public bool IsOutput { get; }

Ein boolescher Wert, der angibt, ob die Variable eine Ausgabe ist.


public bool IsParameter { get; }

Ein boolescher Wert, der angibt, ob die Variable ein Parameter ist.


public bool IsConstant { get; }

Ein boolescher Wert, der angibt, ob die Variable eine Konstante ist.


public bool IsPlaceholder { get; }

Ein boolescher Wert, der angibt, ob die Variable ein Platzhalter ist.


public IList<Axis> DynamicAxes { get; }

Gibt die dynamischen Achsen der Variable zurück.


public Function Owner { get; }

Gibt die Funktion zurück, von der die Variable eine Ausgabe darstellt. Gibt zurück null , wenn die Variable nicht von VariableKind Output ist.

Klasse DeviceDescriptor

Gibt eine Berechnungsgerätinstanz an.

Die Klasse DeviceDescriptor enthält die folgenden Eigenschaften und Methoden:


public int Id { get; }

Die ID des Geräts.


public DeviceKind Type { get; }

DeviceKind des Geräts.


public static DeviceDescriptor CPUDevice { get; }

Der DeviceDescriptor, der das CPU-Gerät im lokalen System darstellt.


public static DeviceDescriptor GPUDevice(int deviceId)

Ruft den DeviceDescriptor des GPU-Geräts auf dem lokalen System mit der angegebenen CUDA-Geräte-ID ab.

Parameter:

  • deviceId: die CUDA-Geräte-ID.

public static IList<DeviceDescriptor> AllDevices()

Ruft eine Liste der Deskriptoren aller verfügbaren/unterstützten Geräte ab.

Klasse NDShape

Gibt eine mehrdimensionale rechteckige Form an.


public NDShape()

Erstellt eine NDShape mit 0 Achsen, die einen Skalar darstellt.


public NDShape(int numAxes, int dimension)

Erstellt eine NDShape-Instanz mit der angegebenen Rang- und Dimensionsgröße. Jede Achse hat die gleiche Dimension.

Parameter:

  • numAxes: die Anzahl der Achsen der Form.
  • dimension: die Dimensiongröße, die auf jede Achse angewendet wird.

public NDShape(int numAxes)

Erstellt eine NDShape-Instanz mit der angegebenen Rangfolge. Die Dimensionalität in jeder Achse ist NDShape.InferredDimension.

Parameter:

  • numAxes: die Anzahl der Achsen der Form.

public static NDShape CreateNDShape(IEnumerable<int> dimensions)

Erstellt eine NDShape-Instanz mit angegebenen Dimensionen. Parameter:

  • dimensions: die Dimensiongröße jeder Achse.

public int Rank { get; }

Die Rangfolge der NDShape.


public IList<int> Dimensions { get; }

Die Dimensionen der NDShape.


public int TotalSize { get; }

Die Gesamtgröße der rechteckigen Form, die die Form angibt.


public int this[int key] { get; }

Gibt die Dimensiongröße der angegebenen Achse zurück.


public int IsUnknown { get; }

Ein boolescher Wert, der angibt, ob die Form das spezielle Unbekannte Shape ist.


public int HasInferredDimension { get; }

Ein boolescher Wert, der angibt, ob die Dimension für eine der Achsen der Form unbekannt/verzögert ist (NDShape.InferredDimension).


public NDShape AppendShape(NDShape shape)

Erstellt und gibt eine neue Form zurück, die durch Anfügen der Dimensionen des angegebenen 'Shape' an this die Dimensionen der Form erstellt und zurückgegeben wird.


public NDShape SubShape(int beginAxisId, int endAxisId)

Erstellt und gibt eine neue NDShape-Instanz mit den gleichen Dimensionen wie this der angegebene Achsenbereich von Shape [beginAxisId, endAxisId) zurück.


public NDShape SubShape(int beginAxisId)

Erstellt und gibt eine neue NDShape-Instanz mit den gleichen Dimensionen wie this der Achsenbereich der Form zwischen der BeginAxisId-Achse (inklusive) und der letzten Achse (inklusive) zurück.

Klasse NDArrayView

Gibt ein mehrdimensionales oder schreibgeschütztes Array von Elementwerten an. Dieser Typ gibt eine Ansicht an, und möglicherweise gibt es mehrere gleichzeitige Ansichten der Daten, die einer NDArrayView-Instanz zugrunde liegen. Die zugrunde liegenden Daten werden in sparse oder dichtem Format gespeichert und befinden sich auf einem bestimmten Gerät.


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

Erstellt ein NDArrayView mit dem angegebenen "dataBuffer" im dichten Format als Sicherungsspeicher auf dem angegebenen Gerät.

Parameter:

  • viewShape: die Form des erstellten NDArrayView-Steuerelements.
  • dataBuffer: die Datenwerte, die in der NDArrayView enthalten sind. Der 'dataBuffer' muss mindestens so groß sein wie die Gesamtgröße des angegebenen 'viewShape'-Objekts und muss das erstellte NDArrayView-Objekt überleben.
  • device: Auf welchem Gerät das NDArrayView-Objekt erstellt werden soll.
  • readOnly: das NDArrayView-Objekt ist schreibgeschützt, wenn dieses Flag lautet true.

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

Erstellt ein NDArrayView mit dem angegebenen Speicher im sparse CSC-Format auf dem angegebenen Gerät. Die angegebenen sparse Daten müssen das erstellte NDArrayView-Objekt ausleben.

Parameter:

  • viewShape: die Form des erstellten NDArrayView-Steuerelements.
  • colStarts: Das Array enthält Indizes für jede Spalte in den Arrays rowIndices und nonZeroValues.
  • rowIndices: das Array, das die Zeilenindizes der entsprechenden Elemente im Array nonZeroValuesenthält.
  • nonZeroValues: das Array, das alle Nichtzero-Werte in der Sparsematrix enthält. Die angegebenen sparse Daten müssen das erstellte NDArrayView-Objekt ausleben.
  • device: Auf welchem Gerät das NDArrayView-Objekt erstellt werden soll.
  • readOnly: das NDArrayView-Objekt ist schreibgeschützt, wenn dieses Flag lautet true.

public DeviceDescriptor Device

Der DeviceDescriptor des Geräts, auf dem sich die NDArrayView befindet.


public NDShape Shape

Die Form des NDArrayView.


public DataType DataType

Der Datentyp der Daten, die die NDArrayView speichert.


public StroageFormat StorageFormat

Das Speicherformat des NDArrayView.


public bool IsSparse

Ein boolescher Wert, der angibt, ob das NDArrayView Daten im Speicherformat enthält.


public bool IsReadOnly`

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

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

Erstellt ein neues NDArrayView mit neu zugewiesenem Speicher auf demselben Gerät wie this ansichts- und kopiert this den Inhalt der Ansicht in die neu zugewiesene Ansicht.


public NDArrayView DeepClone(bool readOnly)

Erstellt ein neues NDArrayView mit neu zugewiesenem Speicher auf demselben Gerät wie this ansichts- und kopiert this den Inhalt der Ansicht in die neu zugewiesene Ansicht.

Parameter:

  • readOnly: Das neue NDArrayView-Objekt ist schreibgeschützt, wenn dieses Flag lautet true.

public NDArrayView DeepClone(DeviceDescriptor device, bool readOnly)

Erstellt ein neues NDArrayView mit neu zugewiesenem Speicher auf dem angegebenen Gerät und kopiert this den Inhalt der Ansicht in die neu zugewiesene Ansicht.

Parameter:

  • device: Auf welchem Gerät das neue NDArrayView-Objekt erstellt werden soll.
  • readOnly: Das neue NDArrayView-Objekt ist schreibgeschützt, wenn dieses Flag lautet true.

public NDArrayView Alias(bool readOnly)

Erstellt ein neues NDArrayView, das ein Alias der this Ansicht ist, d. h. eine neue Ansicht derselben Form wie this über die gleichen zugrunde liegenden Daten.

Parameter:

  • readOnly: Das neue NDArrayView-Objekt ist schreibgeschützt, wenn dieses Flag lautet true.

public NDArrayView AsShape(NDShape newShape)

Erstellt ein neues NDArrayView, das ein Alias der this Ansicht ist, aber mit einer neuen Form.

Parameter:

  • newShape: die Form des neuen NDArrayView-Objekts.

public void CopyFrom(NDArrayView source)

Kopiert den Inhalt der "Source" NDArrayView, um this anzuzeigen. Die Formen der Ansicht "Quelle" und this "Ansicht" müssen identisch sein.

Parameter:

  • source: die Quelle NDArrayView, deren Inhalt in this die Ansicht kopiert wird.

public void ChangeDevice(DeviceDescriptor device)

Ändert das Gerät des NDArrayView auf das angegebene Gerät.

Parameter:

  • device: das Zielgerät des NDArrayView-Objekts.

Klasse NDMask

Gibt eine mehrdimensionale Maske an, die zum Angeben bestimmter Abschnitte eines NDArrayView-Objekts als maskiert/ungültig verwendet wird. Dieser Typ gibt eine Ansicht an, und es kann mehrere gleichzeitige Ansichten der Daten geben, die einer NDMask-Instanz zugrunde liegen.


public NDMask(NDShape shape, DeviceDescriptor device)

Erstellen Sie ein neues Mask-Objekt der angegebenen Form auf dem angegebenen Gerät.

Parameter:

  • shape: die Form des NDMask-Objekts.
  • device: das Zielgerät des MDMask-Objekts.

public int MaskedCount { get; }

Die Anzahl der maskierten/ungültigen Werte.


public int Device { get; }

Der Deskriptor des Geräts, auf dem sich die Maske befindet


public int Shape { get; }

Die Form der Maske.


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

Masken Sie den angegebenen Teilabschnitt als ungültig.

Parameter:

  • sectionOffset: Eine Liste, die Startpositionen des Abschnitts angibt, die als ungültig maskiert werden sollen.
  • sectionShape: Die Form beschreibt den Abschnitt, der als ungültig maskiert werden soll.

public void MarkSequenceBegin(IEnumerable<int> offset)

Markieren Sie die angegebene Position als Sequenzanfang.

Parameter:

  • sectionOffset: Eine Liste, die Startpositionen in der Maske angibt, die als Sequenz beginnen sollen.

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

Markieren Sie den angegebenen Teilabschnitt als Sequenzanfang.

Parameter:

  • offset: Eine Liste, die Startpositionen des Abschnitts angibt, die als Sequenz beginnen sollen.
  • sectionShape: Die Form beschreibt den Abschnitt, der als Sequenz beginnen soll.

public void Clear()

Löschen Sie die Maske. Alle derzeit als ungültig gekennzeichneten Werte sind auf gültig festgelegt.


public NDMask DeepClone(DeviceDescriptor device)

Erstellt einen neuen NDMask mit neu zugewiesenem Speicher auf dem angegebenen Gerät und kopiert this den Inhalt der Masken in die neu zugewiesene Ansicht.

Parameter:

  • device: das Zielgerät des MDMask-Objekts.

public NDMask DeepClone()

Erstellt einen neuen NDMask mit neu zugewiesenem Speicher auf demselben Gerät wie this maskieren und kopiert this den Inhalt der Masken in das neu zugewiesene Maskenformat.


public NDMask Alias()

Erstellt eine neue NDMask, die ein Alias von this Masken ist.


public void CopyFrom(NDMask source)

Kopiert den Inhalt der NDMask in this das source Maskieren. Die Formen der source Maske und this Maske müssen identisch sein.

Parameter:

  • source: die Quelle NDMask, deren Inhalt in this die Ansicht kopiert wird.

Klassenachse

Gibt eine Achse einer Variable. Neben den statischen Achsen, die den einzelnen Achsen der Form der Variable entsprechen, verfügen Variablen der Art "Eingabe" und alle "Ausgabe"-Variablen abhängig von einer "Input"-Variable auch über 2 zusätzliche dynamische Achsen, deren Dimensionen nur bekannt sind, wenn die Variable während der Berechnung an tatsächliche Daten gebunden ist (viz. Sequenzachse und Batchachse, die die Achse angibt, auf der mehrere Sequenzen batchiert werden)

Die folgenden Eigenschaften werden in der Klasse definiert. Axis


public string Name { get; }

Name der Achse.


public bool IsStatic { get; }

Gibt einen booleschen Wert zurück, der angibt, ob die Achse einer statischen Achse entspricht.


public bool IsDynamic { get; }

Gibt einen booleschen Wert zurück, der angibt, ob die Achse einer dynamischen Achse entspricht.

Klasse Utils


public static void SetMaxNumCPUThreads(int numCPUThreads)

Legt die prozessweite maximale Anzahl von CPU-Threads fest, die von jedem einzelnen Berechnungsvorgang verwendet werden sollen.


public static int GetMaxNumCPUThreads()

Gibt die prozessweite maximale Anzahl von CPU-Threads zurück, die von jedem einzelnen Berechnungsvorgang verwendet werden sollen.


public static void SetTraceLevel(TraceLevel value)

Gibt die globale Protokollierungs-Verbositätsebene an.


public static TraceLevel GetTraceLevel()

Gibt die aktuelle Protokollierungsverwendbarkeitsstufe zurück.

Aufzählung VariableKind

Gibt die Art eines symbolischen Variable Objekts an.

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

Aufzählen von DataType

Gibt den Datentyp der symbolischen Datenentitäten oder tatsächlichen Daten an.

enum DataType { Unknown, Float, Double };

Aufzählen von DeviceKind

Gibt den Typ eines Berechnungsgeräts an.

enum DeviceKind { CPU, GPU };

Aufzählen des StorageFormats

Gibt das Format des Speichers an, der einer Instanz eines NDArrayView zugrunde liegt.

enum StorageFormat { Dense, SparseCSC, SparseBlockCol };

AufzählparameterCloningMethod

Gibt an, wie Parameter beim Klonen einer Funktion behandelt werden.

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.
};

Aufzählen von TraceLevel

Gibt die Protokollierung von Verbositätsstufen an.

enum TraceLevel { Error, Warning, Info };