다음을 통해 공유


CNTK 라이브러리 C# API

CNTK 라이브러리 관리 API는 C#으로 구현되며 C# 및 기타 .NET 언어에서 사용할 수 있습니다. CNTK 라이브러리 관리 API를 사용하고C#에서 CNTK 사용하는 페이지에는 애플리케이션에서 이 API를 사용하는 방법이 표시됩니다. 다음 섹션에서는 CNTK 라이브러리 관리 Eval API의 클래스 및 메서드에 대해 설명합니다.

클래스 CNTKLib

정적 클래스에는 많은 작업, 초기화 및 많은 기타 메서드가 포함됩니다.


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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소 부정 연산의 인스턴스를 만듭니다. 매개 변수

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

시그모이드 연산입니다. 입력 변수를 사용하고 Sigmoid 연산을 적용합니다.

매개 변수

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

public static Function Tanh(Variable operand, string name)

Tanh 활성화. 입력 변수를 사용하고 Tanh 작업을 적용합니다.

매개 변수

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소 asin 연산의 인스턴스를 만듭니다.

매개 변수

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소 사인 작업의 인스턴스를 만듭니다. 매개 변수

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소 acos 작업의 인스턴스를 만듭니다.

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소별 코사인 작업의 인스턴스를 만듭니다.

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소별 코시 작업의 인스턴스를 만듭니다.

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소 sinh 작업의 인스턴스를 만듭니다.

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

정류기 선형 활성화. 입력 변수를 사용하고 정류 선형 활성화 작업을 적용합니다.

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소별 exp 작업의 인스턴스를 만듭니다.

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소별 로그 작업의 인스턴스를 만듭니다.

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소 정사각형 연산의 인스턴스를 만듭니다.

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소와 제곱근 연산의 인스턴스를 만듭니다.

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 텐서 입력 피연산자 매개 변수의 지정된 축에 CNTK 기본 제공 softmax 연산의 인스턴스를 만듭니다.

  • operand: 작업의 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • axis: softmax 연산을 적용할 축입니다.
  • name: 작업의 이름입니다.

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

지정된 텐서 입력 피연산자에 CNTK 기본 제공 hardmax 작업의 인스턴스 만들기

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 1D 또는 2D 입력 피연산자에서 CNTK 기본 제공 트랜스포지션 작업의 인스턴스 만들기

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • name: 작업의 이름입니다.

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

지정된 텐서 입력 피연산자에 대한 드롭아웃 작업의 인스턴스 만들기

  • operand: 입력 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • 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 = "")

이진 요소와 텐서 더하기 연산입니다. 매개 변수

  • leftOperand: 더하기 연산의 왼쪽 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • rightOperand: 더하기 연산의 왼쪽 변수입니다. 다른 함수의 ouput일 수 있습니다.
  • 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 = "");

지정된 피연산자의 고독한 동적 축을 따라 과거 값을 가져오기 위한 CNTK 기본 제공 작업의 인스턴스를 만듭니다.


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

지정된 피연산자의 고독한 동적 축을 따라 미래 값을 가져오기 위한 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 기본 제공 스플라이스 작업의 인스턴스를 만듭니다.


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

새 'Function'의 'Outputs'가 지정된 각 '피연산자' 함수의 'Outputs'와 결합되도록 지정된 '피연산자' 함수 목록의 출력만 결합하는 새 함수 인스턴스를 만듭니다. 예를 들어 분류 모델을 만들 때 일반적으로 CrossEntropy 손실 함수와 ClassificationError 함수는 "결합"될 수 있는 계산 그래프의 두 루트를 구성하여 2개의 출력으로 단일 함수를 만듭니다. 즉. CrossEntropy 손실 및 ClassificationError 출력입니다.


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

지정된 입력 피연산자를 사용하여 CNTK 기본 제공 요소 누수 선형 정류기 작업의 인스턴스를 만듭니다.

클래스 Learner

클래스 함수

