Condividi tramite


API C# della libreria CNTK

L'API gestita della libreria CNTK viene implementata in C#e può essere utilizzata da C# e da altri linguaggi .NET. La pagina Uso dell'API gestita della libreria CNTK e Uso di CNTKcon C# presenta come usare questa API nell'applicazione. Le sezioni seguenti descrivono le classi e i metodi dell'API Eval gestita della libreria CNTK.

classe CNTKLib

Si tratta di una classe statica che contiene molte operazioni, inizializzazione e molti metodi vari.


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

Creare un'istanza dell'operazione di negazione predefinita dell'elemento CNTK con l'operando di input specificato. Parametri

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Operazione Sigmoid. Accetta una variabile di input e applica l'operazione Sigmoid a tale variabile.

Parametri

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

public static Function Tanh(Variable operand, string name)

Attivazione tanh. Accetta una variabile di input e applica l'operazione Tanh a tale variabile.

Parametri

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza del CNTK'operazione predefinita asin con l'operando di input specificato.

Parametri

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione sine in senso elemento predefinita CNTK con l'operando di input specificato. Parametri

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza del CNTK'operazione acos predefinita con l'operando di input specificato.

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione cosine predefinita CNTK con l'operando di input specificato.

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione cosh predefinita CNTK con l'operando di input specificato.

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione sinh predefinita CNTK con l'operando di input specificato.

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Attivazione lineare del rectifier. Accetta una variabile di input e applica l'operazione di attivazione lineare del correttore.

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione CNTK predefinito exp per elemento con l'operando di input specificato.

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione di log in senso elemento predefinito CNTK con l'operando di input specificato.

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione in senso elemento predefinito CNTK con l'operando di input specificato.

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione CNTK predefinito a radice quadrata con l'operando di input specificato.

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione softmax predefinita CNTK sull'asse specificato su un operando di input tensor specificato:

  • operand: variabile di input dell'operazione. Può essere l'ouput di un'altra funzione.
  • axis: asse per applicare l'operazione softmax
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione hardmax predefinita CNTK nell'operando di input tensor specificato

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione di trasposizione predefinita CNTK nell'operando di input 1D o 2D specificato

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione di rilascio nell'operando di input tensor specificato

  • operand: variabili di input. Può essere l'ouput di un'altra funzione.
  • dropoutRate:
  • seed:
  • name: nome dell'operazione.

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

Creare un'istanza dell'operazione di riconfigurazione nell'operando di input tensor specificato


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

Creare un'istanza dell'operazione di moltiplicazione del tensore predefinito CNTK con gli operandi di input specificati.


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

Creare un'istanza dell'operazione di moltiplicazione della matrice predefinita CNTK con il trasposto dell'operando di input sinistro e l'operando destro specificato. Accetta solo operandi a sinistra di ranghi 1 o 2.


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

Operazione di addizione per elementi binari. Parametri

  • leftOperand: variabile sinistra dell'operazione più. Può essere l'ouput di un'altra funzione.
  • rightOperand: variabile sinistra dell'operazione più. Può essere l'ouput di un'altra funzione.
  • name: nome dell'operazione.

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

Creare un'istanza del CNTK'operazione di sottrazione di tensore in senso elemento predefinita con gli operandi di input specificati.


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

Creare un'istanza dell'operazione CNTK tensore in senso elemento predefinito che calcola il log della somma degli operandi di input specificati.


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

Creare un'istanza dell'operazione di tensore in senso elemento predefinito CNTK che calcola la potenza dell'operando destro.


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

Creare un'istanza dell'operazione di moltiplicazione in senso elemento predefinito CNTK sugli operandi di input tensor specificati.


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

Creare un'istanza dell'operazione CNTK divisione in senso elemento predefinito sugli operandi di input tensor specificati.


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

Creare un'istanza dell'operazione predefinita CNTK per calcolare la distanza cosina per gli operandi di input specificati.


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

Creare un'istanza dell'operazione predefinita CNTK per calcolare la distanza cosina con esempi negativi per gli operandi di input specificati.


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

Creare un'istanza dell'operazione predefinita CNTK per calcolare l'entropia binaria per gli operandi di input specificati.


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

Creare un'istanza dell'operazione predefinita CNTK per calcolare l'entropia binaria ponderata per gli operandi di input specificati.


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

Creare un'istanza dell'operazione predefinita CNTK per calcolare l'entropia incrociata con softmax per gli operandi di input specificati.


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

Creare un'istanza dell'operazione predefinita CNTK per calcolare l'errore di stima della classificazione per gli operandi specificati.


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

Creare un'istanza dell'operazione predefinita CNTK per ottenere il valore passato lungo l'asse dinamico solitario dell'operando specificato.


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

Creare un'istanza dell'operazione predefinita CNTK per ottenere il valore futuro lungo l'asse dinamico lone dell'operando specificato.


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

Convoluzione


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

Creare un'istanza dell'operazione di pooling roi predefinito CNTK sugli operandi di input tensor specificati con la forma di output specificata


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

Creare un'istanza dell'operazione predefinito di CNTK per splice insieme a tutti gli operandi tensor specificati in un singolo tensore di output


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

Creare una nuova istanza di funzione che combina solo gli output dell'elenco specificato di funzioni 'operandi' in modo che gli "output" della nuova funzione siano unione dei 'output' di ognuna delle funzioni 'operandi' specificate. Ad esempio, quando si crea un modello di classificazione, in genere la funzione di perdita crossentropia e la funzione ClassificationError costituiscono le due radici del grafico di calcolo che può essere "combinato" per creare una singola funzione con 2 output; Cioè. Perdita crossEntropy e output ClassificationError.


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

