CNTK Bibliotheek-C#-API
De CNTK Library Managed API wordt geïmplementeerd in C# en kan worden gebruikt door C# en andere .NET-talen. Op de pagina Met de beheerde API van CNTK library en het gebruik van CNTK met C# ziet u hoe u deze API in uw toepassing gebruikt. In de volgende secties worden de klassen en methoden van de beheerde Eval-API van CNTK Library beschreven.
klasse CNTKLib
Dit is een statische klasse met veel bewerkingen, initialisatie en vele diverse methoden.
public static Function Negate(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementgewijze negate-bewerking met de opgegeven invoeroperand. Parameters:
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Sigmoid(Variable operand, string name = "")
Sigmoid-bewerking. Er wordt een invoervariabele gebruikt en de Sigmoid-bewerking wordt erop toegepast.
Parameters:
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Tanh(Variable operand, string name)
Tanh activering. Er wordt een invoervariabele gebruikt en de Tanh-bewerking wordt hierop toegepast.
Parameters:
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Asin(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementwise asin-bewerking met de opgegeven invoeroperand.
Parameters:
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Sin(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementgewijze sinusbewerking met de opgegeven invoeroperand. Parameters:
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Acos(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementgewijze acosbewerking met de opgegeven invoeroperand.
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Cos(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde cosinusbewerking met de opgegeven invoeroperand.
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Cosh(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde cosh-bewerking met elementwise met de opgegeven invoeroperand.
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Sinh(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementwise sinh-bewerking met de opgegeven invoeroperand.
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function ReLU(Variable operand, string name = "")
Lineaire activering van gelijkrichter. Er wordt een invoervariabele gebruikt en de lineaire activeringsbewerking van de rectifier wordt hierop toegepast.
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Exp(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementwise exp-bewerking met de opgegeven invoeroperand.
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Log(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementgewijze logboekbewerking met de opgegeven invoeroperand.
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Square(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde vierkante bewerking met elementwise met de opgegeven invoeroperand.
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Sqrt(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde vierkantswortelbewerking met de opgegeven invoeroperand.
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Softmax(Variable operand, Axis axis, string name = "")
Maak een exemplaar van de CNTK ingebouwde softmax-bewerking op de opgegeven as op een opgegeven tensor-invoeroperand Parameters:
-
operand
: De invoervariabele van de bewerking. Het kan de ouput van een andere functie zijn. -
axis
: De as om softmax-bewerking toe te passen -
name
: de naam van de bewerking.
public static Function Hardmax(Variable operand, string name = "");
Een exemplaar maken van de CNTK ingebouwde hardmax-bewerking op de opgegeven tensor-invoeroperand
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Transpose(Variable operand, string name = "");
Een exemplaar van de CNTK ingebouwde transponeerbewerking maken op de opgegeven 1D- of 2D-invoeroperand
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Dropout(Variable operand, dropoutRate, uint seed, string name = "");
Een exemplaar van de vervolgkeuzelijst maken op de opgegeven tensor-invoeroperand
-
operand
: De invoervariabelen. Het kan de ouput van een andere functie zijn. -
dropoutRate
: -
seed
: -
name
: de naam van de bewerking.
public static Function Reshape(Variable operand, NDShape replacementShape, Axis beginAxis, Axis endAxis, string name = "");
Een exemplaar van de bewerking voor het wijzigen van de vorm maken op de opgegeven tensor-invoeroperand
public static Function Times(Variable leftOperand, Variable rightOperand, string name = "");
Maak een exemplaar van de CNTK ingebouwde tensor-vermenigvuldigingsbewerking met de opgegeven invoeroperands.
public static Function TransposeTimes(Variable leftOperand, Variable rightOperand, uint outputRank, string name = "");
Maak een exemplaar van de CNTK ingebouwde matrixverdubbelingsbewerking met de transponering van de linkerinvoeroperand en de opgegeven rechteroperand. Accepteert alleen linkse operanden van rang 1 of 2.
public static Function Plus(Variable leftOperand, Variable rightOperand, string name = "")
Een bewerking voor het toevoegen van binaire elementen met tensor. Parameters:
-
leftOperand
: De linkervariabele van de plusbewerking. Het kan de ouput van een andere functie zijn. -
rightOperand
: De linkervariabele van de plusbewerking. Het kan de ouput van een andere functie zijn. -
name
: de naam van de bewerking.
public static Function Minus(Variable leftOperand, Variable rightOperand, string name = "");
Maak een exemplaar van de CNTK ingebouwde tensor-aftrekkingsbewerking met de opgegeven invoeroperands.
public static Function LogAddExp(Variable leftOperand, Variable rightOperand, string name = "");
Maak een exemplaar van de CNTK ingebouwde tensor-bewerking met elementgewijze waarmee het logboek van de som van de exponenten van de opgegeven invoeroperands wordt berekend.
public static Function Pow(Variable leftOperand, Variable rightOperand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementgewijze tensorbewerking waarmee de leftOperand wordt berekend tot de kracht van de rechteroperand.
public static Function ElementTimes(Variable leftOperand, Variable rightOperand, string name = "");
Maak een exemplaar van de CNTK ingebouwde bewerking voor vermenigvuldigen met elementen op opgegeven tensor-invoeroperands.
public static Function ElementDivide(Variable leftOperand, Variable rightOperand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementgewijze delingsbewerking op opgegeven tensor-invoeroperands.
public static Function CosineDistance(Variable leftOperand, Variable rightOperand, string name = "");
Maak een exemplaar van de CNTK ingebouwde bewerking om de cosinusafstand voor de opgegeven invoeroperands te berekenen.
public static Function CosineDistanceWithNegativeSamples(Variable leftOperand, Variable rightOperand, uint shiftWindow, uint numberOfNegativeSamples, string name = "");
Maak een exemplaar van de CNTK ingebouwde bewerking om de cosinusafstand te berekenen met negatieve steekproeven voor de opgegeven invoeroperands.
public static Function BinaryCrossEntropy(Variable prediction, Variable targets, string name = "");
Maak een exemplaar van de CNTK ingebouwde bewerking om binaire kruis-entropie te berekenen voor opgegeven invoeroperands.
public static Function WeightedBinaryCrossEntropy(Variable prediction, Variable targets, Variable weights, string name = "");
Maak een exemplaar van de CNTK ingebouwde bewerking om gewogen binaire kruistropie te berekenen voor opgegeven invoeroperands.
public static Function CrossEntropyWithSoftmax(Variable prediction, Variable labels, Axis axis, string name = "");
Maak een exemplaar van de CNTK ingebouwde bewerking om cross-entropy te berekenen met softmax voor opgegeven invoeroperands.
public static Function ClassificationError(Variable prediction, Variable labels, uint topN, Axis axis, string name = "");
Maak een exemplaar van de CNTK ingebouwde bewerking voor het berekenen van de classificatievoorspellingsfout voor opgegeven operanden.
public static Function PastValue(Variable operand, Variable initialState, uint offset = 1, string name = "");
Maak een exemplaar van de CNTK ingebouwde bewerking voor het ophalen van de eerdere waarde langs de eenzame dynamische as van de opgegeven operand.
public static Function FutureValue(Variable operand, Variable initialState, uint offset = 1, string name = "");
Maak een exemplaar van de CNTK ingebouwde bewerking voor het ophalen van de toekomstige waarde langs de eenzame dynamische as van de opgegeven operand.
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 = "");
Convolutie
public static Function ROIPooling(Variable operand,
Variable rois,
PoolingType poolingType,
NDShape roiOutputShape,
double spatialScale,
string name= "");
Een exemplaar van de CNTK ingebouwde ROI-poolbewerking maken op opgegeven tensor-invoeroperands met de opgegeven uitvoershape
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 = "");
Een exemplaar van de CNTK ingebouwde splicebewerking maken om alle opgegeven tensoroperanden te splitsen in één uitvoertenor
public static Function Combine(VariableVector operands, string name = "");
Maak een nieuw functie-exemplaar waarin alleen de uitvoer van de opgegeven lijst met 'operands'-functies wordt gecombineerd, zodat de uitvoer van de nieuwe functie samenvoegt van de uitvoer van elk van de opgegeven 'operands'-functies. Bijvoorbeeld bij het maken van een classificatiemodel, meestal de CrossEntropy loss Function en de ClassificationError-functie bestaan uit de twee hoofdmappen van de rekengrafiek die kan worden gecombineerd om één functie met 2 uitvoer te maken; Viz. CrossEntropy-verlies en ClassificationError-uitvoer.
public static Function LeakyReLU(Variable operand, string name = "");
Maak een exemplaar van de CNTK ingebouwde elementgewijze lineaire gelijkrichterbewerking met de opgegeven invoeroperand.
class Learner
klasse, functie
Een Function
geeft een symbolische berekening aan met nul of meer invoerargumenten en een of meer uitvoerwaarden. Een functie kan primitief of samengesteld zijn (bestaande uit andere functie-exemplaren waarvan de invoer en uitvoer zijn bekabeld). Een functie is effectief een rekengrafiek die bestaat uit andere primitieve functies (die berekening aangeeft) als knooppunten en Variable
objecten (die gegevens aandukken) als de randen en bladeren van de grafiek.
De Function
klasse bevat de volgende eigenschappen en methoden die relevant zijn voor evaluatie:
public string Name { get; }
Naam van de functie.
public IList<Variable> Arguments { get; }
Lijst met alle invoervariabelen van de functie die niet van het type Parameter of Constante zijn. Deze variabelen zijn vereist invoer om de uitvoer van de functie te berekenen.
public Variable Output { get; }
De variabele met één uitvoer van de functie, als er slechts één is. Anders wordt er een runtime-uitzondering gegenereerd voor toegang.
public IList<Variable> Outputs { get; }
Lijst met alle uitvoervariabelen van de functie.
public Function RootFunction { get; }
Retourneert de primitieve functie in de hoofdmap van de grafiek met functies die onderliggende de functie hebben. Als de functie zelf een primitieve functie is, dan (this-RootFunction>() == this).
public string OpName { get; }
De naam van de bewerking die de functie aangeeft.
public bool IsComposite { get; }
Een Booleaanse waarde die aangeeft of de functie een samengestelde functie is.
public bool IsPrimitive { get; }
Een Booleaanse waarde die aangeeft of de functie een primitieve functie is.
public bool IsBlock { get; }
Een Booleaanse waarde die aangeeft of de functie een blokfunctie is.
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)
Evalueert de functie met behulp van de opgegeven invoer. Hiermee worden de uitvoer van de functie berekend op basis van de waarden die zijn opgegeven voor elke invoervariabele die in de inputs
woordenlijst is opgegeven. De uitvoer wordt opgeslagen in de uitvoerwaarden die overeenkomen met de uitvoervariabelen in de outputs
woordenlijst.
Parameters:
-
inputs
: de invoervariabelen en de bijbehorende waarden van de functie. -
outputs
: uitvoerwaarden voor elke uitvoervariabele. De aanroeper kan het waardeobject opgeven voor het opslaan van de uitvoer of doorgevennull
in welk geval de methode de opslag toewijst voor de uitvoerresultaten. In beide gevallen bevat het object Waarde het resultaat van de bijbehorende uitvoer van de functie. Als er eennull
waarde is opgegeven en de parametercreatePersistentOutputValues
niet is opgegeven of is ingesteldfalse
op, is het door de methode geretourneerde waardeobject tijdelijk en is alleen gegarandeerd geldig tot de volgende aanroep Forward/Backward. Als deze later moet worden geopend, moet u hettrue
tijdelijke waardeobject opgeven of explicietDeepClone
opgevencreatePersistentOutputValues
. -
computeDevice
: het apparaat waarop de berekening wordt uitgevoerd. Het moet worden uitgelijnd met het apparaat waarop het model wordt geladen. -
createPersistentOutputValues
: Alleen relevant als eennull
waarde is opgegeven in uitvoer. Als deze optie is ingesteldtrue
op, maakt de methode permanente waardeobjecten, anders zijn de waardeobjecten tijdelijk en zijn ze alleen geldig tot de volgende aanroep Voorwaarts/Achteruit.
public Function Clone(ParameterCloningMethod parameterCloneMethod = ParameterCloningMethod.Share)
Kloonfunctie this
.
Parameters:
-
parameterCloneMethod
: geeft aan hoe de parameters van de functie worden gekloond:ParameterCloningMethod.Share
- Parameters worden gedeeld tussen de functie die wordt gekloond en de nieuwe kloon. Deze waarde moet worden gebruikt als de gekloonde functie wordt gebruikt voor gelijktijdige evaluatie.ParameterCloningMethod.Clone
- Nieuwe leerbare parameters worden gemaakt en geïnitialiseerd met de huidige waarden van de bijbehorende parameters van de functie die wordt gekloond.ParameterCloningMethod.Freeze
- Parameters worden gekloond en onveranderbaar gemaakt; d.w.v. constanten in de nieuwe kloon (bijvoorbeeld voor gebruik als een extractor met vaste functies). ParameterCloningMethod wordt hier gedefinieerd.
public Function FindByName(string name, bool nestedSearchInsideBlockFunction)
Hiermee vindt u een functie met de opgegeven naam in de functiegrafiek die onder de functie wordt weergegeven. Als er meer dan één functie met dezelfde naam bestaat, wordt er een uitzondering gegenereerd. Als nestedSearchInsideBlockFunction waar is, zoekt u ook alle functies in blokfuncties.
Parameters:
-
name
: de naam die moet worden gezocht. -
nestedSearchInsideBlockFunction
: als dit waar is, worden alle functies in blokfuncties ook onderzocht.
public IList<Function> FindAllWithName(string name, bool nestedSearchInsideBlockFunction = false)
Hiermee vindt u een lijst met functies met de opgegeven naam in de functiegrafiek die onder de functie wordt weergegeven. Als nestedSearchInsideBlockFunction waar is, zoekt u ook alle functies in blokfuncties.
Parameters:
-
name
: de naam die moet worden gezocht. -
nestedSearchInsideBlockFunction
: als dit waar is, worden alle functies in blokfuncties ook onderzocht.
public static Function Load(string modelFile, DeviceDescriptor computeDevice)
Laadt een functie uit een modelbestand.
Parameters:
-
modelFile
: het pad naar het modelbestand. -
computeDevice
: het apparaat waarop de functie is geladen.
public static Function Load(byte[] modelBuffer, DeviceDescriptor computeDevice)
Laadt een functie vanuit een geheugenbuffer die een model vertegenwoordigt.
Parameters:
-
modelBuffer
: de bytematrix bevat de geserialiseerde modelinhoud. -
computeDevice
: het apparaat waarop de functie is geladen.
public static Function Combine(IEnumerable<Variable> operands)
Hiermee maakt u een nieuw functie-exemplaar waarin de uitvoer van de opgegeven lijst met operanden van Functions wordt gecombineerd. De uitvoer van de nieuwe functie is een samenvoeging van de uitvoer van elk van de opgegeven 'operands'-functies. Bij het maken van een classificatiemodel bestaat de functie CrossEntropy-verlies en de Functie ClassificationError doorgaans uit de hoofdmap van de rekengrafiek die 'Combineren' kan zijn om één functie met 2 uitvoer te maken; Viz. CrossEntropy-verlies en ClassificationError-uitvoer.
Parameter:
-
operands
: de lijst met functies of variabelen die moeten worden opgenomen in de uitvoer van de nieuwe functie.
public static Function AsComposite(Function rootFunction, string name = "")
Hiermee maakt u een samengestelde functie met de opgegeven rootFunction als hoofdmap. De samengestelde functie geeft een functie op een hoger niveau aan die de volledige grafiek van Functions inkapselt die onder de opgegeven rootFunction is.
Parameters:
-
rootFunction
: de hoofdmap van de samengestelde functie die moet worden gemaakt. -
name
: de naam van de samengestelde functie die moet worden gemaakt.
public static Function Alias(Variable operand, string name = "")
Hiermee maakt u een nieuw functie-exemplaar. Dit is slechts een alias van de opgegeven operand.
Parameters:
-
operand
: de functie of variabele waarvoor de aliasfunctie is gemaakt. -
name
: de naam van de nieuwe functie die moet worden gemaakt.
klassewaarde
A Value
is een multidimensionale matrix met een optioneel masker en zijn de werkelijke gegevens die worden ingevoerd in of geproduceerd uit een berekening.
Met de volgende methoden maakt u een waardeobject met behulp van compacte invoer met de opgegeven tensor-shape.
public static Value CreateBatch<T>(NDShape sampleShape, IEnumerable<T> batch, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een batch voorbeelden. Het aantal steekproeven in de batch is het aantal elementen gedeeld batch
door de grootte van shape
(er treedt een runtimefout op als de rest niet nul is). Het gemaakte waardeobject bevat een kopie van de opgegeven gegevens in batch
.
Parameters:
-
sampleShape
: de tensor-shape van het waardeobject. -
batch
: de gegevens die moeten worden opgenomen in het waardeobject. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: het waardeobject is alleen-lezen als deze vlag istrue
.
public static Value CreateSequence<T>(NDShape sampleShape, IEnumerable<T> sequence, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een reeks voorbeelden. Het gemaakte waardeobject bevat een kopie van de opgegeven gegevens in sequence
. De lengte van de reeks is het aantal elementen in sequence
gedeeld door de grootte van shape
(een runtimefout treedt op als de rest niet nul is). De gemaakte reeks is een nieuwe reeks.
Parameters:
-
sampleShape
: de tensor-vorm van de waarde. -
sequence
: de gegevens die moeten worden opgenomen in de waarde. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateSequence<T>(NDShape sampleShape, IEnumerable<T> sequence, bool sequenceStartFlag, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een reeks voorbeelden. Het gemaakte waardeobject bevat een kopie van de opgegeven sequence
gegevens. De sequenceStartFlag geeft aan of deze reeks een nieuwe reeks of voortzetting is van een vorige reeks van een eerdere aanroep naar deze methode. De lengte van de reeks is het aantal elementen in sequence
gedeeld door de grootte van shape
(een runtimefout treedt op als de rest niet nul is).
Parameters:
-
sampleShape
: de tensor-vorm van de waarde. -
sequence
: de gegevens die moeten worden opgenomen in de waarde. -
sequenceStartFlag
:true
geeft aan dat het een nieuwe reeks is.false
betekent een voortzetting van een vorige reeks. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateBatchOfSequences<T>(NDShape sampleShape, IEnumerable<IEnumerable<T>> batchOfSequences, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een batch met variabele lengtereeksen. Het gemaakte waardeobject bevat een kopie van de opgegeven gegevens in batchOfSequences
. Het aantal reeksen in de batch is de grootte van batchOfSequences
. De lengte van elke reeks is het aantal elementen in de bijbehorende reeks gedeeld batchOfSequences
door de grootte van shape
(er treedt een runtimefout op als de rest niet nul is). Elke reeks in batchOfSequences
is een nieuwe reeks.
Parameters:
-
sampleShape
: de tensor-vorm van de waarde. -
batchOfSequences
: de gegevens die moeten worden opgeslagen in de waarde. Het buitensteIEnumerable
vertegenwoordigt een verzameling reeksen met variabele lengte en de binnenkantIEnumerable
vertegenwoordigt elke afzonderlijke reeks. -
device
: op welk apparaat de waarde moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateBatchOfSequences<T>(NDShape sampleShape, IEnumerable<IEnumerable<T>> batchOfSequences, IEnumerable<bool> sequenceStartFlags, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een batch met variabele lengtereeksen. Het gemaakte waardeobject bevat een kopie van de opgegeven gegevens in batchOfSequences
. Het aantal reeksen in de batch is de grootte van batchOfSequences
. De lengte van elke reeks is het aantal elementen in de bijbehorende reeks gedeeld batchOfSequences
door de grootte van shape
(er treedt een runtimefout op als de rest niet nul is).
Parameters:
-
sampleShape
: de tensor-vorm van de waarde. -
batchOfSequences
: de gegevens die moeten worden opgeslagen in de waarde. Het buitensteIEnumerable
vertegenwoordigt een verzameling reeksen met variabele lengte en de binnenkantIEnumerable
vertegenwoordigt elke afzonderlijke reeks. -
sequenceStartFlags
: Een verzameling booleaanse waarden. Elk element geeft aan of de bijbehorende reeks een nieuwe reeksbatchOfSequences
is (in het geval vantrue
) of een vervolg van een vorige reeks (in het geval vanfalse
). -
device
: op welk apparaat de waarde moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
Met de volgende methoden maakt u een waardeobject met behulp van een one-hot vectorinvoer.
public static Value CreateBatch<T>(int dimension, IEnumerable<int> batch, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een batch voorbeelden. Elk voorbeeld wordt vertegenwoordigd door een indexwaarde die verwijst naar de niet-nulwaarde in de een-dynamische vector van dimension
elementen. Het aantal steekproeven in de batch is het aantal elementen in batch
.
Parameters:
-
T
: gegevenstype van het gemaakte waardeobject.float
Momenteel endouble
worden ondersteund. -
dimension
: de grootte van de dimensie van de een-dynamische vector. -
batch
: de verzameling indexen die de batch met steekproeven vertegenwoordigen. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateSequence<T>(int dimension, IEnumerable<int> sequence, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een reeks voorbeelden. Elk voorbeeld wordt vertegenwoordigd door een indexwaarde die verwijst naar de niet-nulwaarde in de een-dynamische vector van dimension
elementen. De reekslengte is het aantal elementen in sequence
. De gemaakte reeks is een nieuwe reeks.
Parameters:
-
T
: gegevenstype van het gemaakte waardeobject.float
Momenteel endouble
worden ondersteund. -
dimension
: de grootte van de dimensie van de een-dynamische vector. -
sequence
: de verzameling indexen die de reeks voorbeelden vertegenwoordigen. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateSequence<T>(int dimension, IEnumerable<int> sequence, bool sequenceStartFlag, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een reeks voorbeelden. Elk voorbeeld wordt vertegenwoordigd door een indexwaarde die verwijst naar de niet-nulwaarde in de een-dynamische vector van dimension
elementen. De sequenceStartFlag geeft aan of deze reeks een nieuwe reeks of voortzetting is van een vorige reeks van een eerdere aanroep naar deze methode. De reekslengte is het aantal elementen in sequence
.
Parameters:
-
T
: gegevenstype van het gemaakte waardeobject.float
Momenteel endouble
worden ondersteund. -
dimension
: de grootte van de dimensie van de een-dynamische vector. -
sequence
: de verzameling indexen die de reeks voorbeelden vertegenwoordigen. -
sequenceStartFlag
:true
geeft aan dat het een nieuwe reeks is.false
betekent een voortzetting van een vorige reeks. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateBatchOfSequences<T>(int dimension, IEnumerable<IEnumerable<int>> batchOfSequences, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een batch met variabele lengtereeksen. Elk voorbeeld wordt vertegenwoordigd door een indexwaarde die verwijst naar de niet-nulwaarde in de een-dynamische vector van dimension
elementen. Het aantal reeksen is het aantal elementen in de buitenste verzameling van batchOfSequences
. De lengte van elke reeks is het aantal elementen van de bijbehorende reeks in de verzamelingslijst van batchOfSequences
. Elke reeks in batchOfSequences
is een nieuwe reeks.
Parameters:
-
T
: gegevenstype van het gemaakte waardeobject.float
Momenteel endouble
worden ondersteund. -
dimension
: de grootte van de dimensie van de een-dynamische vector. -
batchOfSequences
: de verzameling indexen die reeksen van steekproeven vertegenwoordigen. Het buitensteIEnumerable
vertegenwoordigt een verzameling reeksen met variabele lengte en de binnenkantIEnumerable
vertegenwoordigt elke afzonderlijke reeks. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateBatchOfSequences<T>(int dimension, IEnumerable<IEnumerable<int>> batchOfSequences, IEnumerable<bool> sequenceStartFlags, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een batch met variabele lengtereeksen. Elk voorbeeld wordt vertegenwoordigd door een indexwaarde die verwijst naar de niet-nulwaarde in de een-dynamische vector van dimension
elementen. Het aantal reeksen is het aantal elementen in de buitenste verzameling van batchOfSequences
. De lengte van elke reeks is het aantal elementen van de bijbehorende reeks in de binnenste verzameling van batchOfSequences
.
Parameters:
-
T
: gegevenstype van het gemaakte waardeobject.float
Momenteel endouble
worden ondersteund. -
dimension
: de grootte van de dimensie van de een-dynamische vector. -
batchOfSequences
: de verzameling indexen die reeksen van steekproeven vertegenwoordigen. Het buitensteIEnumerable
vertegenwoordigt een verzameling reeksen met variabele lengte en de binnenkantIEnumerable
vertegenwoordigt elke afzonderlijke reeks. -
sequenceStartFlags
: Een verzameling booleaanse waarden. Elk element geeft aan of de bijbehorende reeks een nieuwe reeksbatchOfSequences
is (in het geval vantrue
) of een vervolg van een vorige reeks (in het geval vanfalse
). -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
Met de volgende methoden maakt u een waardeobject met behulp van sparse-invoer.
Momenteel wordt de gecomprimeerde kolomindeling (CSC) ondersteund. De CSC-indeling slaat de matrix op in kolom-primaire indeling en de matrix met de kolomindexen wordt gecomprimeerd. Een matrix in CSC-indeling wordt vertegenwoordigd door de volgende parameters:
-
nonZeroValues
: de gegevensmatrix met alle niet-nulwaarden van de matrix in kolom-primaire indeling. -
rowIndices
: de matrix die de rijindexen van de bijbehorende elementen in de matrixnonZeroValues
bevat. -
colStarts
: de matrix met indexen in de matricesrowIndices
ennonZeroValues
.
Hier vindt u een gedetailleerde beschrijving van de CSC-indeling.
public static Value CreateSequence<T>(NDShape sampleShape, int sequenceLength, int[] colStarts, int[] rowIndices, T[] nonZeroValues, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een reeks voorbeelden met behulp van de SPARSE-invoerindeling van CSC. De reekslengte is het aantal rijen van de sparsematrix. De gemaakte reeks is een nieuwe reeks.
Parameters:
-
T
: gegevenstype van het gemaakte waardeobject.float
Momenteel endouble
worden ondersteund. -
sampleShape
: de tensor-vorm van de waarde. Voor parseringsinvoer moet de voorloopdimensionaliteit van de tensor-shape gelijk zijn aan de totale grootte van de tensor-shape. -
sequenceLength
: de reekslengte, wat ook het aantal rijen in de sparsematrix is. -
colStarts
: de matrix bevat indexen voor elke kolom in de matricesrowIndices
ennonZeroValues
. -
rowIndices
: de matrix die de rijindexen van de bijbehorende elementen in de matrixnonZeroValues
bevat. -
nonZeroValues
: de matrix met alle niet-nulwaarden in de sparsematrix. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateSequence<T>(NDShape sampleShape, int sequenceLength, int[] colStarts, int[] rowIndices, T[] nonZeroValues, bool sequenceStartFlag, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een reeks voorbeelden met behulp van de SPARSE-invoerindeling van CSC. De reekslengte is het aantal rijen van de sparsematrix. De sequenceStartFlag geeft aan of deze reeks een nieuwe reeks of voortzetting is van een vorige reeks van een eerdere aanroep naar deze methode.
Parameters:
-
T
: gegevenstype van het gemaakte waardeobject.float
Momenteel endouble
worden ondersteund. -
sampleShape
: de tensor-vorm van de waarde. Voor parseringsinvoer moet de voorloopdimensionaliteit van de tensor-shape gelijk zijn aan de totale grootte van de tensor-shape. -
sequenceLength
: de reekslengte, wat ook het aantal rijen in de sparsematrix is. -
colStarts
: de matrix bevat indexen voor elke kolom in de matricesrowIndices
ennonZeroValues
. -
rowIndices
: de matrix die de rijindexen van de bijbehorende elementen in de matrixnonZeroValues
bevat. -
nonZeroValues
: de matrix met alle niet-nulwaarden in de sparsematrix. -
sequenceStartFlag
:true
geeft aan dat het een nieuwe reeks is.false
betekent een voortzetting van een vorige reeks. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateSequence<T>(int dimension, int sequenceLength, int[] colStarts, int[] rowIndices, T[] nonZeroValues, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een reeks voorbeelden met behulp van de SPARSE-invoerindeling van CSC. De reekslengte is het aantal rijen van de sparsematrix. De gemaakte reeks is een nieuwe reeks.
Parameters:
-
T
: gegevenstype van het gemaakte waardeobject.float
Momenteel endouble
worden ondersteund. -
dimension
: het aantal kolommen in de sparsematrix. -
sequenceLength
: de reekslengte, wat ook het aantal rijen in de sparsematrix is. -
colStarts
: de matrix bevat indexen voor elke kolom in de matricesrowIndices
ennonZeroValues
. -
rowIndices
: de matrix die de rijindexen van de bijbehorende elementen in de matrixnonZeroValues
bevat. -
nonZeroValues
: de matrix met alle niet-nulwaarden in de sparsematrix. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value CreateSequence<T>(int dimension, int sequenceLength, int[] colStarts, int[] rowIndices, T[] nonZeroValues, bool sequenceStartFlag, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject met een reeks voorbeelden met behulp van de SPARSE-invoerindeling van CSC. De reekslengte is het aantal rijen van de sparsematrix. De sequenceStartFlag geeft aan of deze reeks een nieuwe reeks of vervolg is van een vorige reeks.
Parameters:
-
T
: gegevenstype van het gemaakte waardeobject.float
Momenteel endouble
worden ondersteund. -
dimension
: het aantal kolommen in de sparsematrix. -
sequenceLength
: de reekslengte, wat ook het aantal rijen in de sparsematrix is. -
colStarts
: de matrix bevat indexen voor elke kolom in de matricesrowIndices
ennonZeroValues
. -
rowIndices
: de matrix die de rijindexen van de bijbehorende elementen in de matrixnonZeroValues
bevat. -
nonZeroValues
: de matrix met alle niet-nulwaarden in de sparsematrix. -
sequenceStartFlag
:true
geeft aan dat het een nieuwe reeks is.false
betekent een voortzetting van een vorige reeks. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
Met de volgende methoden maakt u een waardeobject op basis van NDArrayView.
public static Value Create(NDShape sampleShape, IEnumerable<NDArrayView> sequences, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject op basis van een verzameling NDArrayViews. Elke reeks in sequences
is een nieuwe reeks.
Parameters:
-
sampleShape
: de tensor-vorm van de waarde die wordt gemaakt. -
sequences
: een verzameling reeksen die worden vertegenwoordigd door NDArrayView. Elke NDArrayView vertegenwoordigt een reeks. -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
public static Value Create(NDShape sampleShape, IEnumerable<NDArrayView> sequences, IEnumerable<bool> sequenceStartFlags, DeviceDescriptor device, bool readOnly = false)
Hiermee maakt u een nieuw waardeobject op basis van een verzameling NDArrayViews. De sequenceStartFlags geeft aan of een reeks een nieuwe reeks of vervolg van een vorige reeks is.
Parameters:
-
sampleShape
: de tensor-vorm van de waarde die wordt gemaakt. -
sequences
: een verzameling reeksen die worden vertegenwoordigd door NDArrayView. Elke NDArrayView vertegenwoordigt een reeks. -
sequenceStartFlags
: Een verzameling booleaanse waarden. Elk element geeft aan of de bijbehorende reeks een nieuwe reekssequences
is (in het geval vantrue
) of een vervolg van een vorige reeks (in het geval vanfalse
). -
device
: op welk apparaat het waardeobject moet worden gemaakt. -
readOnly
: de waarde is alleen-lezen als deze vlag istrue
.
Een waardeobject bevat de volgende eigenschappen en methoden.
public Value(NDArrayView data)
Hiermee maakt u een multidimensionale waarde zonder masker.
public Value(NDArrayView data, NDMask mask)
Hiermee maakt u een multidimensionale waarde met een gekoppeld masker.
public DataType DataType { get; }
DataType van de gegevens in het object Waarde.
public DeviceDescriptor Device { get; }
De beschrijving van het apparaat waarop de waarde zich bevindt.
public NDShape Shape { get; }
De vorm van de waarde.
public StroageFormat StorageFormat { get; }
De opslagindeling van de waarde.
public bool IsSparse { get; }
Een Booleaanse waarde die aangeeft of de waarde gegevens bevat in een sparse-opslagindeling.
public bool IsReadOnly { get; }
Een Booleaanse waarde die aangeeft of de waarde het kenmerk Alleen-lezen heeft.
public int maskedCount { get; }
Het aantal gemaskeerde/ongeldige waarden in de waarde.
public void CopyFrom(Value Source)
Hiermee kopieert u de inhoud van source
de waarde. De vormen van de gegevens en het masker van de Source
waarde moeten identiek zijn aan this
de gegevens en het masker van de waarde.
Parameter:
-
Source
: het bronobject waaruit de waarde wordt gekopieerd.
public Value DeepClone()
Hiermee maakt u een nieuwe waarde met nieuw toegewezen opslag op hetzelfde apparaat als this
Waarde en kopieert this
u de inhoud van Waarde naar de zojuist toegewezen waarde.
public Value DeepClone(bool readOnly)
Hiermee maakt u een nieuwe waarde met nieuw toegewezen opslag op hetzelfde apparaat als this
Waarde en kopieert this
u de inhoud van Waarde naar de zojuist toegewezen waarde.
Parameter:
-
readOnly
: het nieuwe waardeobject is alleen-lezen als deze vlag istrue
.
public Value Alias(bool readOnly)
Hiermee maakt u een nieuwe waarde die een alias van this
Waarde is.
Parameter:
-
readOnly
: het nieuwe waardeobject is alleen-lezen als deze vlag istrue
.
public IList<IList<T>> GetDenseData<T>(Variable outputVariable)
Hiermee haalt u de gegevens op die zijn opgeslagen in het waardeobject als een lijst met reeksen met variabele lengte in compacte indeling. Met deze methode wordt een IList-IList<> geretourneerd. Elk element van de buitenste lijst vertegenwoordigt een reeks. Elke reeks, vertegenwoordigd door IList, bevat een variabel aantal steekproeven. Elk voorbeeld bestaat uit een vast aantal elementen met het type T. Het aantal elementen wordt bepaald door de vorm van outputVariable. Het aantal steekproeven is het aantal elementen in IList gedeeld door het aantal elementen van de steekproef.
Parameter:
-
outputVariable
: De variabele waarnaar de waarde verwijst. De vorm van de variabele moet overeenkomen met de vorm van de waarde.
public IList<IList<int>> GetOneHotData(Variable outputVariable)
Hiermee haalt u de gegevens op die in het waardeobject zijn opgeslagen als een lijst met reeksen met variabele lengte in one-hot vector-indeling. Met deze methode wordt een IList-IList<> geretourneerd. Elk element van de buitenste lijst vertegenwoordigt een reeks. Elke reeks, vertegenwoordigd door IList, bevat een variabel aantal steekproeven. Elk voorbeeld wordt vertegenwoordigd door een index naar de een-hot vector. Het aantal steekproeven is het aantal elementen in IList.
Parameter:
-
outputVariable
: De variabele waarnaar de waarde verwijst. De grootte van de een-hot vector moet overeenkomen met de vector die in de variabele is gedefinieerd.
public void GetSparseData<T>(Variable outputVariable, out int sequenceLength, out IList<int> colStarts, out IList<int> rowIndices, out IList<T> nonZeroValues, out int numNonZeroValues)
Kopieer de gegevens die zijn opgeslagen in het waardeobject naar de buffers die een reeks vertegenwoordigen in de SPARSE-indeling van CSC. De volgordebuffer wordt indien nodig aangepast. De waarde moet dezelfde tensor-shape hebben als outputVariable. Bij retour sequenceLength
wordt ingesteld op de lengte van de reeks die is opgeslagen in de waarde, en rowIndices
colStarts
bevat de nonZeroValues
gegevens van beginindexen van kolommen, rijindexen en niet-nulwaarden en numNonZeroValues
is ingesteld op het aantal niet-nulwaarden in this
Waarde.
Parameters:
-
outputVariable
: geeft de shape en dynamische assen aan bij het kopiëren van gegevens van deze waarde naar de buffers. -
sequenceLength
: bij retour wordt deze ingesteld op de lengte van de reeks die is opgeslagen in de waarde. -
colStarts
: bij retour bevat het indexen in hetnonZeorValues
eerste niet-nulelement van elke kolom van de matrix. -
rowIndices
: bij return bevat het de rijindexen van elk element dat niet nul is van de matrix. -
nonZeroValues
: bij retour bevat het waarden van alle niet-nulelementen van de matrix. -
numNonZeroValues
: bij retour wordt het aantal niet-nulelementen van de matrix geretourneerd.
De volgende methoden worden binnenkort afgeschaft. Gebruik GetDenseData() en GetOneHotData() die hierboven zijn beschreven.
public void CopyVariableValueTo<T>(Variable outputVariable, List<List<T>> sequences)
Kopieert de gegevens die zijn opgeslagen in de waarde in de buffer van sequences
. Het sequences
is een lijst met reeksen met variabele lengte. Het aantal items in de buitenste lijst is sequences
het aantal reeksen in de waarde. Elk element van de buitenste lijst vertegenwoordigt een reeks. Elke reeks, vertegenwoordigd door List<T>
, bevat een variabel aantal steekproeven. Elk voorbeeld bestaat uit een vast aantal elementen met het type T
. Het aantal elementen van een steekproef wordt bepaald door de vorm van outputVariable
. De vorm van de variabele moet overeenkomen met de vorm van de waarde.
Parameters:
-
outputVariable
: geeft de shape en dynamische assen aan bij het kopiëren van gegevens van de waarde naar desequences
. -
sequences
: de uitvoerbuffer die wordt gebruikt voor het opslaan van de gegevens die zijn gekopieerd uit de waarde.
public void CopyVariableValueTo(Variable outputVariable, List<List<uint>> sequences
Kopieert de gegevens die zijn opgeslagen in het object Waarde in de buffer die wordt geleverd door sequences
. Het sequences
is een lijst met reeksen met variabele lengte. Het aantal items in de buitenste lijst is sequences
het aantal reeksen in de waarde. Elk element van de buitenste lijst vertegenwoordigt een reeks. Elke reeks, vertegenwoordigd door List<uint>
, bevat een variabel aantal steekproeven. Elk voorbeeld wordt vertegenwoordigd door een index die verwijst naar de niet-nulwaarde in de one-hot vector. De dimensiegrootte van de een-hot vector moet overeenkomen met die in de outputVariable
.
Parameters:
-
outputVariable
: geeft de shape en dynamische assen aan bij het kopiëren van gegevens van de waarde naar desequences
. -
sequences
: de uitvoerbuffer die wordt gebruikt voor het opslaan van de gegevens die zijn gekopieerd uit de waarde.
klassevariabele
Geeft een symbolische entiteit aan die overeenkomt met de invoer en uitvoer van een Function
.
De eigenschappen die Variable
vaak in evaluatie worden gebruikt, zijn onder andere:
public string Name { get; }
Naam van de variabele.
public NDShape Shape { get; }
Vorm van de variabele.
public DataType DataTye { get; }
DataType(#enum-datatype) van de gegevens die de variabele vertegenwoordigt.
public VariableKind Kind { get; }
De VariableKind van de Variabele.
public bool IsSparse { get; }
Een Booleaanse waarde die aangeeft of de variabele sparsegegevens aangeeft.
public bool IsInput { get; }
Een Booleaanse waarde die aangeeft of de variabele een invoer is.
public bool IsOutput { get; }
Een Booleaanse waarde die aangeeft of de variabele een uitvoer is.
public bool IsParameter { get; }
Een Booleaanse waarde die aangeeft of de variabele een parameter is.
public bool IsConstant { get; }
Een Booleaanse waarde die aangeeft of de variabele een constante is.
public bool IsPlaceholder { get; }
Een Booleaanse waarde die aangeeft of de variabele een tijdelijke aanduiding is.
public IList<Axis> DynamicAxes { get; }
Retourneert de dynamische assen van de variabele.
public Function Owner { get; }
Retourneert de functie waarvan de variabele een uitvoer is. Retourneert null
wanneer de variabele niet van De Output van VariableKind is.
DeviceDescriptor van klasse
Geeft een rekenapparaatexemplaren aan.
De klasse DeviceDescriptor
bevat de volgende eigenschappen en methoden:
public int Id { get; }
De id van het apparaat.
public DeviceKind Type { get; }
DeviceKind van het apparaat.
public static DeviceDescriptor CPUDevice { get; }
De DeviceDescriptor die het CPU-apparaat op het lokale systeem vertegenwoordigt.
public static DeviceDescriptor GPUDevice(int deviceId)
Hiermee haalt u de DeviceDescriptor van het GPU-apparaat op het lokale systeem op met de opgegeven CUDA-apparaat-id.
Parameter:
-
deviceId
: de CUDA-apparaat-id.
public static IList<DeviceDescriptor> AllDevices()
Hiermee haalt u een lijst met beschrijvingen op van alle beschikbare/ondersteunde apparaten.
klasse NDShape
Geeft een multidimensionale rechthoekige vorm aan.
public NDShape()
Hiermee maakt u een NDShape met 0 assen, die een scalaire waarde aangeeft.
public NDShape(int numAxes, int dimension)
Hiermee maakt u een NDShape-exemplaar met de opgegeven rang en dimensiegrootte. Elke as heeft dezelfde dimensionaliteit.
Parameters:
-
numAxes
: het aantal assen van de shape. -
dimension
: de dimensiegrootte, toegepast op elke as.
public NDShape(int numAxes)
Hiermee maakt u een NDShape-exemplaar met de opgegeven rang. De dimensionaliteit in elke as is NDShape.InferredDimension
.
Parameter:
-
numAxes
: het aantal assen van de vorm.
public static NDShape CreateNDShape(IEnumerable<int> dimensions)
Hiermee maakt u een NDShape-exemplaar met opgegeven dimensies. Parameter:
-
dimensions
: de dimensiegrootte van elke as.
public int Rank { get; }
De rang van de NDShape.
public IList<int> Dimensions { get; }
De afmetingen van de NDShape.
public int TotalSize { get; }
De totale grootte van de rechthoekige vorm die de shape aangeeft.
public int this[int key] { get; }
Retourneert de dimensiegrootte van de opgegeven as.
public int IsUnknown { get; }
Een Booleaanse waarde die aangeeft of de shape de speciale onbekende shape is.
public int HasInferredDimension { get; }
Een Booleaanse waarde die aangeeft of de dimensiegrootte voor een van de assen van de shape onbekend/afgeleid is (NDShape.InferredDimension).
public NDShape AppendShape(NDShape shape)
Hiermee maakt en retourneert u een nieuwe shape die is samengesteld door de afmetingen van de opgegeven shape toe te voegen aan this
de afmetingen van de shape.
public NDShape SubShape(int beginAxisId, int endAxisId)
Hiermee maakt en retourneert u een nieuw NDShape-exemplaar met dezelfde afmetingen als het this
opgegeven asbereik van de shape [beginAxisId, endAxisId).
public NDShape SubShape(int beginAxisId)
Hiermee maakt en retourneert u een nieuw NDShape-exemplaar met dezelfde afmetingen als this
het asbereik van de shape tussen de beginAxisId-as (inclusief) en de laatste as (inclusief).
klasse NDArrayView
Geeft een multidimensionale schrijfbare of alleen-lezen matrix met elementwaarden aan. Dit type geeft een weergave aan en er kunnen meerdere gelijktijdige weergaven zijn van de gegevens die onder een NDArrayView-exemplaar liggen. De onderliggende gegevens worden opgeslagen in sparse- of compacte indeling en bevinden zich op een specifiek apparaat.
public NDArrayView(NDShape viewShape, float[] dataBuffer, DeviceDescriptor device, bool readOnly = false)
public NDArrayView(NDShape viewShape, double[] dataBuffer, DeviceDescriptor device, bool readOnly = false)
Bouwt een NDArrayView met de opgegeven 'dataBuffer' in compacte indeling als de backingopslag op het opgegeven apparaat.
Parameters:
-
viewShape
: de vorm van de NDArrayView die wordt gemaakt. -
dataBuffer
: de gegevenswaarden in de NDArrayView. De 'dataBuffer' moet minstens zo groot zijn als de totale grootte van de opgegeven 'viewShape' en moet het gemaakte NDArrayView-object overleeft. -
device
: op welk apparaat het object NDArrayView moet worden gemaakt. -
readOnly
: het object NDArrayView is alleen-lezen als deze vlag istrue
.
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)
Hiermee maakt u een NDArrayView met de opgegeven opslag in sparse CSC-indeling op het opgegeven apparaat. De opgegeven sparsegegevens moeten het gemaakte NDArrayView-object overleeft.
Parameters:
-
viewShape
: de vorm van de NDArrayView die wordt gemaakt. -
colStarts
: de matrix bevat indexen voor elke kolom in de matricesrowIndices
ennonZeroValues
. -
rowIndices
: de matrix die de rijindexen van de bijbehorende elementen in de matrixnonZeroValues
bevat. -
nonZeroValues
: de matrix met alle niet-nulwaarden in de sparsematrix. De opgegeven sparsegegevens moeten het gemaakte NDArrayView-object overleeft. -
device
: op welk apparaat het object NDArrayView moet worden gemaakt. -
readOnly
: het object NDArrayView is alleen-lezen als deze vlag istrue
.
public DeviceDescriptor Device
De DeviceDescriptor van het apparaat waarop de NDArrayView zich bevindt.
public NDShape Shape
De vorm van de NDArrayView.
public DataType DataType
Het datatype van de gegevens die door de NDArrayView worden opgeslagen.
public StroageFormat StorageFormat
De opslagindeling van de NDArrayView.
public bool IsSparse
Een booleaanse waarde die aangeeft of de NDArrayView gegevens in de sparse-opslagindeling bevat.
public bool IsReadOnly`
A boolean value indicating whether the NDArrayView is read-only.
***
```cs
public NDArrayView DeepClone()
Hiermee maakt u een nieuwe NDArrayView met zojuist toegewezen opslag op hetzelfde apparaat als this
de inhoud van de weergave en kopieert this
u de inhoud van de weergave in de zojuist toegewezen weergave.
public NDArrayView DeepClone(bool readOnly)
Hiermee maakt u een nieuwe NDArrayView met zojuist toegewezen opslag op hetzelfde apparaat als this
de inhoud van de weergave en kopieert this
u de inhoud van de weergave in de zojuist toegewezen weergave.
Parameter:
-
readOnly
: het nieuwe NDArrayView-object is alleen-lezen als deze vlag istrue
.
public NDArrayView DeepClone(DeviceDescriptor device, bool readOnly)
Hiermee maakt u een nieuwe NDArrayView met zojuist toegewezen opslag op het opgegeven apparaat en kopieert this
u de inhoud van de weergave naar de zojuist toegewezen weergave.
Parameters:
-
device
: op welk apparaat het nieuwe NDArrayView-object moet worden gemaakt. -
readOnly
: het nieuwe NDArrayView-object is alleen-lezen als deze vlag istrue
.
public NDArrayView Alias(bool readOnly)
Hiermee maakt u een nieuwe NDArrayView die een alias van this
de weergave is. Dit is een nieuwe weergave van dezelfde vorm als over this
dezelfde onderliggende gegevens.
Parameter:
-
readOnly
: het nieuwe NDArrayView-object is alleen-lezen als deze vlag istrue
.
public NDArrayView AsShape(NDShape newShape)
Hiermee maakt u een nieuwe NDArrayView, een alias van this
de weergave, maar met een nieuwe shape.
Parameter:
-
newShape
: de vorm van het nieuwe NDArrayView-object.
public void CopyFrom(NDArrayView source)
Kopieert de inhoud van de bron-NDArrayView om weer te this
geven. De vormen van de bronweergave en this
weergave moeten identiek zijn.
Parameter:
-
source
: de bron NDArrayView waarvan de inhoud wordt gekopieerd om tethis
bekijken.
public void ChangeDevice(DeviceDescriptor device)
Hiermee wijzigt u het apparaat van de NDArrayView in het opgegeven apparaat.
Parameter:
-
device
: het doelapparaat van het NDArrayView-object.
klasse NDMask
Geeft een multidimensionaal masker aan dat wordt gebruikt voor het opgeven van specifieke secties van een NDArrayView-object als gemaskeerd/ongeldig. Dit type geeft een weergave aan en er kunnen meerdere gelijktijdige weergaven zijn van de gegevens die onder een NDMask-exemplaar liggen.
public NDMask(NDShape shape, DeviceDescriptor device)
Maak een nieuw maskerobject van de opgegeven shape op het opgegeven apparaat.
Parameters:
-
shape
: de vorm van het NDMask-object. -
device
: het doelapparaat van het MDMask-object.
public int MaskedCount { get; }
Het aantal gemaskeerde/ongeldige waarden.
public int Device { get; }
De beschrijving van het apparaat waarop het masker zich bevindt
public int Shape { get; }
De vorm van het masker.
public void InvalidateSection(IEnumerable<int> sectionOffset, NDShape sectionShape)
Masker de opgegeven subsectie als ongeldig.
Parameters:
-
sectionOffset
: Een lijst met beginposities van de sectie die als ongeldig moet worden gemaskeerd. -
sectionShape
: De shape beschrijft de sectie die als ongeldig moet worden gemaskeerd.
public void MarkSequenceBegin(IEnumerable<int> offset)
Markeer de opgegeven positie als reeks begin.
Parameter:
-
sectionOffset
: Een lijst met beginposities in het masker dat moet worden gemaskeerd als volgorde begint.
public void MarkSequenceBegin(IEnumerable<int> offset, NDShape sectionShape)
Markeer de opgegeven subsectie als reeks begin.
Parameters:
-
offset
: Een lijst met beginposities van de sectie die moet worden gemaskeerd als volgorde begint. -
sectionShape
: De shape beschrijft de sectie die moet worden gemaskeerd als volgorde begint.
public void Clear()
Wis het masker. Alle huidige waarden die als ongeldig zijn gemaskeerd, zijn ingesteld op geldig.
public NDMask DeepClone(DeviceDescriptor device)
Hiermee maakt u een nieuwe NDMask met nieuw toegewezen opslag op het opgegeven apparaat en kopieert u this
de inhoud van het masker naar de zojuist toegewezen weergave.
Parameter:
-
device
: het doelapparaat van het MDMask-object.
public NDMask DeepClone()
Hiermee maakt u een nieuwe NDMask met zojuist toegewezen opslag op hetzelfde apparaat als this
masker en kopieert u this
de inhoud van het masker naar het zojuist toegewezen masker.
public NDMask Alias()
Hiermee maakt u een nieuwe NDMask die een alias van this
masker is.
public void CopyFrom(NDMask source)
Kopieert de inhoud van de source
NDMask om te this
maskeren. De vormen van het source
masker en this
masker moeten identiek zijn.
Parameter:
-
source
: de bron-NDMask waarvan de inhoud wordt gekopieerd om tethis
bekijken.
klasseas
Geeft een as van een Variable
. Naast de statische assen die overeenkomen met elk van de assen van de shape van de variabele, hebben variabelen van het type 'Invoer' en eventuele uitvoervariabelen die afhankelijk zijn van een 'Invoervariabele' ook twee extra dynamische assen waarvan de dimensies alleen bekend zijn wanneer de variabele is gebonden aan werkelijke gegevens tijdens de berekening (viz. reeksas en batchas die de as aangeeft waarop meerdere reeksen worden gebatcheerd)
De volgende eigenschappen worden gedefinieerd in de klasse Axis
public string Name { get; }
Naam van de as.
public bool IsStatic { get; }
Retourneert een Booleaanse waarde die aangeeft of de as overeenkomt met een statische as.
public bool IsDynamic { get; }
Retourneert een Booleaanse waarde die aangeeft of de as overeenkomt met een dynamische as.
klasse Utils
public static void SetMaxNumCPUThreads(int numCPUThreads)
Hiermee stelt u het maximale aantal CPU-threads voor het hele proces in dat door elke afzonderlijke rekenbewerking moet worden gebruikt.
public static int GetMaxNumCPUThreads()
Retourneert het maximale aantal CPU-threads voor het hele proces dat moet worden gebruikt door elke afzonderlijke rekenbewerking.
public static void SetTraceLevel(TraceLevel value)
Hiermee geeft u het uitgebreide niveau van globale logboekregistratie op.
public static TraceLevel GetTraceLevel()
Retourneert het huidige uitgebreidheidsniveau voor logboekregistratie.
enum VariableKind
Geeft het soort symbolische Variable
object aan
enum VariableKind { Input, Output, Parameter, Constant, Placeholder };
enum DataType
Geeft het gegevenstype van symbolische gegevensentiteiten of werkelijke gegevens aan.
enum DataType { Unknown, Float, Double };
enum DeviceKind
Geeft het type van een rekenapparaat aan.
enum DeviceKind { CPU, GPU };
enum StorageFormat
Geeft de indeling van de opslag aan die onderliggende een instantie van een NDArrayView is.
enum StorageFormat { Dense, SparseCSC, SparseBlockCol };
enum ParameterCloningMethod
Geeft aan hoe parameters worden verwerkt bij het klonen van een functie.
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
Geeft de uitgebreidheidsniveaus voor logboekregistratie aan.
enum TraceLevel { Error, Warning, Info };