A는 Function 0개 이상의 입력 인수와 하나 이상의 출력이 있는 심볼 계산을 나타냅니다. 함수는 기본 또는 복합 함수일 수 있습니다(입력 및 출력이 함께 연결된 다른 함수 인스턴스로 구성됨). 함수는 효과적으로 다른 기본 함수(계산을 나타냄)로 구성된 계산 그래프로, 그래프의 가장자리와 잎으로 노드 및 Variable 개체(데이터를 나타냄)로 구성됩니다.

클래스에는 Function 평가와 관련된 다음과 같은 속성 및 메서드가 포함됩니다.


public string Name { get; }

함수의 이름입니다.


public IList<Variable> Arguments { get; }

매개 변수 또는 상수 형식이 아닌 함수의 모든 입력 변수 목록입니다. 이러한 변수는 함수의 출력을 계산하기 위해 필요한 입력입니다.


public Variable Output { get; }

함수가 하나만 있는 경우 함수의 단일 출력 변수입니다. 그렇지 않으면 액세스 시 런타임 예외가 발생합니다.


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 개체는 함수의 해당 출력 결과를 포함합니다. Value가 null 지정되었고 매개 변수 createPersistentOutputValues 가 지정되지 않았거나 설정 false되면 메서드에서 반환된 Value 개체는 일시적이며 다음 정방향/뒤로 호출될 때까지만 유효합니다. 나중에 액세스해야 하는 경우 임시 Value 개체를 true지정하거나 명시적으로 DeepClone 지정 createPersistentOutputValues 해야 합니다.
  • computeDevice: 계산이 실행되는 디바이스입니다. 모델을 로드하는 디바이스에 맞춰야 합니다.
  • createPersistentOutputValues: 값이 null 출력에 지정된 경우에만 관련됩니다. 이 개체로 true설정된 경우 메서드는 영구 Value 개체를 만들고, 그렇지 않으면 Value 개체는 임시이며 다음 정방향/뒤로 호출까지만 유효합니다.

public Function Clone(ParameterCloningMethod parameterCloneMethod = ParameterCloningMethod.Share)

Clones this 함수입니다.

매개 변수

  • parameterCloneMethod: 함수의 매개 변수를 복제 ParameterCloningMethod.Share 하는 방법을 지정합니다. - 복제 중인 함수와 새 복제본 간에 매개 변수가 공유됩니다. 복제된 함수가 동시 평가에 사용되는 경우 이 값을 사용해야 합니다. ParameterCloningMethod.Clone - 새 학습 가능한 매개 변수가 생성되고 복제되는 함수의 해당 매개 변수의 현재 값을 사용하여 초기화됩니다. ParameterCloningMethod.Freeze - 매개 변수가 복제되고 변경할 수 없게 만듭니다. 즉, 새 클론의 상수(예: 고정 기능 추출기로 사용). ParameterCloningMethod는 여기에 정의되어 있습니다.

public Function FindByName(string name, bool nestedSearchInsideBlockFunction)

함수의 기본 함수 그래프에서 지정된 이름을 가진 함수를 찾습니다. 이름이 같은 함수가 둘 이상 있으면 예외가 throw됩니다. 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)

함수의 지정된 '피연산자' 목록의 출력을 결합하는 새 함수 인스턴스를 만듭니다. 새 '함수'의 '출력'은 지정된 각 '피연산자' 함수의 '출력'의 합합입니다. 예를 들어 분류 모델을 만들 때 일반적으로 CrossEntropy 손실 함수와 ClassificationError 함수는 "Combine"d가 될 수 있는 계산 그래프의 루트를 구성하여 2개의 출력으로 단일 함수를 만듭니다. 즉. CrossEntropy 손실 및 ClassificationError 출력입니다.

매개 변수:

  • operands: 새 함수의 출력에 포함해야 하는 함수 또는 변수 목록입니다.

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

지정된 rootFunction을 루트로 포함하는 복합 함수를 만듭니다. 복합 함수는 지정된 rootFunction의 기반이 되는 함수의 전체 그래프를 캡슐화하는 상위 수준 함수를 표시합니다.

