CNTK ライブラリ C# API

CNTK ライブラリ マネージ API は C# で実装されており、C# やその他の .NET 言語で使用できます。 アプリケーションでこの API を使用する方法については、「CNTK ライブラリマネージ API を使用する」および「C# でCNTKを使用する」ページを参照してください。 次のセクションでは、CNTK ライブラリ マネージド Eval API のクラスとメソッドについて説明します。

クラス CNTKLib

これは、多くの操作、初期化、およびその他の多くのメソッドを含む静的クラスです。


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

指定した入力オペランドを使用して、CNTK組み込み要素ごとの否定演算のインスタンスを作成します。 パラメーター:

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

Sigmoid 操作。 入力変数を受け取り、それに Sigmoid 操作を適用します。

パラメーター:

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

public static Function Tanh(Variable operand, string name)

Tanh のアクティブ化。 入力変数を受け取り、Tanh 操作を適用します。

パラメーター:

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込み要素ごとの asin 演算のインスタンスを作成します。

パラメーター:

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとのサイン演算のインスタンスを作成します。 パラメーター:

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込み要素ごとの acos 演算のインスタンスを作成します。

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとのコサイン演算のインスタンスを作成します。

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとのコッシュ演算のインスタンスを作成します。

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとの sinh 演算のインスタンスを作成します。

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

整流器線形活性化。 それは入力変数を取り、それに整流器線形活発化操作を適用する。

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとの exp 演算のインスタンスを作成します。

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとのログ操作のインスタンスを作成します。

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとの二乗演算のインスタンスを作成します。

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとの平方根演算のインスタンスを作成します。

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定したテンソル入力オペランド Parameters で、指定した軸に対してCNTK組み込みの softmax 演算のインスタンスを作成します。

  • operand: 操作の入力変数。 これは、別の関数の出力である可能性があります。
  • axis: softmax 演算を適用する軸
  • name: 操作の名前。

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

指定したテンソル入力オペランドにCNTK組み込みのハードマックス演算のインスタンスを作成する

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した 1D または 2D 入力オペランドに対して、CNTK組み込みの入れ替え操作のインスタンスを作成する

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定したテンソル入力オペランドにドロップアウト操作のインスタンスを作成する

  • operand: 入力変数。 これは、別の関数の出力である可能性があります。
  • dropoutRate:
  • seed:
  • name: 操作の名前。

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

指定したテンソル入力オペランドに対する形状変更操作のインスタンスを作成する


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

指定した入力オペランドを使用して、CNTK組み込みのテンソル乗算演算のインスタンスを作成します。


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

左入力オペランドと指定した右オペランドの入れ替えで、CNTK組み込みの行列乗算演算のインスタンスを作成します。 ランク 1 または 2 の左オペランドのみを受け入れます。


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

2 項要素ごとのテンソル加算演算。 パラメーター:

  • leftOperand: プラス演算の左変数。 これは、別の関数の出力である可能性があります。
  • rightOperand: プラス演算の左変数。 これは、別の関数の出力である可能性があります。
  • name: 操作の名前。

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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとのテンソル減算演算のインスタンスを作成します。


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

指定した入力オペランドの指数の合計のログを計算する、CNTK組み込みの要素ごとのテンソル演算のインスタンスを作成します。


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

右オペランドの累乗に引き上げられた leftOperand を計算する、CNTK組み込みの要素ごとのテンソル演算のインスタンスを作成します。


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

指定したテンソル入力オペランドに対して、CNTK組み込みの要素ごとの乗算演算のインスタンスを作成します。


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

指定したテンソル入力オペランドにCNTK組み込みの要素ごとの除算演算のインスタンスを作成します。


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

指定した入力オペランドのコサイン距離を計算するCNTK組み込み操作のインスタンスを作成します。


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

指定した入力オペランドの負のサンプルを使用してコサイン距離を計算するCNTK組み込み演算のインスタンスを作成します。


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

指定した入力オペランドのバイナリクロスエントロピーを計算するCNTK組み込み操作のインスタンスを作成します。


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

CNTK組み込み演算のインスタンスを作成して、指定された入力オペランドの重み付けされたバイナリクロスエントロピーを計算します。


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

指定した入力オペランドに対して softmax を使用してクロス エントロピーを計算する、CNTK組み込み操作のインスタンスを作成します。


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

指定したオペランドの分類予測エラーを計算するためのCNTK組み込み操作のインスタンスを作成します。


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

指定したオペランドの 1 つの動的軸に沿って過去の値を取得するためのCNTK組み込み操作のインスタンスを作成します。


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

指定したオペランドの 1 つの動的軸に沿って将来の値を取得するためのCNTK組み込み操作のインスタンスを作成します。


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

畳み込み


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

指定した出力図形を持つ指定したテンソル入力オペランドに対して、CNTK組み込みの ROI プール操作のインスタンスを作成します。


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

CNTK組み込みのスプライス操作のインスタンスを作成して、指定されたすべてのテンソル オペランドを 1 つの出力テンソルにスプライスします。


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