Creare un'istanza del CNTK'operazione di correzione lineare a perdita di elementi predefinita con l'operando di input specificato.

learner di classe

funzione di classe

Un Function valore indica un calcolo simbolico con zero o più argomenti di input e uno o più output. Una funzione può essere primitiva o composita (costituita da altre istanze di funzione i cui input e output sono cablati insieme). Una funzione è in modo efficace un grafico di calcolo composto da altre funzioni primitive (che deno il calcolo) come nodi e oggetti (denotando i dati) come bordi e Variable foglie del grafico.

La Function classe contiene le proprietà e i metodi seguenti rilevanti per la valutazione:


public string Name { get; }

Nome della funzione.


public IList<Variable> Arguments { get; }

Elenco di tutte le variabili di input della funzione che non sono di tipo Parametro o Costante. Queste variabili sono necessari input per calcolare gli output della funzione.


public Variable Output { get; }

Variabile di output singola della funzione, se presente solo una. In caso contrario, viene generata un'eccezione di runtime per l'accesso.


public IList<Variable> Outputs { get; }

Elenco di tutte le variabili di output della funzione.


public Function RootFunction { get; }

Restituisce la funzione primitiva alla radice del grafico di Funzioni sottostante alla funzione. Se la funzione stessa è una funzione primitiva, quindi (this-RootFunction>() == questa.


public string OpName { get; }

Nome dell'operazione che indica la funzione.


public bool IsComposite { get; }

Valore booleano che indica se la funzione è una funzione composita.


public bool IsPrimitive { get; }

Valore booleano che indica se la funzione è una funzione primitiva.


public bool IsBlock { get; }

Valore booleano che indica se la funzione è una funzione a blocchi.


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)

Valuta la funzione usando l'input specificato. Calcola gli output della funzione in base ai valori forniti per ogni variabile di input specificata nel inputs dizionario. Gli output vengono archiviati nei valori di output corrispondenti alle variabili di output nel outputs dizionario.

Parametri

  • inputs: le variabili di input e i relativi valori della funzione.
  • outputs: valori di output per ogni variabile di output. Il chiamante può specificare l'oggetto Value per l'archiviazione dell'output o il passaggio null in cui il metodo alloca l'archiviazione per i risultati dell'output. In entrambi i casi, per restituire l'oggetto Value contiene il risultato dell'output corrispondente della funzione. Se è stato specificato un null valore e il parametro createPersistentOutputValues non è specificato o è impostato su false, l'oggetto Value restituito dal metodo è temporaneo e garantisce la validità solo fino alla chiamata avanti/indietro successiva. Se deve essere accessibile in un secondo momento, è necessario specificare createPersistentOutputValues o truein modo esplicito DeepClone l'oggetto Value temporaneo.
  • computeDevice: dispositivo in cui viene eseguito il calcolo. Deve essere allineato al dispositivo in cui viene caricato il modello.
  • createPersistentOutputValues: rilevante solo se un null valore è stato specificato negli output. Se è impostato su true, il metodo creerà oggetti Value persistenti, altrimenti gli oggetti Value sono temporanei e sono validi solo fino alla chiamata avanti/indietro successiva.

public Function Clone(ParameterCloningMethod parameterCloneMethod = ParameterCloningMethod.Share)

Funzione Clona this .