매개 변수

  • rootFunction: 만들 복합 함수의 루트입니다.
  • name: 만들 복합 함수의 이름입니다.

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

지정된 피연산자의 별칭인 새 Function 인스턴스를 만듭니다.

매개 변수

  • operand: 별칭 함수가 만들어지는 함수 또는 변수입니다.
  • name: 만들 새 함수의 이름입니다.

클래스 값

A Value 는 선택적 마스크가 있는 다차원 배열이며 계산에서 공급되거나 생성된 실제 데이터입니다.


다음 메서드는 지정된 텐서 셰이프와 조밀한 입력을 사용하여 Value 개체를 만듭니다.


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

샘플 일괄 처리를 포함하는 새 Value 개체를 만듭니다. 일괄 처리의 샘플 수는 크기 shape 로 나눈 요소 batch 의 수입니다(나머지가 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. 시퀀스 길이는 크기로 나눈 요소 sequenceshape 수입니다(나머지가 0이 아닌 경우 런타임 오류가 발생). 생성된 시퀀스는 새 시퀀스입니다.

매개 변수

  • sampleShape: 값의 텐서 모양입니다.
  • 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는 이 시퀀스가 이 메서드에 대한 이전 호출에서 이전 시퀀스의 새 시퀀스인지 또는 연속인지를 지정합니다. 시퀀스 길이는 크기로 나눈 요소 sequenceshape 수입니다(나머지가 0이 아닌 경우 런타임 오류가 발생).

매개 변수

  • sampleShape: 값의 텐서 모양입니다.
  • 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: 값의 텐서 모양입니다.
  • 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: 값의 텐서 모양입니다.
  • 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 개체를 만듭니다. 각 샘플은 요소의 원 핫 벡터에서 0이 아닌 값을 가리키는 인덱스 dimension 값으로 표시됩니다. 일괄 처리의 샘플 수는 .의 요소 batch수입니다.

매개 변수

  • T: 만든 Value 개체의 데이터 형식입니다. 현재 floatdouble 지원됩니다.
  • dimension: 원 핫 벡터의 차원 크기입니다.
  • batch: 샘플 일괄 처리를 나타내는 인덱스의 컬렉션입니다.
  • device: Value 개체를 만들어야 하는 디바이스입니다.
  • readOnly: 이 플래그가 .인 경우 값은 읽기 전용입니다 true.

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

샘플 시퀀스를 포함하는 새 Value 개체를 만듭니다. 각 샘플은 요소의 원 핫 벡터에서 0이 아닌 값을 가리키는 인덱스 dimension 값으로 표시됩니다. 시퀀스 길이는 .의 sequence요소 수입니다. 생성된 시퀀스는 새 시퀀스입니다.

매개 변수

  • T: 만든 Value 개체의 데이터 형식입니다. 현재 floatdouble 지원됩니다.
  • dimension: 원 핫 벡터의 차원 크기입니다.
  • sequence: 샘플 시퀀스를 나타내는 인덱스의 컬렉션입니다.
  • device: Value 개체를 만들어야 하는 디바이스입니다.
  • readOnly: 이 플래그가 .인 경우 값은 읽기 전용입니다 true.

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

샘플 시퀀스를 포함하는 새 Value 개체를 만듭니다. 각 샘플은 요소의 원 핫 벡터에서 0이 아닌 값을 가리키는 인덱스 dimension 값으로 표시됩니다. sequenceStartFlag는 이 시퀀스가 이 메서드에 대한 이전 호출에서 이전 시퀀스의 새 시퀀스인지 또는 연속인지를 지정합니다. 시퀀스 길이는 .의 sequence요소 수입니다.

매개 변수

  • T: 만든 Value 개체의 데이터 형식입니다. 현재 floatdouble 지원됩니다.
  • dimension: 원 핫 벡터의 차원 크기입니다.
  • 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 개체를 만듭니다. 각 샘플은 요소의 원 핫 벡터에서 0이 아닌 값을 가리키는 인덱스 dimension 값으로 표시됩니다. 시퀀스 수는 외부 컬렉션의 요소 수 batchOfSequences입니다. 각 시퀀스의 길이는 컬렉션 목록에 있는 해당 시퀀스의 요소 수 batchOfSequences입니다. 각각의 시퀀스는 batchOfSequences 새 시퀀스입니다.

매개 변수

  • T: 만든 Value 개체의 데이터 형식입니다. 현재 floatdouble 지원됩니다.
  • dimension: 원 핫 벡터의 차원 크기입니다.
  • 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 개체를 만듭니다. 각 샘플은 요소의 원 핫 벡터에서 0이 아닌 값을 가리키는 인덱스 dimension 값으로 표시됩니다. 시퀀스 수는 외부 컬렉션의 요소 수 batchOfSequences입니다. 각 시퀀스의 길이는 내부 컬렉션에 있는 해당 시퀀스의 요소 수입니다 batchOfSequences.

매개 변수

  • T: 만든 Value 개체의 데이터 형식입니다. 현재 floatdouble 지원됩니다.
  • dimension: 원 핫 벡터의 차원 크기입니다.
  • batchOfSequences: 샘플 시퀀스를 나타내는 인덱스의 컬렉션입니다. 외부 IEnumerable 는 길이가 가변적인 시퀀스의 컬렉션을 나타내고 내부 IEnumerable 는 각 개별 시퀀스를 나타냅니다.
  • sequenceStartFlags: 부울 값의 컬렉션입니다. 각 요소는 해당 시퀀스가 새 시퀀스 batchOfSequences 인지(있는 경우 true) 또는 이전 시퀀스의 연속(예: ) false인지를 나타냅니다.
  • device: Value 개체를 만들어야 하는 디바이스입니다.
  • readOnly: 이 플래그가 .인 경우 값은 읽기 전용입니다 true.

다음 메서드는 스파스 입력을 사용하여 Value 개체를 만듭니다.

현재 압축된 스파스 열 형식(CSC)이 지원됩니다. CSC 형식은 행렬을 열 주 형식으로 저장하고 열 인덱스를 포함하는 배열이 압축됩니다. CSC 형식의 행렬은 다음 매개 변수로 표시됩니다.

  • nonZeroValues: 행렬의 모든 0이 아닌 값을 열 주 형식으로 보유하는 데이터 배열입니다.
  • rowIndices: 배열에 있는 해당 요소의 행 인덱스를 포함하는 배열 nonZeroValues입니다.
  • colStarts: 배열 및 nonZeroValues에 인덱스를 포함하는 배열입니다rowIndices.

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 개체의 데이터 형식입니다. 현재 floatdouble 지원됩니다.
  • sampleShape: 값의 텐서 모양입니다. 스파스 입력의 경우 텐서 셰이프 선행 차원은 텐서 셰이프의 총 크기와 동일해야 합니다.
  • sequenceLength: 스파스 행렬의 행 수이기도 한 시퀀스 길이입니다.
  • colStarts: 배열은 배열에 각 열에 대한 인덱스를 보유합니다nonZeroValues.rowIndices
  • 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 개체의 데이터 형식입니다. 현재 floatdouble 지원됩니다.
  • sampleShape: 값의 텐서 모양입니다. 스파스 입력의 경우 텐서 셰이프 선행 차원은 텐서 셰이프의 총 크기와 동일해야 합니다.
  • sequenceLength: 스파스 행렬의 행 수이기도 한 시퀀스 길이입니다.
  • colStarts: 배열은 배열에 각 열에 대한 인덱스를 보유합니다nonZeroValues.rowIndices
  • 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 개체의 데이터 형식입니다. 현재 floatdouble 지원됩니다.
  • dimension: 스파스 행렬의 열 수입니다.
  • sequenceLength: 스파스 행렬의 행 수이기도 한 시퀀스 길이입니다.
  • colStarts: 배열은 배열에 각 열에 대한 인덱스를 보유합니다nonZeroValues.rowIndices
  • 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 개체의 데이터 형식입니다. 현재 floatdouble 지원됩니다.
  • dimension: 스파스 행렬의 열 수입니다.
  • sequenceLength: 스파스 행렬의 행 수이기도 한 시퀀스 길이입니다.
  • colStarts: 배열은 배열에 각 열에 대한 인덱스를 보유합니다nonZeroValues.rowIndices
  • 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; }