新しい 'オペランド' 関数の指定したリストの出力を結合する新しい関数インスタンスを作成します。これにより、新しい '関数' の 'Outputs' が、指定した各 'オペランド' 関数の 'Outputs' の和集合になります。 たとえば、分類モデルを作成する場合、通常、CrossEntropy loss 関数と ClassificationError 関数は計算グラフの 2 つのルートを構成します。これは、"結合" して 2 つの出力を持つ単一の関数を作成できます。すなわち。 CrossEntropy Loss と ClassificationError の出力。


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

指定した入力オペランドを使用して、CNTK組み込みの要素ごとの漏れのある線形整流演算のインスタンスを作成します。

class Learner

class 関数

A Function は、0 個以上の入力引数と 1 つ以上の出力を持つシンボリック計算を表します。 関数は、プリミティブまたは複合関数 (入力と出力が結合された他の関数インスタンスで構成されます) である場合があります。 関数は実質的に、他のプリミティブ関数(計算を示す)をノード Variable として、オブジェクト(データを示す)をグラフの端と葉として構成する計算グラフです。

この Function クラスには、評価に関連する次のプロパティとメソッドが含まれています。


public string Name { get; }

関数の名前。


public IList<Variable> Arguments { get; }

パラメーターまたは定数型ではない関数のすべての入力変数の一覧。 これらの変数は、関数の出力を計算するために必要な入力です。


public Variable Output { get; }

関数の 1 つの出力変数 (1 つだけの場合)。 それ以外の場合は、アクセス時にランタイム例外が発生します。


public IList<Variable> Outputs { get; }

関数のすべての出力変数の一覧。


public Function RootFunction { get; }

関数の基になる関数のグラフのルートにあるプリミティブ関数を返します。 関数自体がプリミティブ関数の場合、(this-RootFunction>() == this)。


public string OpName { get; }

関数が示す操作の名前。


public bool IsComposite { get; }

関数が複合関数であるかどうかを示すブール値。


public bool IsPrimitive { get; }

関数がプリミティブ関数であるかどうかを示すブール値。


public bool IsBlock { get; }

関数がブロック関数であるかどうかを示すブール値。


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)

指定した入力を使用して関数を評価します。 ディクショナリで指定された各入力変数に指定された に基づいて、関数の出力を inputs 計算します。 出力は、ディクショナリの出力変数に対応する出力値に outputs 格納されます。

パラメーター:

  • inputs: 関数の入力変数とその値。
  • outputs: 各出力変数の出力値。 呼び出し元は、出力を格納するための Value オブジェクトを指定するか、メソッドが出力結果にストレージを割り当てる場合に渡すことができます null 。 どちらの場合も、返された値オブジェクトには、関数の対応する出力の結果が含まれます。 Value が null 指定され、パラメーター createPersistentOutputValues が指定されていない場合、またはパラメーターが false設定されている場合、メソッドによって返される Value オブジェクトは一時的であり、次の Forward/Backward 呼び出しまで有効であることが保証されます。 後でアクセスする必要がある場合は、一時的な Value オブジェクトをtrue指定するか、明示的にDeepClone指定createPersistentOutputValuesする必要があります。
  • computeDevice: 計算が実行されるデバイス。 これは、モデルが読み込まれるデバイスに合わせる必要があります。
  • createPersistentOutputValues: 出力で値が null 指定された場合にのみ関連します。 に設定 trueされている場合、メソッドは永続的な Value オブジェクトを作成します。それ以外の場合、Value オブジェクトは一時的であり、次の Forward/Backward 呼び出しまで有効です。

public Function Clone(ParameterCloningMethod parameterCloneMethod = ParameterCloningMethod.Share)

Clones this 関数。

パラメーター:

  • parameterCloneMethod: 関数のパラメーターの複製方法を指定します。 ParameterCloningMethod.Share - 複製される関数と新しい複製の間でパラメーターを共有します。 複製された関数を同時評価に使用する場合は、この値を使用する必要があります。 ParameterCloningMethod.Clone - 新しい学習可能なパラメーターが作成され、複製される関数の対応するパラメーターの現在の値で初期化されます。 ParameterCloningMethod.Freeze - パラメーターが複製され、変更不可になります。つまり、新しいクローン内の定数 (固定機能抽出器として使用する場合など)。 ParameterCloningMethod は ここで定義されています

public Function FindByName(string name, bool nestedSearchInsideBlockFunction)

関数の基になる関数グラフで、指定した名前の関数を検索します。 同じ名前の複数の関数が存在する場合は、例外がスローされます。 nestedSearchInsideBlockFunction が true の場合は、ブロック関数内のすべての関数も検索します。

パラメーター:

  • name: 検索する名前。
  • nestedSearchInsideBlockFunction: true の場合、ブロック関数内のすべての関数も調べられます。

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

関数の基になる関数グラフで、指定した名前の関数の一覧を検索します。 nestedSearchInsideBlockFunction が true の場合は、ブロック関数内のすべての関数も検索します。

パラメーター:

  • name: 検索する名前。
  • nestedSearchInsideBlockFunction: true の場合、ブロック関数内のすべての関数も調べられます。

public static Function Load(string modelFile, DeviceDescriptor computeDevice)

モデル ファイルから関数を読み込みます。

パラメーター:

  • modelFile: モデル ファイルへのパス。
  • computeDevice: 関数が読み込まれるデバイス。

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

モデルを表すメモリ バッファーから関数を読み込みます。

パラメーター:

  • modelBuffer: バイト配列には、シリアル化されたモデルの内容が含まれています。
  • computeDevice: 関数が読み込まれるデバイス。