Parametri

  • parameterCloneMethod: specifica come vengono clonati i parametri della funzione: ParameterCloningMethod.Share - I parametri vengono condivisi tra la funzione clonata e il nuovo clone. Questo valore deve essere usato se la funzione clonata viene usata per la valutazione simultanea. ParameterCloningMethod.Clone - I nuovi parametri appresi vengono creati e inizializzati con i valori correnti dei parametri corrispondenti della funzione clonata. ParameterCloningMethod.Freeze - I parametri vengono clonati e resi non modificabili; Ad esempio, le costanti nel nuovo clone (ad esempio, per l'uso come estrattore di funzionalità fisse). ParameterCloningMethod è definito qui.

public Function FindByName(string name, bool nestedSearchInsideBlockFunction)

Trova una funzione con il nome specificato nel grafico funzione sottostante la funzione. Se esiste più di una funzione con lo stesso nome, viene generata un'eccezione. Se nestedSearchInsideBlockFunction è true, cercare anche tutte le funzioni all'interno di funzioni bloccate.

Parametri

  • name: nome da cercare.
  • nestedSearchInsideBlockFunction: se è vero, vengono esaminate anche tutte le funzioni all'interno di funzioni a blocchi.

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

Trova un elenco di funzioni con il nome specificato nel grafico funzione sottostante alla funzione. Se nestedSearchInsideBlockFunction è true, cercare anche tutte le funzioni all'interno di funzioni bloccate.

Parametri

  • name: nome da cercare.
  • nestedSearchInsideBlockFunction: se è vero, vengono esaminate anche tutte le funzioni all'interno di funzioni a blocchi.

public static Function Load(string modelFile, DeviceDescriptor computeDevice)

Carica una funzione da un file di modello.

Parametri

  • modelFile: percorso del file del modello.
  • computeDevice: dispositivo in cui viene caricata la funzione.

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

Carica una funzione da un buffer di memoria che rappresenta un modello.

Parametri

  • modelBuffer: la matrice di byte contiene il contenuto del modello serializzato.
  • computeDevice: dispositivo in cui viene caricata la funzione.

public static Function Combine(IEnumerable<Variable> operands)

Crea una nuova istanza di funzione che combina gli output dell'elenco specificato di 'operandi' di Funzioni. Gli 'output' della nuova 'funzione' sono l'unione delle funzioni 'Output' di ognuna delle funzioni 'operandi' specificate. Ad esempio, quando si crea un modello di classificazione, in genere la funzione di perdita crossentropia e la funzione ClassificationError costituiscono le radici del grafico di calcolo che può essere "Combine"d per creare una singola funzione con 2 output; Cioè. Perdita crossEntropy e output ClassificationError.

Parametro:

  • operands: elenco delle funzioni o delle variabili che devono essere incluse negli output della nuova funzione.

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

Crea una funzione composita con rootFunction specificata come radice. Il composito indica una funzione di livello superiore che incapsula l'intero grafico di Funzioni sottostante alla radice specificataFunction.

Parametri

  • rootFunction: radice della funzione composita da creare.
  • name: nome della funzione composita da creare.

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

Crea una nuova istanza della funzione che è solo un alias dell'operando specificato.

Parametri

  • operand: funzione o variabile per cui viene creata la funzione alias.
  • name: nome della nuova funzione da creare.

valore della classe

Una Value è una matrice multidimensionale con una maschera facoltativa ed è i dati effettivi inseriti o prodotti da un calcolo.


I metodi seguenti creano un oggetto Value usando un input denso con la forma tensore specificata.


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

Crea un nuovo oggetto Value contenente un batch di esempi. Il numero di campioni nel batch è il numero di elementi in batch divisione per le dimensioni di shape (errore di runtime si verifica se il resto non è zero). L'oggetto Value creato contiene una copia dei dati specificati in batch.

Parametri

  • sampleShape: forma tensor dell'oggetto Value.
  • batch: i dati da contenere nell'oggetto Value.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: l'oggetto Value è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente una sequenza di campioni. L'oggetto Value creato contiene una copia dei dati specificati in sequence. La lunghezza della sequenza è il numero di elementi divisi sequence per le dimensioni di shape (si verifica un errore di runtime se il resto non è zero). La sequenza creata è una nuova sequenza.

Parametri

  • sampleShape: forma tensore del valore.
  • sequence: i dati da contenere nel valore.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente una sequenza di campioni. L'oggetto Value creato contiene una copia dei dati specificati sequence . SequenceStartFlag specifica se questa sequenza è una nuova sequenza o una continuazione di una sequenza precedente da una chiamata precedente a questo metodo. La lunghezza della sequenza è il numero di elementi divisi sequence per le dimensioni di shape (si verifica un errore di runtime se il resto non è zero).

Parametri

  • sampleShape: forma tensore del valore.
  • sequence: i dati da contenere nel valore.
  • sequenceStartFlag: true indica che si tratta di una nuova sequenza. false indica una continuazione di una sequenza precedente.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente un batch di sequenze di lunghezza variabile. L'oggetto Value creato contiene una copia dei dati specificati in batchOfSequences. Il numero di sequenze nel batch è la dimensione di batchOfSequences. La lunghezza di ogni sequenza è il numero di elementi nella sequenza corrispondente di batchOfSequences divisa per le dimensioni di shape (si verifica un errore di runtime se il resto non è zero). Ogni sequenza in batchOfSequences è una nuova sequenza.

Parametri

  • sampleShape: forma tensore del valore.
  • batchOfSequences: i dati da archiviare nel valore. L'elemento esterno IEnumerable rappresenta una raccolta di sequenze con lunghezza variabile e l'interno IEnumerable rappresenta ogni singola sequenza.
  • device: nel dispositivo in cui deve essere creato il valore.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente un batch di sequenze di lunghezza variabile. L'oggetto Value creato contiene una copia dei dati specificati in batchOfSequences. Il numero di sequenze nel batch è la dimensione di batchOfSequences. La lunghezza di ogni sequenza è il numero di elementi nella sequenza corrispondente di batchOfSequences divisa per le dimensioni di shape (si verifica un errore di runtime se il resto non è zero).

Parametri

  • sampleShape: forma tensore del valore.
  • batchOfSequences: i dati da archiviare nel valore. L'elemento esterno IEnumerable rappresenta una raccolta di sequenze con lunghezza variabile e l'interno IEnumerable rappresenta ogni singola sequenza.
  • sequenceStartFlags: raccolta di valori booleani. Ogni elemento rappresenta se la sequenza corrispondente in batchOfSequences è una nuova sequenza (nel caso di true) o una continuazione di una sequenza precedente (nel caso di false).
  • device: nel dispositivo in cui deve essere creato il valore.
  • readOnly: il valore è di sola lettura se questo flag è true.

I metodi seguenti creano un oggetto Value usando l'input di un vettore one-hot.


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

Crea un nuovo oggetto Value contenente un batch di campioni. Ogni esempio è rappresentato da un valore di indice che punta al valore diverso da zero nel vettore uno-hot degli dimension elementi. Il numero di campioni nel batch è il numero di elementi in batch.

Parametri

  • T: tipo di dati dell'oggetto Value creato. float Attualmente e double sono supportati.
  • dimension: dimensione della dimensione del vettore a accesso frequente.
  • batch: raccolta di indici che rappresentano il batch di campioni.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente una sequenza di campioni. Ogni esempio è rappresentato da un valore di indice che punta al valore diverso da zero nel vettore uno-hot degli dimension elementi. La lunghezza della sequenza è il numero di elementi in sequence. La sequenza creata è una nuova sequenza.

Parametri

  • T: tipo di dati dell'oggetto Value creato. float Attualmente e double sono supportati.
  • dimension: dimensione della dimensione del vettore a accesso frequente.
  • sequence: raccolta di indici che rappresentano la sequenza di campioni.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente una sequenza di campioni. Ogni esempio è rappresentato da un valore di indice che punta al valore diverso da zero nel vettore uno-hot degli dimension elementi. SequenceStartFlag specifica se questa sequenza è una nuova sequenza o una continuazione di una sequenza precedente da una chiamata precedente a questo metodo. La lunghezza della sequenza è il numero di elementi in sequence.

Parametri

  • T: tipo di dati dell'oggetto Value creato. float Attualmente e double sono supportati.
  • dimension: dimensione della dimensione del vettore a accesso frequente.
  • sequence: raccolta di indici che rappresentano la sequenza di campioni.
  • sequenceStartFlag: true indica che si tratta di una nuova sequenza. false indica una continuazione di una sequenza precedente.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente un batch di sequenze di lunghezza variabile. Ogni esempio è rappresentato da un valore di indice che punta al valore diverso da zero nel vettore uno-hot degli dimension elementi. Il numero di sequenze è il numero di elementi nella raccolta esterna di batchOfSequences. La lunghezza di ogni sequenza è il numero di elementi della sequenza corrispondente nell'elenco di raccolte di batchOfSequences. Ogni sequenza in batchOfSequences è una nuova sequenza.

Parametri

  • T: tipo di dati dell'oggetto Value creato. float Attualmente e double sono supportati.
  • dimension: dimensione della dimensione del vettore a accesso frequente.
  • batchOfSequences: raccolta di indici che rappresentano sequenze di campioni. L'elemento esterno IEnumerable rappresenta una raccolta di sequenze con lunghezza variabile e l'interno IEnumerable rappresenta ogni singola sequenza.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente un batch di sequenze di lunghezza variabile. Ogni esempio è rappresentato da un valore di indice che punta al valore diverso da zero nel vettore uno-hot degli dimension elementi. Il numero di sequenze è il numero di elementi nella raccolta esterna di batchOfSequences. La lunghezza di ogni sequenza è il numero di elementi della sequenza corrispondente nella raccolta interna di batchOfSequences.

Parametri

  • T: tipo di dati dell'oggetto Value creato. float Attualmente e double sono supportati.
  • dimension: dimensione della dimensione del vettore a accesso frequente.
  • batchOfSequences: raccolta di indici che rappresentano sequenze di campioni. L'elemento esterno IEnumerable rappresenta una raccolta di sequenze con lunghezza variabile e l'interno IEnumerable rappresenta ogni singola sequenza.
  • sequenceStartFlags: raccolta di valori booleani. Ogni elemento rappresenta se la sequenza corrispondente in batchOfSequences è una nuova sequenza (nel caso di true) o una continuazione di una sequenza precedente (nel caso di false).
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

I metodi seguenti creano un oggetto Value usando l'input sparse.

Attualmente è supportato il formato CSC (Compressed Sparse Column Format). Il formato CSC archivia la matrice in formato colonna-principale e la matrice contenente gli indici di colonna viene compressa. Una matrice in formato CSC è rappresentata dai parametri seguenti:

  • nonZeroValues: matrice di dati che contiene tutti i valori diversi da zero della matrice in formato colonna-principale.
  • rowIndices: matrice che contiene gli indici di riga degli elementi corrispondenti nella matrice nonZeroValues.
  • colStarts: matrice che contiene indici nelle matrici rowIndices e nonZeroValues.

Una descrizione dettagliata del formato CSC è disponibile qui.


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

Crea un nuovo oggetto Value contenente una sequenza di campioni usando il formato di input sparse CSC. La lunghezza della sequenza è il numero di righe della matrice di tipo sparse. La sequenza creata è una nuova sequenza.

Parametri

  • T: tipo di dati dell'oggetto Value creato. float Attualmente e double sono supportati.
  • sampleShape: forma tensore del valore. Per l'input di tipo sparse, la dimensione iniziale della forma tensore deve corrispondere alla dimensione totale della forma tensore.
  • sequenceLength: lunghezza della sequenza, che corrisponde anche al numero di righe nella matrice di tipo sparse.
  • colStarts: la matrice contiene indici per ogni colonna nelle matrici rowIndices e nonZeroValues.
  • rowIndices: matrice che contiene gli indici di riga degli elementi corrispondenti nella matrice nonZeroValues.
  • nonZeroValues: matrice che contiene tutti i valori diversi da zero nella matrice di tipo sparse.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente una sequenza di campioni usando il formato di input sparse CSC. La lunghezza della sequenza è il numero di righe della matrice di tipo sparse. SequenceStartFlag specifica se questa sequenza è una nuova sequenza o una continuazione di una sequenza precedente da una chiamata precedente a questo metodo.

Parametri

  • T: tipo di dati dell'oggetto Value creato. float Attualmente e double sono supportati.
  • sampleShape: forma tensore del valore. Per l'input di tipo sparse, la dimensione iniziale della forma tensore deve corrispondere alla dimensione totale della forma tensore.
  • sequenceLength: lunghezza della sequenza, che corrisponde anche al numero di righe nella matrice di tipo sparse.
  • colStarts: la matrice contiene indici per ogni colonna nelle matrici rowIndices e nonZeroValues.
  • rowIndices: matrice che contiene gli indici di riga degli elementi corrispondenti nella matrice nonZeroValues.
  • nonZeroValues: matrice che contiene tutti i valori diversi da zero nella matrice di tipo sparse.
  • sequenceStartFlag: true indica che si tratta di una nuova sequenza. false indica una continuazione di una sequenza precedente.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente una sequenza di campioni usando il formato di input sparse CSC. La lunghezza della sequenza è il numero di righe della matrice di tipo sparse. La sequenza creata è una nuova sequenza.

Parametri

  • T: tipo di dati dell'oggetto Value creato. float Attualmente e double sono supportati.
  • dimension: numero di colonne nella matrice di tipo sparse.
  • sequenceLength: lunghezza della sequenza, che corrisponde anche al numero di righe nella matrice di tipo sparse.
  • colStarts: la matrice contiene indici per ogni colonna nelle matrici rowIndices e nonZeroValues.
  • rowIndices: matrice che contiene gli indici di riga degli elementi corrispondenti nella matrice nonZeroValues.
  • nonZeroValues: matrice che contiene tutti i valori diversi da zero nella matrice di tipo sparse.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value contenente una sequenza di campioni usando il formato di input sparse CSC. La lunghezza della sequenza è il numero di righe della matrice di tipo sparse. SequenceStartFlag specifica se questa sequenza è una nuova sequenza o una continuazione di una sequenza precedente.

Parametri

  • T: tipo di dati dell'oggetto Value creato. float Attualmente e double sono supportati.
  • dimension: numero di colonne nella matrice di tipo sparse.
  • sequenceLength: lunghezza della sequenza, che corrisponde anche al numero di righe nella matrice di tipo sparse.
  • colStarts: la matrice contiene indici per ogni colonna nelle matrici rowIndices e nonZeroValues.
  • rowIndices: matrice che contiene gli indici di riga degli elementi corrispondenti nella matrice nonZeroValues.
  • nonZeroValues: matrice che contiene tutti i valori diversi da zero nella matrice di tipo sparse.
  • sequenceStartFlag: true indica che si tratta di una nuova sequenza. false indica una continuazione di una sequenza precedente.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

I metodi seguenti creano un oggetto Value da NDArrayView.


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

Crea un nuovo oggetto Value basato su un insieme di NDArrayViews. Ogni sequenza in sequences è una nuova sequenza.

Parametri

  • sampleShape: forma tensore del valore creato.
  • sequences: raccolta di sequenze rappresentate da NDArrayView. Ogni NDArrayView rappresenta una sequenza.
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

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

Crea un nuovo oggetto Value basato su un insieme di NDArrayViews. SequenceStartFlags specifica se una sequenza è una nuova sequenza o una continuazione di una sequenza precedente.

Parametri

  • sampleShape: forma tensore del valore creato.
  • sequences: raccolta di sequenze rappresentate da NDArrayView. Ogni NDArrayView rappresenta una sequenza.
  • sequenceStartFlags: raccolta di valori booleani. Ogni elemento rappresenta se la sequenza corrispondente in sequences è una nuova sequenza (nel caso di true) o una continuazione di una sequenza precedente (nel caso di false).
  • device: nel dispositivo in cui deve essere creato l'oggetto Value.
  • readOnly: il valore è di sola lettura se questo flag è true.

Un oggetto Value contiene le proprietà e i metodi seguenti.


public Value(NDArrayView data)

Costruisce un valore multidimensionale senza maschera.


public Value(NDArrayView data, NDMask mask)

Costruisce un valore multidimensionale con una maschera associata.


public DataType DataType { get; }

Tipo di dati dei dati contenuti nell'oggetto Value.


public DeviceDescriptor Device { get; }

Descrittore del dispositivo in cui risiede Il valore.


public NDShape Shape { get; }

Forma dell'oggetto Value.


public StroageFormat StorageFormat { get; }

Formato di archiviazione del valore.


public bool IsSparse { get; }

Valore booleano che indica se il valore contiene dati in formato di archiviazione sparse.


public bool IsReadOnly { get; }

Valore booleano che indica se il valore è di sola lettura.


public int maskedCount { get; }

Numero di valori mascherati/non validi nel valore.


public void CopyFrom(Value Source)

Copia il contenuto di source nel valore. Le forme dei dati e della Sourcemaschera del valore devono essere identiche ai dati e alla this maschera di Value.

Parametro:

  • Source: oggetto di origine da cui viene copiato il valore.

public Value DeepClone()

Crea un nuovo valore con l'archiviazione appena allocata nello stesso dispositivo del this valore e copia this il contenuto del valore nel valore appena allocato.


public Value DeepClone(bool readOnly)

Crea un nuovo valore con l'archiviazione appena allocata nello stesso dispositivo del this valore e copia this il contenuto del valore nel valore appena allocato.

Parametro:

  • readOnly: il nuovo oggetto Value è di sola lettura se questo flag è true.

public Value Alias(bool readOnly)

Crea un nuovo valore che è un alias di this Valore. Parametro:

  • readOnly: il nuovo oggetto Value è di sola lettura se questo flag è true.

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

Ottiene i dati archiviati nell'oggetto Value come elenco di sequenze con lunghezza variabile in formato denso. Questo metodo restituisce un IList IList<>. Ogni elemento dell'elenco esterno rappresenta una sequenza. Ogni sequenza, rappresentata da IList, contiene un numero variabile di campioni. Ogni esempio è costituito da un numero fisso di elementi con tipo 'T'. Il numero di elementi è determinato dalla forma di outputVariable. Il numero di esempi è il conteggio degli elementi in IList diviso per il numero di elementi dell'esempio.

Parametro:

  • outputVariable: variabile a cui indica Value. La forma della variabile deve corrispondere alla forma del valore.

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

Ottiene i dati archiviati nell'oggetto Value come elenco di sequenze con lunghezza variabile in formato vettore a caldo. Questo metodo restituisce un IList IList<>. Ogni elemento dell'elenco esterno rappresenta una sequenza. Ogni sequenza, rappresentata da IList, contiene un numero variabile di campioni. Ogni esempio è rappresentato da un indice al vettore uno a caldo. Il numero di esempi è il conteggio degli elementi in IList.

Parametro:

  • outputVariable: variabile a cui indica Value. Le dimensioni del vettore one-hot devono corrispondere a quella definita nella variabile.

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

Copiare i dati archiviati nell'oggetto Value nei buffer che rappresentano una sequenza in formato sparse CSC. Se necessario, il buffer della sequenza verrà ridimensionato. Il valore deve avere la stessa forma tensore dell'outputVariable. In caso di restituzione, sequenceLength viene impostato sulla lunghezza della sequenza archiviata nel valore e rowIndicescolStartsnonZeroValues contengono i dati degli indici start di colonna, degli indici di riga e dei valori non zero e numNonZeroValues viene impostato sul numero di valori non zero contenuti in this Valore.

Parametri

  • outputVariable: indica la forma e gli assi dinamici durante la copia dei dati da questo valore ai buffer.
  • sequenceLength: in caso di restituzione, viene impostato sulla lunghezza della sequenza archiviata nel valore.
  • colStarts: in caso di restituzione, contiene indici nel nonZeorValues primo elemento non zero di ogni colonna della matrice.
  • rowIndices: in caso di restituzione, contiene gli indici di riga di ogni elemento non zero della matrice.
  • nonZeroValues: in caso di restituzione, contiene valori di tutti gli elementi non zero della matrice.
  • numNonZeroValues: in caso di restituzione, restituisce il numero di elementi non zero della matrice.

I metodi seguenti saranno deprecati presto. Usare GetDenseData() e GetOneHotData() descritto in precedenza.


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

Copia i dati archiviati nel buffer fornito da sequences. È sequences un elenco di sequenze con lunghezza variabile. Il numero di elementi contenuti nell'elenco esterno di sequences è il numero di sequenze nel valore. Ogni elemento dell'elenco esterno rappresenta una sequenza. Ogni sequenza, rappresentata da List<T>, contiene un numero variabile di campioni. Ogni esempio è costituito da un numero fisso di elementi con tipo di T. Il numero di elementi di un esempio è determinato dalla forma di outputVariable. La forma della variabile deve corrispondere alla forma del valore.

Parametri

  • outputVariable: indica la forma e gli assi dinamici durante la copia dei dati dal valore all'oggetto sequences.
  • sequences: buffer di output usato per archiviare i dati copiati dal valore.

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

Copia i dati archiviati nell'oggetto Value nel buffer fornito da sequences. È sequences un elenco di sequenze con lunghezza variabile. Il numero di elementi contenuti nell'elenco esterno di sequences è il numero di sequenze nel valore. Ogni elemento dell'elenco esterno rappresenta una sequenza. Ogni sequenza, rappresentata da List<uint>, contiene un numero variabile di campioni. Ogni esempio è rappresentato da un indice che punta al valore diverso da zero nel vettore a caldo. Le dimensioni della dimensione del vettore one-hot devono corrispondere a quella definita in outputVariable.

Parametri

  • outputVariable: indica la forma e gli assi dinamici durante la copia dei dati dal valore all'oggetto sequences.
  • sequences: buffer di output usato per archiviare i dati copiati dal valore.

variabile di classe

Indica un'entità simbolica corrispondente agli input e agli output di un Functionoggetto .

Le proprietà di Variable che vengono spesso usate nella valutazione includono:


public string Name { get; }

Nome della variabile.


public NDShape Shape { get; }

Forma della variabile.


public DataType DataTye { get; }

DataType(#enum-datatype) dei dati che rappresenta la variabile.


public VariableKind Kind { get; }

VariabileKind della variabile.


public bool IsSparse { get; }

Valore booleano che indica se la variabile indica i dati di tipo sparse.


public bool IsInput { get; }

Valore booleano che indica se la variabile è un input.


public bool IsOutput { get; }

Valore booleano che indica se la variabile è un output.


public bool IsParameter { get; }

Valore booleano che indica se la variabile è un parametro.


public bool IsConstant { get; }

Valore booleano che indica se la variabile è una costante.


public bool IsPlaceholder { get; }

Valore booleano che indica se la variabile è un segnaposto.


public IList<Axis> DynamicAxes { get; }

Restituisce gli assi dinamici della variabile.


public Function Owner { get; }

Restituisce la funzione di cui la variabile è un output. Restituisce null quando la variabile non è di output VariableKind.

classe DeviceDescriptor

Indica un'istanza del dispositivo di calcolo.

La classe DeviceDescriptor contiene le proprietà e i metodi seguenti:


public int Id { get; }

ID del dispositivo.


public DeviceKind Type { get; }

DeviceKind del dispositivo.


public static DeviceDescriptor CPUDevice { get; }

DeviceDescriptor che rappresenta il dispositivo CPU nel sistema locale.


public static DeviceDescriptor GPUDevice(int deviceId)

Ottiene il dispositivo DeviceDescriptor del dispositivo GPU nel sistema locale con l'ID dispositivo CUDA specificato.

Parametro:

  • deviceId: ID dispositivo CUDA.

public static IList<DeviceDescriptor> AllDevices()

Ottiene un elenco di descrittori di tutti i dispositivi disponibili/supportati.

classe NDShape

Indica una forma rettangolare multidimensionale.


public NDShape()

Costruisce un oggetto NDShape con 0 assi, che indica una scalare.


public NDShape(int numAxes, int dimension)

Costruisce un'istanza di NDShape con la dimensione e la classificazione specificati. Ogni asse ha la stessa dimensione.

Parametri

  • numAxes: numero di assi della forma.
  • dimension: dimensioni della dimensione, applicate a ogni asse.

public NDShape(int numAxes)

Costruisce un'istanza di NDShape con il rango specificato. La dimensione in ogni asse è NDShape.InferredDimension.

Parametro:

  • numAxes: numero di assi della forma.

public static NDShape CreateNDShape(IEnumerable<int> dimensions)

Crea un'istanza di NDShape con dimensioni specificate. Parametro:

  • dimensions: dimensione di ogni asse.

public int Rank { get; }

Classificazione della forma ND.


public IList<int> Dimensions { get; }

Dimensioni della forma ND.


public int TotalSize { get; }

Dimensione totale della forma rettangolare che indica la forma Shape.


public int this[int key] { get; }

Restituisce le dimensioni dell'asse specificato.


public int IsUnknown { get; }

Valore booleano che indica se la forma è la forma sconosciuta speciale.


public int HasInferredDimension { get; }

Valore booleano che indica se la dimensione per uno degli assi della forma è sconosciuta/dedotto (NDShape.InferredDimension).


public NDShape AppendShape(NDShape shape)

Crea e restituisce una nuova forma costruita aggiungendo le dimensioni della "forma" specificata alle this dimensioni della forma.


public NDShape SubShape(int beginAxisId, int endAxisId)

Crea e restituisce una nuova istanza di NDShape con le stesse dimensioni this dell'intervallo dell'asse specificato della forma [beginAxisId, endAxisId).


public NDShape SubShape(int beginAxisId)

Crea e restituisce una nuova istanza di NDShape con le stesse dimensioni dell'intervallo this dell'asse della forma tra l'asse beginAxisId (inclusivo) e l'ultimo asse (inclusivo).

classe NDArrayView

Indica una matrice scrivibile o di sola lettura di valori elementali. Questo tipo indica una visualizzazione e possono essere presenti più visualizzazioni simultanee dei dati sottostanti a un'istanza di NDArrayView. I dati sottostanti vengono archiviati in formato sparse o denso e si trovano in un dispositivo specifico.


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

Costruisce un oggetto NDArrayView con il formato "dataBuffer" specificato come archiviazione di backup nel dispositivo specificato.

Parametri

  • viewShape: forma della creazione di NDArrayView.
  • dataBuffer: i valori di dati contenuti in NDArrayView. L'oggetto 'dataBuffer' deve essere almeno maggiore della dimensione totale dell'oggetto 'viewShape' specificato e deve uscire dall'oggetto NDArrayView creato.
  • device: in cui deve essere creato l'oggetto NDArrayView.
  • readOnly: l'oggetto NDArrayView è di sola lettura se questo flag è 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)

Costruisce un oggetto NDArrayView con l'archiviazione specificata in formato CSC sparse nel dispositivo specificato. I dati sparse specificati devono uscire dall'oggetto NDArrayView creato.

Parametri

  • viewShape: forma della creazione di NDArrayView.
  • colStarts: la matrice contiene indici per ogni colonna nelle matrici rowIndices e nonZeroValues.
  • rowIndices: matrice contenente gli indici di riga degli elementi corrispondenti nella matrice nonZeroValues.
  • nonZeroValues: matrice che contiene tutti i valori non zero nella matrice sparse. I dati sparse specificati devono uscire dall'oggetto NDArrayView creato.
  • device: in cui deve essere creato l'oggetto NDArrayView.
  • readOnly: l'oggetto NDArrayView è di sola lettura se questo flag è true.

public DeviceDescriptor Device

DeviceDescriptor del dispositivo in cui risiede NDArrayView.


public NDShape Shape

Forma della classe NDArrayView.


public DataType DataType

DataType dei dati archiviati da NDArrayView.


public StroageFormat StorageFormat

Formato di archiviazione di NDArrayView.


public bool IsSparse

Valore booleano che indica se NDArrayView contiene dati in formato di archiviazione sparse.


public bool IsReadOnly`

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

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

Crea un nuovo oggetto NDArrayView con archiviazione appena allocata nello stesso dispositivo della this visualizzazione e copia this il contenuto della visualizzazione nella visualizzazione appena allocata.


public NDArrayView DeepClone(bool readOnly)

Crea un nuovo oggetto NDArrayView con archiviazione appena allocata nello stesso dispositivo della this visualizzazione e copia this il contenuto della visualizzazione nella visualizzazione appena allocata.

Parametro:

  • readOnly: il nuovo oggetto NDArrayView è di sola lettura se questo flag è true.

public NDArrayView DeepClone(DeviceDescriptor device, bool readOnly)

Crea un nuovo oggetto NDArrayView con archiviazione appena allocata nel dispositivo specificato e copia this il contenuto della visualizzazione nella visualizzazione appena allocata.

Parametri

  • device: in cui deve essere creato il nuovo oggetto NDArrayView.
  • readOnly: il nuovo oggetto NDArrayView è di sola lettura se questo flag è true.

public NDArrayView Alias(bool readOnly)

Crea un nuovo oggetto NDArrayView che è un alias di this visualizzazione, ad esempio una nuova visualizzazione della stessa forma this rispetto agli stessi dati sottostanti.

Parametro:

  • readOnly: il nuovo oggetto NDArrayView è di sola lettura se questo flag è true.

public NDArrayView AsShape(NDShape newShape)

Crea un nuovo oggetto NDArrayView che è un alias di this visualizzazione, ma con una nuova forma.

Parametro:

  • newShape: forma del nuovo oggetto NDArrayView.

public void CopyFrom(NDArrayView source)

Copia il contenuto dell'oggetto 'source' NDArrayView per this la visualizzazione. Le forme della visualizzazione 'source' e this della visualizzazione devono essere identiche.

Parametro:

  • source: origine NDArrayView il cui contenuto viene copiato nella this visualizzazione.

public void ChangeDevice(DeviceDescriptor device)

Modifica il dispositivo del dispositivo NDArrayView nel dispositivo specificato.

Parametro:

  • device: dispositivo di destinazione dell'oggetto NDArrayView.

classe NDMask

Indica una maschera multidimensionale usata per specificare sezioni specifiche di un oggetto NDArrayView come mascherato/non valido. Questo tipo indica una visualizzazione e possono essere presenti più visualizzazioni simultanee dei dati sottostanti a un'istanza di NDMask.


public NDMask(NDShape shape, DeviceDescriptor device)

Costruire un nuovo oggetto Mask della forma specificata nel dispositivo specificato.

Parametri

  • shape: forma dell'oggetto NDMask.
  • device: dispositivo di destinazione dell'oggetto MDMask.

public int MaskedCount { get; }

Numero di valori mascherati/non validi.


public int Device { get; }

Descrittore del dispositivo in cui risiede la maschera


public int Shape { get; }

Forma della maschera.


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

Mascherare la sezione secondaria specificata come non valida.

Parametri

  • sectionOffset: elenco che specifica le posizioni iniziali della sezione che devono essere mascherate come non valide.
  • sectionShape: la forma descrive la sezione che deve essere mascherata come non valida.

public void MarkSequenceBegin(IEnumerable<int> offset)

Contrassegnare la posizione specificata come inizio della sequenza.

Parametro:

  • sectionOffset: elenco che specifica le posizioni iniziali nella maschera che deve essere mascherata come inizio della sequenza.

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

Contrassegnare la sezione secondaria specificata come inizio della sequenza.

Parametri

  • offset: elenco che specifica le posizioni iniziali della sezione che deve essere mascherata come inizio della sequenza.
  • sectionShape: la forma descrive la sezione che deve essere mascherata come sequenza inizia.

public void Clear()

Cancellare la maschera. Tutti i valori attualmente mascherati come non validi sono impostati su validi.


public NDMask DeepClone(DeviceDescriptor device)

Crea una nuova maschera ND con archiviazione appena allocata nel dispositivo specificato e copia this il contenuto della maschera nella visualizzazione appena allocata.

Parametro:

  • device: dispositivo di destinazione dell'oggetto MDMask.

public NDMask DeepClone()

Crea una nuova maschera NDMask con archiviazione appena allocata nello stesso dispositivo della this maschera e copia this il contenuto della maschera nella maschera appena allocata.


public NDMask Alias()

Crea una nuova maschera NDMask che è un alias di this maschera.


public void CopyFrom(NDMask source)

Copia il contenuto della source maschera NDMask this . Le forme della maschera e this della source maschera devono essere identiche.

Parametro:

  • source: maschera ND di origine il cui contenuto viene copiato nella this visualizzazione.

Asse della classe

Indica un asse di un Variableoggetto . Oltre agli assi statici corrispondenti a ognuno degli assi della forma della variabile, le variabili di tipo "Input" e le variabili "Output" dipendenti da una variabile "Input" dispongono anche di 2 assi dinamici aggiuntivi le cui dimensioni sono note solo quando la variabile è associata ai dati effettivi durante il calcolo (viz. asse di sequenza e asse batch che denono l'asse lungo cui vengono batch più sequenze)

Le proprietà seguenti sono definite nella classe Axis


public string Name { get; }

Nome dell'asse.


public bool IsStatic { get; }

Restituisce un valore booleano che indica se l'asse corrisponde a un asse statico.


public bool IsDynamic { get; }

Restituisce un valore booleano che indica se l'asse corrisponde a un asse dinamico.

classe Utils


public static void SetMaxNumCPUThreads(int numCPUThreads)

Imposta il numero massimo massimo di thread cpu da usare da qualsiasi singola operazione di calcolo.


public static int GetMaxNumCPUThreads()

Restituisce il numero massimo massimo di thread CPU da usare da qualsiasi singola operazione di calcolo.


public static void SetTraceLevel(TraceLevel value)

Specifica il livello di dettaglio della registrazione globale.


public static TraceLevel GetTraceLevel()

Restituisce il livello di dettaglio della registrazione corrente.

variabile enumerazioneKind

Indica il tipo di un oggetto simbolico Variable

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

enum DataType

Indica il tipo di dati simbolico delle entità dati simboliche o dei dati effettivi.

enum DataType { Unknown, Float, Double };

enumerazione DeviceKind

Indica il tipo di un dispositivo di calcolo.

enum DeviceKind { CPU, GPU };

Enum StorageFormat

Indica il formato di archiviazione sottostante a un'istanza di NDArrayView.

enum StorageFormat { Dense, SparseCSC, SparseBlockCol };

enum ParameterCloningMethod

Indica come vengono gestiti i parametri durante la clonazione di una funzione.

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

enumerazione TraceLevel

Indica i livelli di dettaglio della registrazione.

enum TraceLevel { Error, Warning, Info };