값의 스토리지 형식입니다.


public bool IsSparse { get; }

값에 스파스 스토리지 형식의 데이터가 포함되어 있는지 여부를 나타내는 부울 값입니다.


public bool IsReadOnly { get; }

값이 읽기 전용인지 여부를 나타내는 부울 값입니다.


public int maskedCount { get; }

값의 마스킹된/잘못된 값 수입니다.


public void CopyFrom(Value Source)

값을 복사합니다 source . '의 데이터 및 마스크의 모양 Source은 값의 데이터 및 마스크와 동일 this 해야 합니다.

매개 변수:

  • Source: 값이 복사되는 원본 개체입니다.

public Value DeepClone()

값과 동일한 디바이스에 새로 할당된 스토리지를 this 사용하여 새 값을 만들고 값의 내용을 새로 할당된 값에 복사 this 합니다.


public Value DeepClone(bool readOnly)

값과 동일한 디바이스에 새로 할당된 스토리지를 this 사용하여 새 값을 만들고 값의 내용을 새로 할당된 값에 복사 this 합니다.

매개 변수:

  • readOnly: 이 플래그가 인 경우 새 Value 개체는 읽기 전용입니다 true.

public Value Alias(bool readOnly)

값의 별칭 this 인 새 값을 만듭니다. 매개 변수:

  • readOnly: 이 플래그가 인 경우 새 Value 개체는 읽기 전용입니다 true.

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