public static Function Combine(IEnumerable<Variable> operands)

Functions の指定したリスト 'オペランド' の出力を結合する新しい Function インスタンスを作成します。 新しい '関数' の 'Outputs' は、指定された各 'オペランド' 関数の 'Outputs' の和集合です。 たとえば、分類モデルを作成する場合、通常、CrossEntropy loss 関数と ClassificationError 関数は計算グラフのルートを構成します。これは、"結合" d で 2 つの出力を持つ単一の関数を作成できます。すなわち。 CrossEntropy Loss と ClassificationError の出力。

パラメーター:

  • operands: 新しい関数の出力に含める必要がある関数または変数の一覧。

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

指定した rootFunction をルートとして持つ複合関数を作成します。 複合は、指定された rootFunction の基になる Functions のグラフ全体をカプセル化する上位レベルの関数を表します。

パラメーター:

  • rootFunction: 作成する複合関数のルート。
  • name: 作成する複合関数の名前。

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

指定したオペランドのエイリアスに過ぎない新しい関数インスタンスを作成します。

パラメーター:

  • operand: エイリアス関数が作成される関数または変数。
  • name: 作成する新しい関数の名前。

class Value

A Value は、省略可能なマスクを持つ多次元配列であり、計算に送信または計算から生成される実際のデータです。


次のメソッドは、指定したテンソル シェイプを持つ密入力を使用して Value オブジェクトを作成します。


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

サンプルのバッチを含む新しい Value オブジェクトを作成します。 バッチ内のサンプルの数は、要素の数をサイズshapebatch除算したものです (剰余が 0 でない場合は実行時エラーが発生します)。 作成された Value オブジェクトには、指定されたデータ batchのコピーが含まれています。

パラメーター:

  • sampleShape: Value オブジェクトのテンソルシェイプ。
  • batch: Value オブジェクトに格納されるデータ。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、Value オブジェクトは読み取り専用です true

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

一連のサンプルを含む新しい Value オブジェクトを作成します。 作成された Value オブジェクトには、指定されたデータ sequenceのコピーが含まれています。 シーケンスの長さは、要素の数を (剰余が 0 でない場合に実行時エラーが発生します) のshapeサイズでsequence除算したものです。 作成されたシーケンスは新しいシーケンスです。

パラメーター:

  • sampleShape: Value のテンソルシェイプ。
  • sequence: 値に含めるデータ。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

一連のサンプルを含む新しい Value オブジェクトを作成します。 作成された Value オブジェクトには、指定した sequence データのコピーが含まれています。 sequenceStartFlag は、このシーケンスが、このメソッドの前の呼び出しからの前のシーケンスの新しいシーケンスか継続かを指定します。 シーケンスの長さは、要素の数を (剰余が 0 でない場合に実行時エラーが発生します) のshapeサイズでsequence除算したものです。

パラメーター:

  • sampleShape: Value のテンソルシェイプ。
  • sequence: 値に含めるデータ。
  • sequenceStartFlag: true 新しいシーケンスであることを示します。 false は、前のシーケンスの継続を意味します。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

可変長シーケンスのバッチを含む新しい Value オブジェクトを作成します。 作成された Value オブジェクトには、指定されたデータ batchOfSequencesのコピーが含まれています。 バッチ内のシーケンスの数は、次の batchOfSequencesサイズです。 各シーケンスの長さは、対応するシーケンス batchOfSequences 内の要素の数をサイズ shape で除算したものです (剰余が 0 でない場合は実行時エラーが発生します)。 各シーケンスは batchOfSequences 新しいシーケンスです。

パラメーター:

  • sampleShape: Value のテンソルシェイプ。
  • batchOfSequences: 値に格納するデータ。 外側 IEnumerable は可変長のシーケンスのコレクションを表し、内側 IEnumerable は個々のシーケンスを表します。
  • device: 値を作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

可変長シーケンスのバッチを含む新しい Value オブジェクトを作成します。 作成された Value オブジェクトには、指定されたデータ batchOfSequencesのコピーが含まれています。 バッチ内のシーケンスの数は、次の batchOfSequencesサイズです。 各シーケンスの長さは、対応するシーケンス batchOfSequences 内の要素の数をサイズ shape で除算したものです (剰余が 0 でない場合は実行時エラーが発生します)。

パラメーター:

  • sampleShape: Value のテンソルシェイプ。
  • batchOfSequences: 値に格納するデータ。 外側 IEnumerable は可変長のシーケンスのコレクションを表し、内側 IEnumerable は個々のシーケンスを表します。
  • sequenceStartFlags: ブール値のコレクション。 各要素は、対応するシーケンスが新しいシーケンス batchOfSequences (の場合) であるか、前の trueシーケンスの継続 (の場合 false) であるかを表します。
  • device: 値を作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

次のメソッドは、ワンホット ベクター入力を使用して Value オブジェクトを作成します。


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

サンプルのバッチを含む新しい Value オブジェクトを作成します。 各サンプルは、要素の 1 ホット ベクター dimension 内の 0 以外の値を指すインデックス値で表されます。 バッチ内のサンプルの数は、次の要素の数です batch

パラメーター:

  • T: 作成された Value オブジェクトのデータ型。 現在、 float サポート double されています。
  • dimension: 1 ホット ベクトルの次元のサイズ。
  • batch: サンプルのバッチを表すインデックスのコレクション。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

一連のサンプルを含む新しい Value オブジェクトを作成します。 各サンプルは、要素の 1 ホット ベクター dimension 内の 0 以外の値を指すインデックス値で表されます。 シーケンスの長さは、次の要素の数です sequence。 作成されたシーケンスは新しいシーケンスです。

パラメーター:

  • T: 作成された Value オブジェクトのデータ型。 現在、 float サポート double されています。
  • dimension: 1 ホット ベクトルの次元のサイズ。
  • sequence: サンプルのシーケンスを表すインデックスのコレクション。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

一連のサンプルを含む新しい Value オブジェクトを作成します。 各サンプルは、要素の 1 ホット ベクター dimension 内の 0 以外の値を指すインデックス値で表されます。 sequenceStartFlag は、このシーケンスが、このメソッドの前の呼び出しからの前のシーケンスの新しいシーケンスか継続かを指定します。 シーケンスの長さは、次の要素の数です sequence

パラメーター:

  • T: 作成された Value オブジェクトのデータ型。 現在、 float サポート double されています。
  • dimension: 1 ホット ベクトルの次元のサイズ。
  • sequence: サンプルのシーケンスを表すインデックスのコレクション。
  • sequenceStartFlag: true 新しいシーケンスであることを示します。 false は、前のシーケンスの継続を意味します。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

可変長シーケンスのバッチを含む新しい Value オブジェクトを作成します。 各サンプルは、要素の 1 ホット ベクター dimension 内の 0 以外の値を指すインデックス値で表されます。 シーケンスの数は、外側のコレクション内の要素の batchOfSequences数です。 各シーケンスの長さは、コレクションリスト内の対応するシーケンスの要素の batchOfSequences数です。 各シーケンスは batchOfSequences 新しいシーケンスです。

パラメーター:

  • T: 作成された Value オブジェクトのデータ型。 現在、 float サポート double されています。
  • dimension: 1 ホット ベクトルの次元のサイズ。
  • batchOfSequences: サンプルのシーケンスを表すインデックスのコレクション。 外側 IEnumerable は可変長のシーケンスのコレクションを表し、内側 IEnumerable は個々のシーケンスを表します。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

可変長シーケンスのバッチを含む新しい Value オブジェクトを作成します。 各サンプルは、要素の 1 ホット ベクター dimension 内の 0 以外の値を指すインデックス値で表されます。 シーケンスの数は、外側のコレクション内の要素の batchOfSequences数です。 各シーケンスの長さは、内部コレクション内の対応するシーケンスの要素の batchOfSequences数です。

パラメーター:

  • T: 作成された Value オブジェクトのデータ型。 現在、 float サポート double されています。
  • dimension: ワンホット ベクトルの次元のサイズ。
  • batchOfSequences: サンプルのシーケンスを表すインデックスのコレクション。 外側 IEnumerable は可変長のシーケンスのコレクションを表し、内部 IEnumerable は個々のシーケンスを表します。
  • sequenceStartFlags: ブール値のコレクション。 各要素は、対応するシーケンスが新しいシーケンス batchOfSequences (の場合) であるか、前の trueシーケンスの継続 (の場合 false) であるかを表します。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

次のメソッドは、スパース入力を使用して Value オブジェクトを作成します。

現在、圧縮スパース列形式 (CSC) がサポートされています。 CSC 形式では、行列が列メジャー形式で格納され、列インデックスを含む配列が圧縮されます。 CSC 形式のマトリックスは、次のパラメーターで表されます。

  • nonZeroValues: 行列のすべての 0 以外の値を列メジャー形式で保持するデータ配列。
  • rowIndices: 配列内の対応する要素の行インデックスを含む配列 nonZeroValues
  • colStarts: インデックスを配列に保持する配列rowIndicesnonZeroValues

CSC形式の詳細な説明 はこちらをご覧ください


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

CSC スパース入力形式を使用して、一連のサンプルを含む新しい Value オブジェクトを作成します。 シーケンスの長さは、スパース マトリックスの行数です。 作成されたシーケンスは新しいシーケンスです。

パラメーター:

  • T: 作成された Value オブジェクトのデータ型。 現在、 float サポート double されています。
  • sampleShape: Value のテンソル図形。 スパース入力の場合、テンソル図形の先行寸法はテンソル図形の合計サイズと同じである必要があります。
  • sequenceLength: シーケンスの長さ。スパース マトリックス内の行数でもあります。
  • colStarts: 配列は、各列のインデックスを配列 rowIndices に保持します nonZeroValues
  • rowIndices: 配列内の対応する要素の行インデックスを含む配列 nonZeroValues
  • nonZeroValues: スパース マトリックス内のすべての 0 以外の値を保持する配列。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

CSC スパース入力形式を使用して、一連のサンプルを含む新しい Value オブジェクトを作成します。 シーケンスの長さは、スパース マトリックスの行数です。 sequenceStartFlag は、このシーケンスが、このメソッドの前の呼び出しからの前のシーケンスの新しいシーケンスか継続かを指定します。