Value 개체에 저장된 데이터를 가변 길이가 조밀한 형식의 시퀀스 목록으로 가져옵니다. 이 메서드는 IList IList<를 반환합니다>. 외부 목록의 각 요소는 시퀀스를 나타냅니다. IList로 표현되는 각 시퀀스에는 다양한 샘플이 포함됩니다. 각 샘플은 'T' 형식의 고정된 수의 요소로 구성됩니다. 요소 수는 outputVariable의 모양에 따라 결정됩니다. 샘플 수는 IList의 요소 수를 샘플의 요소 수로 나눈 값입니다.

매개 변수:

  • outputVariable: 값이 나타내는 변수입니다. 변수의 모양은 값의 모양과 일치해야 합니다.

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

Value 개체에 저장된 데이터를 가변 길이가 1 핫 벡터 형식인 시퀀스 목록으로 가져옵니다. 이 메서드는 IList IList<를 반환합니다>. 외부 목록의 각 요소는 시퀀스를 나타냅니다. IList로 표현되는 각 시퀀스에는 다양한 샘플이 포함됩니다. 각 샘플은 원 핫 벡터에 대한 인덱스로 표시됩니다. 샘플 수는 IList의 요소 수입니다.

매개 변수:

  • outputVariable: 값이 나타내는 변수입니다. 원 핫 벡터의 크기는 변수에 정의된 크기와 일치해야 합니다.

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 시 값에 저장된 시퀀스의 길이로 설정되고 colStartsnonZeroValuesrowIndices 열 시작 인덱스, 행 인덱스 및 0이 아닌 값의 데이터가 포함되며 numNonZeroValues Value에 this 포함된 0이 아닌 값의 수로 설정됩니다.

매개 변수

  • outputVariable: 이 값에서 버퍼로 데이터를 복사할 때 셰이프 및 동적 축을 표시합니다.
  • sequenceLength: 반환 시 값에 저장된 시퀀스의 길이로 설정됩니다.
  • colStarts: 반환할 때 행렬의 각 열에 있는 0이 nonZeorValues 아닌 첫 번째 요소에 대한 인덱스를 포함합니다.
  • rowIndices: 반환할 때 행렬의 0이 아닌 각 요소의 행 인덱스를 포함합니다.
  • nonZeroValues: 반환할 때 행렬의 0이 아닌 모든 요소의 값을 포함합니다.
  • numNonZeroValues: 반환할 때 행렬의 0이 아닌 요소 수를 반환합니다.