パラメーター:

  • T: 作成された Value オブジェクトのデータ型。 現在、 float サポート double されています。
  • sampleShape: Value のテンソル図形。 スパース入力の場合、テンソル図形の先行寸法はテンソル図形の合計サイズと同じである必要があります。
  • sequenceLength: シーケンスの長さ。スパース マトリックス内の行数でもあります。
  • colStarts: 配列は、各列のインデックスを配列 rowIndices に保持します nonZeroValues
  • rowIndices: 配列内の対応する要素の行インデックスを含む配列 nonZeroValues
  • nonZeroValues: スパース マトリックス内のすべての 0 以外の値を保持する配列。
  • sequenceStartFlag: true 新しいシーケンスであることを示します。 false は、前のシーケンスの継続を意味します。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

CSC スパース入力形式を使用して、一連のサンプルを含む新しい Value オブジェクトを作成します。 シーケンスの長さは、スパース マトリックスの行数です。 作成されたシーケンスは新しいシーケンスです。

パラメーター:

  • T: 作成された Value オブジェクトのデータ型。 現在、 float サポート double されています。
  • dimension: スパース マトリックス内の列の数。
  • sequenceLength: シーケンスの長さ。スパース マトリックス内の行数でもあります。
  • colStarts: 配列は、各列のインデックスを配列 rowIndices に保持します nonZeroValues
  • rowIndices: 配列内の対応する要素の行インデックスを含む配列 nonZeroValues
  • nonZeroValues: スパース マトリックス内のすべての 0 以外の値を保持する配列。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

CSC スパース入力形式を使用して、一連のサンプルを含む新しい Value オブジェクトを作成します。 シーケンスの長さは、スパース マトリックスの行数です。 sequenceStartFlag は、このシーケンスが前のシーケンスの新しいシーケンスか継続かを指定します。

パラメーター:

  • T: 作成された Value オブジェクトのデータ型。 現在、 float サポート double されています。
  • dimension: スパース マトリックス内の列の数。
  • sequenceLength: シーケンスの長さ。スパース マトリックス内の行数でもあります。
  • colStarts: 配列は、各列のインデックスを配列 rowIndices に保持します nonZeroValues
  • rowIndices: 配列内の対応する要素の行インデックスを含む配列 nonZeroValues
  • nonZeroValues: スパース マトリックス内のすべての 0 以外の値を保持する配列。
  • sequenceStartFlag: true 新しいシーケンスであることを示します。 false は、前のシーケンスの継続を意味します。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

次のメソッドは、NDArrayView から Value オブジェクトを作成します。


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

NDArrayViews のコレクションに基づいて新しい Value オブジェクトを作成します。 各シーケンスは sequences 新しいシーケンスです。

パラメーター:

  • sampleShape: 作成される値のテンソル図形。
  • sequences: NDArrayView で表されるシーケンスのコレクション。 各 NDArrayView はシーケンスを表します。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

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

NDArrayViews のコレクションに基づいて新しい Value オブジェクトを作成します。 sequenceStartFlags は、シーケンスが新しいシーケンスであるか、前のシーケンスの継続であるかを指定します。

パラメーター:

  • sampleShape: 作成される値のテンソル図形。
  • sequences: NDArrayView で表されるシーケンスのコレクション。 各 NDArrayView はシーケンスを表します。
  • sequenceStartFlags: ブール値のコレクション。 各要素は、対応するシーケンスが新しいシーケンス sequences (の場合) であるか、前の trueシーケンスの継続 (の場合 false) であるかを表します。
  • device: Value オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、値は読み取り専用です true

Value オブジェクトには、次のプロパティとメソッドが含まれています。


public Value(NDArrayView data)

マスクなしの多次元値を構築します。


public Value(NDArrayView data, NDMask mask)

マスクが関連付けられた多次元値を構築します。


public DataType DataType { get; }

Value オブジェクトに含まれるデータの DataType


public DeviceDescriptor Device { get; }

値が存在するデバイスの記述子。


public NDShape Shape { get; }

値の図形。


public StroageFormat StorageFormat { get; }

Value のストレージ形式。


public bool IsSparse { get; }

Value にスパース ストレージ形式のデータが含まれているかどうかを示すブール値。


public bool IsReadOnly { get; }

値が読み取り専用かどうかを示すブール値。


public int maskedCount { get; }

値のマスクされた値または無効な値の数。


public void CopyFrom(Value Source)

値の内容 source をコピーします。 's data and mask' の図形 Sourceは、Value のデータとマスクと同じである this 必要があります。

パラメーター:

  • Source: Value のコピー元のソース オブジェクト。

public Value DeepClone()

Value と同じデバイス this に新しく割り当てられたストレージを持つ新しい値を作成し、値の内容を新しく割り当てられた値にコピー this します。


public Value DeepClone(bool readOnly)

Value と同じデバイス this に新しく割り当てられたストレージを持つ新しい値を作成し、値の内容を新しく割り当てられた値にコピー this します。

パラメーター:

  • readOnly: このフラグが > の場合、新しい Value オブジェクトは読み取り専用です true

public Value Alias(bool readOnly)

Value の別名 this である新しい値を作成します。 パラメーター:

  • readOnly: このフラグが > の場合、新しい Value オブジェクトは読み取り専用です true

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

Value オブジェクトに格納されているデータを、高密度形式の可変長シーケンスの一覧として取得します。 このメソッドは IList IList<を返します>。 外側のリストの各要素は、シーケンスを表します。 IList で表される各シーケンスには、可変数のサンプルが含まれています。 各サンプルは、'T' 型の固定数の要素で構成されます。 要素の数は、outputVariable の形状によって決まります。 サンプルの数は、IList 内の要素の数をサンプルの要素数で割った値です。

パラメーター:

  • outputVariable: Value が示す変数。 変数の図形は、値の図形と一致する必要があります。

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

Value オブジェクトに格納されているデータを、1 ホット ベクター形式の可変長シーケンスの一覧として取得します。 このメソッドは IList IList<を返します>。 外側のリストの各要素は、シーケンスを表します。 IList で表される各シーケンスには、可変数のサンプルが含まれています。 各サンプルは、1 ホット ベクターへのインデックスによって表されます。 サンプルの数は、IList 内の要素の数です。

パラメーター:

  • outputVariable: Value が示す変数。 1 ホット ベクターのサイズは、変数で定義されているサイズと一致する必要があります。

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

Value オブジェクトに格納されているデータを、CSC スパース形式のシーケンスを表すバッファーにコピーします。 シーケンス バッファーは、必要に応じてサイズ変更されます。 Value は outputVariable と同じテンソルシェイプを持つ必要があります。 返されるときに、 sequenceLength Value に格納されているシーケンスの長さに設定されcolStartsnonZeroValuesrowIndices、列の開始インデックス、行インデックス、および 0 以外の値のデータが格納されnumNonZeroValues、Value に含まれる 0 以外の値の数にthis設定されます。

パラメーター:

  • outputVariable: この値からバッファーにデータをコピーするときの図形軸と動的軸を示します。
  • sequenceLength: 返されるときに、値に格納されているシーケンスの長さに設定されます。
  • colStarts: 戻り値には、行列の各列の最初のゼロ以外の要素のインデックス nonZeorValues が含まれます。
  • rowIndices: 戻り値には、行列の 0 以外の各要素の行インデックスが含まれます。
  • nonZeroValues: 戻り値には、行列のすべての 0 以外の要素の値が含まれます。
  • numNonZeroValues: 戻り値に対して、行列の 0 以外の要素の数を返します。

次のメソッドは間もなく非推奨になります。 上記の GetDenseData() と GetOneHotData() を使用してください。


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

Value に格納されているデータを、指定されたバッファー sequencesにコピーします。 これは sequences 、可変長のシーケンスの一覧です。 外側のリストに含まれる項目の sequences 数は、値のシーケンスの数です。 外側のリストの各要素は、シーケンスを表します。 で表される List<T>各シーケンスには、可変数のサンプルが含まれています。 各サンプルは、型 Tが . サンプルの要素の数は、次の図形 outputVariableによって決まります。 変数の図形は、値の図形と一致する必要があります。

パラメーター:

  • outputVariable: [値] から [値] にデータをコピーするときの図形軸と動的軸を表します sequences
  • sequences: Value からコピーされたデータを格納するために使用される出力バッファー。

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

Value オブジェクトに格納されているデータを、指定されたバッファー sequencesにコピーします。 これは sequences 、可変長のシーケンスの一覧です。 外側のリストに含まれる項目の sequences 数は、値のシーケンスの数です。 外側のリストの各要素は、シーケンスを表します。 で表される List<uint>各シーケンスには、可変数のサンプルが含まれています。 各サンプルは、1 ホット ベクター内の 0 以外の値を指すインデックスによって表されます。 1 ホット ベクターのディメンション サイズは、次で outputVariable定義したサイズと一致する必要があります。

パラメーター:

  • outputVariable: [値] から [値] にデータをコピーするときの図形軸と動的軸を表します sequences
  • sequences: Value からコピーされたデータを格納するために使用される出力バッファー。

クラス変数

の入力と出力に対応するシンボリック エンティティを Function示します。

評価でよく使用されるプロパティ Variable は次のとおりです。


public string Name { get; }

変数の名前。


public NDShape Shape { get; }

変数の図形。


public DataType DataTye { get; }