다음 메서드는 곧 더 이상 사용되지 않습니다. 위에서 설명한 GetDenseData() 및 GetOneHotData()를 사용하세요.


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

값에 저장된 데이터를 제공된 sequences버퍼에 복사합니다. 길이 sequences 가 가변적인 시퀀스 목록입니다. 외부 목록에 포함된 항목 수는 sequences 값의 시퀀스 수입니다. 외부 목록의 각 요소는 시퀀스를 나타냅니다. 각 시퀀스에는 List<T>가변 개수의 샘플이 포함됩니다. 각 샘플은 형식이 .인 고정된 수의 T요소로 구성됩니다. 샘플의 요소 수는 .의 outputVariable모양에 따라 결정됩니다. 변수의 모양은 값의 모양과 일치해야 합니다.

매개 변수

  • outputVariable: 값에서 .로 데이터를 복사할 때 셰이프 및 동적 축을 sequences표시합니다.
  • sequences: 값에서 복사한 데이터를 저장하는 데 사용되는 출력 버퍼입니다.

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

Value 개체에 저장된 데이터를 제공된 sequences버퍼에 복사합니다. 길이 sequences 가 가변적인 시퀀스 목록입니다. 외부 목록에 포함된 항목 수는 sequences 값의 시퀀스 수입니다. 외부 목록의 각 요소는 시퀀스를 나타냅니다. 각 시퀀스에는 List<uint>가변 개수의 샘플이 포함됩니다. 각 샘플은 원 핫 벡터에서 0이 아닌 값을 가리키는 인덱스로 표시됩니다. 원 핫 벡터의 차원 크기는 에 정의된 outputVariable크기와 일치해야 합니다.

매개 변수

  • outputVariable: 값에서 .로 데이터를 복사할 때 셰이프 및 동적 축을 sequences표시합니다.
  • sequences: 값에서 복사한 데이터를 저장하는 데 사용되는 출력 버퍼입니다.

클래스 변수

의 입력 및 출력에 해당하는 기호 엔터티를 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; }

변수가 입력인지 여부를 나타내는 부울 값입니다.


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

변수가 출력되는 함수를 반환합니다. 변수가 VariableKind 출력이 아닌 경우를 반환 null 합니다.

클래스 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; }

셰이프가 알 수 없는 특수 도형인지 여부를 나타내는 부울입니다.


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 인스턴스를 만들고 반환합니다.

클래스 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: 배열은 배열에 각 열에 대한 인덱스를 보유합니다nonZeroValues.rowIndices
  • 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)

볼 '원본' 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()

마스크의 별칭인 새 NDMask를 this 만듭니다.


public void CopyFrom(NDMask source)

NDMask의 source 내용을 복사하여 마스킹합니다 this . 마스크와 this 마스크의 source 모양은 동일해야 합니다.

매개 변수:

  • source: 콘텐츠를 볼 수 있도록 this 복사된 원본 NDMask입니다.

클래스 축

.의 축을 나름으로 Variable지정합니다. 변수 셰이프의 각 축에 해당하는 정적 축 외에도 'Input' 변수 종류 변수와 '입력' 변수에 종속된 모든 '출력' 변수에는 계산 중에 변수가 실제 데이터에 바인딩된 경우에만 해당 차원이 알려진 2개의 추가 동적 축이 있습니다(viz. 여러 시퀀스가 일괄 처리되는 축을 나타내는 시퀀스 축 및 일괄 처리 축).

다음 속성은 클래스에 정의됩니다. Axis


public string Name { get; }

축의 이름입니다.


public bool IsStatic { get; }

축이 정적 축에 해당하는지 여부를 나타내는 부울 값을 반환합니다.


public bool IsDynamic { get; }

축이 동적 축에 해당하는지 여부를 나타내는 부울 값을 반환합니다.

클래스 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 };