変数が表すデータの DataType(#enum-datatype)。


public VariableKind Kind { get; }

変数の VariableKind


public bool IsSparse { get; }

変数がスパース データを表すかどうかを示すブール値。


public bool IsInput { get; }

変数が Input であるかどうかを示すブール値。


public bool IsOutput { get; }

変数が出力であるかどうかを示すブール値。


public bool IsParameter { get; }

変数がパラメーターであるかどうかを示すブール値。


public bool IsConstant { get; }

変数が定数かどうかを示すブール値。


public bool IsPlaceholder { get; }

変数がプレースホルダーであるかどうかを示すブール値。


public IList<Axis> DynamicAxes { get; }

変数の動的軸を返します。


public Function Owner { get; }

変数が出力される関数を返します。 null変数が VariableKind 出力でない場合に返します。

class DeviceDescriptor

計算デバイス インスタンスを示します。

このクラス DeviceDescriptor には、次のプロパティとメソッドが含まれています。


public int Id { get; }

デバイスの ID。


public DeviceKind Type { get; }

デバイスの DeviceKind


public static DeviceDescriptor CPUDevice { get; }

ローカル システム上の CPU デバイスを表す DeviceDescriptor。


public static DeviceDescriptor GPUDevice(int deviceId)

指定した CUDA デバイス ID を持つローカル システム上の GPU デバイスの DeviceDescriptor を取得します。

パラメーター:

  • deviceId: CUDA デバイス ID。

public static IList<DeviceDescriptor> AllDevices()

使用可能/サポートされているすべてのデバイスの記述子の一覧を取得します。

クラス NDShape

多次元の四角形を表します。


public NDShape()

スカラーを表す 0 軸を持つ NDShape を構築します。


public NDShape(int numAxes, int dimension)

指定したランクとディメンション サイズを持つ NDShape インスタンスを構築します。 各軸の次元は同じです。

パラメーター:

  • numAxes: 図形の軸の数。
  • dimension: 各軸に適用される寸法サイズ。

public NDShape(int numAxes)

指定したランクを持つ NDShape インスタンスを構築します。 各軸の次元は NDShape.InferredDimension.

パラメーター:

  • numAxes: 図形の軸の数。

public static NDShape CreateNDShape(IEnumerable<int> dimensions)

指定したディメンションを持つ NDShape インスタンスを作成します。 パラメーター:

  • dimensions: 各軸の寸法サイズ。

public int Rank { get; }

NDShape のランク。


public IList<int> Dimensions { get; }

NDShape のディメンション。


public int TotalSize { get; }

図形が示す四角形の合計サイズ。


public int this[int key] { get; }

指定した軸の寸法サイズを返します。


public int IsUnknown { get; }

図形が特殊な Unknown 図形であるかどうかを示すブール値。


public int HasInferredDimension { get; }

図形のいずれかの軸の寸法サイズが不明/推論されているかどうかを示すブール値 (NDShape.InferredDimension)。


public NDShape AppendShape(NDShape shape)

指定した 'shape' の寸法を図形の寸法に追加することによって構築された新しい図形を作成して this 返します。


public NDShape SubShape(int beginAxisId, int endAxisId)

図形の指定した軸範囲 [beginAxisId, endAxisId] と同じ寸法 this の新しい NDShape インスタンスを作成して返します。


public NDShape SubShape(int beginAxisId)

beginAxisId 軸 (両端を含む) と最後の軸 (両端を含む) の間の図形の軸範囲と同じ寸法 this の新しい NDShape インスタンスを作成して返します。

class NDArrayView

要素値の多次元書き込み可能または読み取り専用配列を表します。 この型はビューを表し、NDArrayView インスタンスの基になるデータの複数の同時ビューが存在する可能性があります。 基になるデータは、スパースまたは高密度の形式で格納され、特定のデバイスに配置されます。


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

指定した 'dataBuffer' を指定したデバイスのバッキング ストレージとして高密度形式で NDArrayView を構築します。

パラメーター:

  • viewShape: 作成されている NDArrayView の図形。
  • dataBuffer: NDArrayView に含まれるデータ値。 'dataBuffer' は、少なくとも指定した 'viewShape' の合計サイズと同じ大きさである必要があり、作成された NDArrayView オブジェクトよりも長くなければなりません。
  • device: NDArrayView オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、NDArrayView オブジェクトは読み取り専用です 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)

指定したデバイス上のスパース CSC 形式で指定されたストレージを使用して NDArrayView を構築します。 指定したスパース データは、作成された NDArrayView オブジェクトよりも長くなければなりません。

パラメーター:

  • viewShape: 作成されている NDArrayView の図形。
  • colStarts: 配列は、各列のインデックスを配列 rowIndices に保持します nonZeroValues
  • rowIndices: 配列内の対応する要素の行インデックスを含む配列 nonZeroValues
  • nonZeroValues: スパース マトリックス内のすべての 0 以外の値を保持する配列。 指定したスパース データは、作成された NDArrayView オブジェクトよりも長くなければなりません。
  • device: NDArrayView オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、NDArrayView オブジェクトは読み取り専用です true

public DeviceDescriptor Device

NDArrayView が存在するデバイスの DeviceDescriptor。


public NDShape Shape

NDArrayView の図形。


public DataType DataType

NDArrayView が格納するデータの DataType。


public StroageFormat StorageFormat

NDArrayView のストレージ形式。


public bool IsSparse

NDArrayView にスパース ストレージ形式のデータが含まれているかどうかを示すブール値。


public bool IsReadOnly`

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

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

ビューと同じデバイス this に新しく割り当てられたストレージを持つ新しい NDArrayView を作成し、ビューの内容を新しく割り当てられたビューにコピー this します。


public NDArrayView DeepClone(bool readOnly)

ビューと同じデバイス this に新しく割り当てられたストレージを持つ新しい NDArrayView を作成し、ビューの内容を新しく割り当てられたビューにコピー this します。

パラメーター:

  • readOnly: このフラグが > の場合、新しい NDArrayView オブジェクトは読み取り専用です true

public NDArrayView DeepClone(DeviceDescriptor device, bool readOnly)

指定したデバイスに新しく割り当てられたストレージを持つ新しい NDArrayView を作成し、ビューの内容を新しく割り当てられたビューにコピー this します。

パラメーター:

  • device: 新しい NDArrayView オブジェクトを作成するデバイス。
  • readOnly: このフラグが > の場合、新しい NDArrayView オブジェクトは読み取り専用です true

public NDArrayView Alias(bool readOnly)

ビューの this 別名である新しい NDArrayView を作成します。つまり、同じ基になるデータに対して同じ図形 this の新しいビューを作成します。

パラメーター:

  • readOnly: このフラグが > の場合、新しい NDArrayView オブジェクトは読み取り専用です true

public NDArrayView AsShape(NDShape newShape)

ビューのエイリアス this ですが、新しい図形を持つ新しい NDArrayView を作成します。

パラメーター:

  • newShape: 新しい NDArrayView オブジェクトの図形。

public void CopyFrom(NDArrayView source)

表示する 'source' NDArrayView の内容を this コピーします。 "ソース" ビューと this ビューの図形は同じである必要があります。

パラメーター:

  • source: コンテンツがビューにコピーされる this ソース NDArrayView。

public void ChangeDevice(DeviceDescriptor device)

NDArrayView のデバイスを指定したデバイスに変更します。

パラメーター:

  • device: NDArrayView オブジェクトのターゲット デバイス。

クラス NDMask

NDArrayView オブジェクトの特定のセクションをマスクまたは無効として指定するために使用される多次元マスクを表します。 この型はビューを表し、NDMask インスタンスの基になるデータの複数の同時ビューが存在する可能性があります。


public NDMask(NDShape shape, DeviceDescriptor device)

指定したデバイスで、指定した図形の新しい Mask オブジェクトを作成します。

パラメーター:

  • shape: NDMask オブジェクトの図形。
  • device: MDMask オブジェクトのターゲット デバイス。

public int MaskedCount { get; }

マスクされた値または無効な値の数。


public int Device { get; }

マスクが存在するデバイスの記述子


public int Shape { get; }

マスクの形状。


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

指定したサブセクションを無効としてマスクします。

パラメーター:

  • sectionOffset: 無効としてマスクする必要があるセクションの開始位置を指定するリスト。
  • sectionShape: 図形は、無効としてマスクする必要があるセクションを表します。

public void MarkSequenceBegin(IEnumerable<int> offset)

指定した位置をシーケンス開始としてマークします。

パラメーター:

  • sectionOffset: シーケンス開始としてマスクするマスク内の開始位置を指定するリスト。

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

指定したサブセクションをシーケンス開始としてマークします。

パラメーター:

  • offset: シーケンス開始としてマスクするセクションの開始位置を指定するリスト。
  • sectionShape: 図形は、シーケンスの開始としてマスクする必要があるセクションを表します。

public void Clear()

マスクをクリアします。 現在無効としてマスクされているすべての値は、有効に設定されます。


public NDMask DeepClone(DeviceDescriptor device)

指定したデバイスに新しく割り当てられたストレージを持つ新しい NDMask を作成し、マスクの内容を新しく割り当てられたビューにコピー this します。

パラメーター:

  • device: MDMask オブジェクトのターゲット デバイス。

public NDMask DeepClone()

マスクと同じデバイス this に新しく割り当てられたストレージを持つ新しい NDMask を作成し、マスクの内容を新しく割り当てられたマスクにコピー this します。


public NDMask Alias()

マスクのエイリアス this である新しい NDMask を作成します。


public void CopyFrom(NDMask source)

マスクする NDMask の source 内容を this コピーします。 マスクとthisマスクのsource形状は同じである必要があります。

パラメーター:

  • source: コンテンツがビューにコピーされる this ソース NDMask。

クラス Axis

の軸を Variable示します。 変数の図形の各軸に対応する静的軸に加えて、種類 'Input' 変数および 'Input' 変数に依存する任意の '出力' 変数には、計算中に変数が実際のデータにバインドされている場合にのみディメンションが認識される 2 つの追加の動的軸があります (複数のシーケンスがバッチされる軸を示すシーケンス軸とバッチ軸)。

クラスでは、次のプロパティが定義されています Axis


public string Name { get; }

軸の名前。


public bool IsStatic { get; }

軸が静的軸に対応するかどうかを示すブール値を返します。


public bool IsDynamic { get; }

軸が動的軸に対応するかどうかを示すブール値を返します。

class Utils


public static void SetMaxNumCPUThreads(int numCPUThreads)

個々のコンピューティング操作で使用される CPU スレッドのプロセス全体の最大数を設定します。


public static int GetMaxNumCPUThreads()

個々のコンピューティング操作で使用される CPU スレッドのプロセス全体の最大数を返します。


public static void SetTraceLevel(TraceLevel value)

グローバル ログの詳細レベルを指定します。


public static TraceLevel GetTraceLevel()

現在のログ詳細レベルを返します。

enum VariableKind

シンボリック Variable オブジェクトの種類を示します

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

enum DataType

シンボリック データ エンティティまたは実際のデータのデータ型を表します。

enum DataType { Unknown, Float, Double };

enum DeviceKind

計算デバイスの種類を示します。

enum DeviceKind { CPU, GPU };

enum StorageFormat

NDArrayView のインスタンスの基になるストレージの形式を示します。

enum StorageFormat { Dense, SparseCSC, SparseBlockCol };

enum ParameterCloningMethod

関数の複製時にパラメーターがどのように処理されるかを示します。

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

ログの詳細レベルを示します。

enum TraceLevel { Error, Warning, Info };