Поделиться через


API C# библиотеки CNTK

Управляемый API библиотеки CNTK реализован в C# и может использоваться C# и другими языками .NET. На странице с помощью управляемого API библиотеки CNTK и использования CNTK с C# показано, как использовать этот API в приложении. В следующих разделах описаны классы и методы API управляемого Eval библиотеки CNTK.

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

Создайте экземпляр встроенной операции acos CNTK с указанным входным операндом.

  • operand: входные переменные. Это может быть ouput другой функции.
  • name: имя операции.

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

Создайте экземпляр встроенной операции косинуса CNTK с указанным входным операндом.

  • operand: входные переменные. Это может быть ouput другой функции.
  • name: имя операции.

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

Создайте экземпляр встроенной операции cosh CNTK с указанным входным операндом.

  • operand: входные переменные. Это может быть ouput другой функции.
  • name: имя операции.

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

Создайте экземпляр встроенной синхих операции CNTK с указанным входным операндом.

  • operand: входные переменные. Это может быть ouput другой функции.
  • name: имя операции.

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

Выпрямитель линейной активации. Она принимает входную переменную и применяет к ней операцию линейной активации выпрямителя.

  • operand: входные переменные. Это может быть ouput другой функции.
  • name: имя операции.

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

Создайте экземпляр встроенной операции CNTK с помощью указанного входного операнда.

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

Создайте экземпляр встроенной операции softmax CNTK на указанной оси в заданных входных параметрах операнда тензора:

  • operand: входная переменная операции. Это может быть ouput другой функции.
  • axis: ось для применения операции softmax.
  • name: имя операции.

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

Создание экземпляра встроенной операции hardmax CNTK с указанным тензорным входным операндом

  • operand: входные переменные. Это может быть ouput другой функции.
  • name: имя операции.

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

Создание экземпляра встроенной операции транспонирования CNTK для указанного операнда ввода 1D или 2D

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

Создайте экземпляр встроенной операции тензора 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 = "");

Создайте экземпляр встроенной операции CNTK для вычисления перекрестной энтропии с помощью softmax для указанных входных операндов.


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

Создание экземпляра встроенной операции пула roI CNTK для указанных входных операндов тензора с указанной выходной фигурой


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

Создание экземпляра встроенной операции splice CNTK для объединения всех указанных операндов тензора в один выходной тензор


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

Создайте новый экземпляр функции, который просто объединяет выходные данные указанного списка функций "операндов", таким образом, что "Выходные данные" новой функции являются объединением "Выходные данные" каждого из указанных "операндов". Например, при создании модели классификации обычно функция перекрестной потери и функция ClassificationError состоят из двух корней графа вычислений, которые можно "объединить", чтобы создать одну функцию с двумя выходными данными; Viz. Выходные данные CrossEntropy и ClassificationError.


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

Создайте экземпляр встроенной операции линейного выпрямки CNTK с указанным входным операндом.

класс Learner

Class Function

Обозначает Function символьное вычисление с нулевым или несколькими входными аргументами и одним или несколькими выходными данными. Функция может быть примитивной или составной (состоящей из других экземпляров функций, входные и выходные данные которых объединяются). Функция фактически представляет собой граф вычислений, состоящий из других примитивных функций (обозначающих вычисления) как узлы и Variable объекты (обозначающие данные) в качестве ребер и листьев графа.

Класс Function содержит следующие свойства и методы, относящиеся к оценке:


public string Name { get; }

Имя функции.


public IList<Variable> Arguments { get; }

Список всех входных переменных функции, которые не относятся к типу Parameter или Constant. Эти переменные являются обязательными входными данными для вычисления выходных данных функции.


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 содержит результат соответствующих выходных данных функции. null Если задано значение, а параметр createPersistentOutputValues не указан или задан в значениеfalse, то объект Value, возвращаемый методом, является временным и гарантируется, что он будет действителен только до следующего вызова вперед или назад. Если доступ к нему необходимо получить позже, необходимо указать createPersistentOutputValuestrueили явно DeepClone временный объект Value.
  • computeDevice: устройство, на котором выполняется вычисление. Оно должно быть выровнено с устройством, на котором загружается модель.
  • createPersistentOutputValues: применимо только в том случае, если null значение было указано в выходных данных. Если задано значение true, метод создаст объекты постоянных значений, в противном случае объекты Value являются временными и действительными только до следующего вызова вперед или назад.

public Function Clone(ParameterCloningMethod parameterCloneMethod = ParameterCloningMethod.Share)

Клонирует this функцию.

Параметры

  • parameterCloneMethod: указывает, как клонируются параметры функции: ParameterCloningMethod.Share — параметры совместно используются между клонированием функции и новым клоном. Это значение следует использовать, если клонированная функция используется для параллельной оценки. ParameterCloningMethod.Clone — Создаются и инициализированы новые обучаемые параметры с текущими значениями соответствующих параметров клонируемой функции. ParameterCloningMethod.Freeze - Параметры клонируются и становятся неизменяемыми; т. е. константы в новом клоне (например, для использования в качестве средства извлечения фиксированной функции). ПараметрCloningMethod определен здесь.

public Function FindByName(string name, bool nestedSearchInsideBlockFunction)

Находит функцию с заданным именем в графе функций, лежащем в основе функции. Если существует несколько функций с одинаковым именем, возникает исключение. Если nestedSearchInsideBlockFunction имеет значение true, выполните поиск всех функций внутри блочных функций.

Параметры

  • name: имя для поиска.
  • nestedSearchInsideBlockFunction: если это верно, также проверяются все функции внутри блочных функций.

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

Находит список функций с заданным именем в графе функций, лежащем в основе функции. Если nestedSearchInsideBlockFunction имеет значение true, выполните поиск всех функций внутри блочных функций.

Параметры

  • name: имя для поиска.
  • nestedSearchInsideBlockFunction: если это верно, также проверяются все функции внутри блочных функций.

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)

Создает новый экземпляр функции, объединяющий выходные данные указанного списка операндов функций. "Выходные данные" новой функции являются объединением "Выходные данные" каждого из указанных "операндов". Например, при создании модели классификации обычно функция перекрестной потери и функция ClassificationError состоят из корней графа вычислений, который может быть "Combine"d, чтобы создать одну функцию с 2 выходными данными; Viz. Выходные данные CrossEntropy и ClassificationError.

Параметры.

  • operands: список функций или переменных, которые должны быть включены в выходные данные новой функции.

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

Создает составную функцию, которая имеет указанный rootFunction в качестве корневого элемента. Составной элемент обозначает функцию более высокого уровня, инкапсулируя весь граф функций, лежащих в основе указанного rootFunction.

Параметры

  • rootFunction: корень создаваемой составной функции.
  • name: имя создаваемой составной функции.

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

Создает новый экземпляр функции, являющийся только псевдонимом указанного операнда.

Параметры

  • operand: функция или переменная, для которую создается функция псевдонима.
  • name: имя создаваемой функции.

Значение класса

A Value — это многомерный массив с необязательной маской и фактические данные, поступающие в вычисления или полученные из нее.


Следующие методы создают объект Value с использованием плотного ввода с указанной фигурой тензора.


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

Создает новый объект Value, содержащий пакет примеров. Количество выборок в пакете — это количество элементов, batch разделенных на размер shape (ошибка среды выполнения возникает, если остаток не равен нулю). Созданный объект 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. Длина последовательности — это количество элементов, sequence разделенных на размер shape (ошибка времени выполнения возникает, если остаток не равен нулю). Созданная последовательность — это новая последовательность.

Параметры

  • 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 указывает, является ли эта последовательность новой или продолжением предыдущей последовательности из предыдущего вызова этого метода. Длина последовательности — это количество элементов, sequence разделенных на размер shape (ошибка времени выполнения возникает, если остаток не равен нулю).

Параметры

  • 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 (ошибка времени выполнения возникает, если остаток не равен нулю). Каждая последовательность в 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 (ошибка времени выполнения возникает, если остаток не равен нулю).

Параметры

  • 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, содержащий пакет примеров. Каждый пример представлен значением индекса, которое указывает на ненулевое значение в однократном векторе dimension элементов. Количество выборок в пакете — это количество элементов в batch.

Параметры

  • T: тип данных созданного объекта Value. В настоящее float время поддерживаются и double поддерживаются.
  • dimension: размер измерения одно-горячего вектора.
  • batch: коллекция индексов, представляющих пакет выборок.
  • device: на каком устройстве следует создать объект Value.
  • readOnly: значение доступно только для чтения, если этот флаг имеет значение true.

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

Создает объект Value, содержащий последовательность примеров. Каждый пример представлен значением индекса, которое указывает на ненулевое значение в однократном векторе dimension элементов. Длина последовательности — это количество элементов в sequence. Созданная последовательность — это новая последовательность.

Параметры

  • T: тип данных созданного объекта Value. В настоящее float время поддерживаются и double поддерживаются.
  • dimension: размер измерения одно-горячего вектора.
  • sequence: коллекция индексов, представляющих последовательность выборок.
  • device: на каком устройстве следует создать объект Value.
  • readOnly: значение доступно только для чтения, если этот флаг имеет значение true.

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

Создает объект Value, содержащий последовательность примеров. Каждый пример представлен значением индекса, которое указывает на ненулевое значение в однократном векторе dimension элементов. SequenceStartFlag указывает, является ли эта последовательность новой или продолжением предыдущей последовательности из предыдущего вызова этого метода. Длина последовательности — это количество элементов в sequence.

Параметры

  • T: тип данных созданного объекта Value. В настоящее float время поддерживаются и double поддерживаются.
  • 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, содержащий пакет последовательностей переменной длины. Каждый пример представлен значением индекса, которое указывает на ненулевое значение в однократном векторе dimension элементов. Число последовательностей — это количество элементов во внешней коллекции batchOfSequences. Длина каждой последовательности — это количество элементов соответствующей последовательности в списке коллекций batchOfSequences. Каждая последовательность в batchOfSequences ней представляет собой новую последовательность.

Параметры

  • T: тип данных созданного объекта Value. В настоящее float время поддерживаются и double поддерживаются.
  • 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, содержащий пакет последовательностей переменной длины. Каждый пример представлен значением индекса, которое указывает на ненулевое значение в однократном векторе dimension элементов. Число последовательностей — это количество элементов во внешней коллекции batchOfSequences. Длина каждой последовательности — это количество элементов соответствующей последовательности во внутренней коллекции batchOfSequences.

Параметры

  • T: тип данных созданного объекта Value. В настоящее float время и double поддерживаются.
  • dimension: размер измерения одного горячего вектора.
  • batchOfSequences: коллекция индексов, представляющих последовательности выборок. Внешний IEnumerable представляет коллекцию последовательностей с переменной длиной, а внутренний IEnumerable представляет каждую отдельную последовательность.
  • sequenceStartFlags: коллекция логических значений. Каждый элемент представляет, является ли соответствующая последовательность новой (в случаеtrue) или продолжением предыдущей последовательности batchOfSequences (в случаеfalse).
  • device: на каком устройстве следует создать объект Value.
  • readOnly: значение доступно только для чтения, если этот флаг имеет значение true.

Следующие методы создают объект Value с помощью разреженных входных данных.

В настоящее время поддерживается формат сжатых разреженных столбцов (CSC). Формат CSC сохраняет матрицу в основном формате столбца, а массив, содержащий индексы столбцов, сжимается. Матрица в формате CSC представлена следующими параметрами:

  • nonZeroValues: массив данных, содержащий все ненулевое значение матрицы в основном формате.
  • rowIndices: массив, содержащий индексы строк соответствующих элементов в массиве nonZeroValues.
  • colStarts: массив, содержащий индексы в массивах rowIndices и nonZeroValues.

Подробное описание формата CSC можно найти здесь.


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

Создает новый объект Value, содержащий последовательность примеров с использованием разреженного формата входных данных CSC. Длина последовательности — это количество строк разреженной матрицы. Созданная последовательность — это новая последовательность.

Параметры

  • T: тип данных созданного объекта Value. В настоящее float время и double поддерживаются.
  • sampleShape: тензорная форма значения. Для разреженных входных данных тензорная фигура должна совпадать с общим размером тензорной фигуры.
  • sequenceLength: длина последовательности, которая также является числом строк в разреженной матрице.
  • colStarts: массив содержит индексы для каждого столбца в массивах rowIndices и nonZeroValues.
  • rowIndices: массив, содержащий индексы строк соответствующих элементов в массиве nonZeroValues.
  • nonZeroValues: массив, содержащий все ненулевое значение в разреженной матрице.
  • 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)

Создает новый объект Value, содержащий последовательность примеров с использованием разреженного формата входных данных CSC. Длина последовательности — это количество строк разреженной матрицы. SequenceStartFlag указывает, является ли эта последовательность новой или продолжением предыдущей последовательности из предыдущего вызова этого метода.

Параметры

  • T: тип данных созданного объекта Value. В настоящее float время и double поддерживаются.
  • sampleShape: тензорная форма значения. Для разреженных входных данных тензорная фигура должна совпадать с общим размером тензорной фигуры.
  • sequenceLength: длина последовательности, которая также является числом строк в разреженной матрице.
  • colStarts: массив содержит индексы для каждого столбца в массивах rowIndices и nonZeroValues.
  • rowIndices: массив, содержащий индексы строк соответствующих элементов в массиве nonZeroValues.
  • nonZeroValues: массив, содержащий все ненулевое значение в разреженной матрице.
  • 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)

Создает новый объект Value, содержащий последовательность примеров с использованием разреженного формата входных данных CSC. Длина последовательности — это количество строк разреженной матрицы. Созданная последовательность — это новая последовательность.

Параметры

  • T: тип данных созданного объекта Value. В настоящее float время и double поддерживаются.
  • dimension: число столбцов в разреженной матрице.
  • sequenceLength: длина последовательности, которая также является числом строк в разреженной матрице.
  • colStarts: массив содержит индексы для каждого столбца в массивах rowIndices и nonZeroValues.
  • rowIndices: массив, содержащий индексы строк соответствующих элементов в массиве nonZeroValues.
  • nonZeroValues: массив, содержащий все ненулевое значение в разреженной матрице.
  • 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)

Создает новый объект Value, содержащий последовательность примеров с использованием разреженного формата входных данных CSC. Длина последовательности — это количество строк разреженной матрицы. SequenceStartFlag указывает, является ли эта последовательность новой или продолжением предыдущей последовательности.

Параметры

  • T: тип данных созданного объекта Value. В настоящее float время и double поддерживаются.
  • dimension: число столбцов в разреженной матрице.
  • sequenceLength: длина последовательности, которая также является числом строк в разреженной матрице.
  • colStarts: массив содержит индексы для каждого столбца в массивах rowIndices и nonZeroValues.
  • rowIndices: массив, содержащий индексы строк соответствующих элементов в массиве nonZeroValues.
  • nonZeroValues: массив, содержащий все ненулевое значение в разреженной матрице.
  • sequenceStartFlag: true указывает, что это новая последовательность. false означает продолжение предыдущей последовательности.
  • device: на каком устройстве следует создать объект Value.
  • readOnly: значение доступно только для чтения, если этот флаг имеет значение true.

Следующие методы создают объект Value из NDArrayView.


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

Создает объект Value на основе коллекции NDArrayViews. Каждая последовательность в 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)

Создает объект Value на основе коллекции NDArrayViews. SequenceStartFlags указывает, является ли последовательность новой последовательностью или продолжением предыдущей последовательности.

Параметры

  • sampleShape: тензорная форма создаваемого значения.
  • sequences: коллекция последовательностей, представленных NDArrayView. Каждый NDArrayView представляет последовательность.
  • sequenceStartFlags: коллекция логических значений. Каждый элемент представляет, является ли соответствующая последовательность новой (в случаеtrue) или продолжением предыдущей последовательности sequences (в случаеfalse).
  • device: на каком устройстве следует создать объект Value.
  • readOnly: значение доступно только для чтения, если этот флаг имеет значение true.

Объект Value содержит следующие свойства и методы.


public Value(NDArrayView data)

Создает многомерное значение без маски.


public Value(NDArrayView data, NDMask mask)

Создает многомерное значение с связанной маской.


public DataType DataType { get; }

DataType данных, содержащихся в объекте Value.


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 Value. Параметры.

  • 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, в виде списка последовательностей с переменной длиной в формате один горячего вектора. Этот метод возвращает 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. При необходимости размер буфера последовательности будет изменен. Значение должно иметь ту же форму тензора, что и outputVariable. При возврате задается длина последовательности, sequenceLength хранящейся в значении, и rowIndicescolStartsnonZeroValues содержит данные начальных индексов столбцов, индексов строк и ненулевых значений, а numNonZeroValues также устанавливается число ненулевых значений, содержащихся в this значении.

Параметры

  • outputVariable: обозначает фигуру и динамические оси при копировании данных из этого значения в буферы.
  • sequenceLength: при возвращении устанавливается длина последовательности, хранящейся в значении.
  • colStarts: при возврате он содержит индексы в nonZeorValues первый ненулевой элемент каждого столбца матрицы.
  • rowIndices: при возврате он содержит индексы строк каждого ненулевых элементов матрицы.
  • nonZeroValues: при возврате он содержит значения всех ненулевых элементов матрицы.
  • numNonZeroValues: при возврате возвращается число ненулевых элементов матрицы.

Следующие методы будут объявлены устаревшими в ближайшее время. Используйте 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>, содержит переменное число выборок. Каждый пример представлен индексом, указывающим на ненулевое значение в векторе с одним горячим значением. Размер измерения одно-горячего вектора должен соответствовать размеру, определенному в .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; }

Возвращает функцию, из которой является переменная. Возвращает значение null , если переменная не имеет выходных данных VariableKind.

class DeviceDescriptor

Обозначает экземпляр вычислительного устройства.

Класс DeviceDescriptor содержит следующие свойства и методы:


public int Id { get; }

Идентификатор устройства.


public DeviceKind Type { get; }

DeviceKind устройства.


public static DeviceDescriptor CPUDevice { get; }

DeviceDescriptor, представляющий устройство ЦП в локальной системе.


public static DeviceDescriptor GPUDevice(int deviceId)

Возвращает deviceDescriptor устройства GPU в локальной системе с указанным идентификатором устройства CUDA.

Параметры.

  • deviceId: идентификатор устройства CUDA.

public static IList<DeviceDescriptor> AllDevices()

Возвращает список дескрипторов всех доступных или поддерживаемых устройств.

class NDShape

Обозначает многомерную прямоугольную фигуру.


public NDShape()

Создает NDShape с 0 осями, обозначающая скаляр.


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)

Создает и возвращает новую фигуру, созданную путем добавления измерений указанной фигуры к this измерениям фигуры.


public NDShape SubShape(int beginAxisId, int endAxisId)

Создает и возвращает новый экземпляр NDShape с теми же измерениями, что this и указанный диапазон осей фигуры [beginAxisId, endAxisId).


public NDShape SubShape(int beginAxisId)

Создает и возвращает новый экземпляр NDShape с теми же измерениями, что this и диапазон осей фигуры между осью beginAxisId (включительно) и последней осью (включительно).

класс NDArrayView

Обозначает многомерный записываемый или доступный только для чтения массив элементовных значений. Этот тип обозначает представление и может быть несколько одновременных представлений данных, лежащих в основе экземпляра NDArrayView. Базовые данные хранятся в разреженном или плотном формате и находятся на определенном устройстве.


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

Создает объект NDArrayView с указанным dataBuffer в плотном формате в качестве резервного хранилища на указанном устройстве.

Параметры

  • 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)

Создает объект NDArrayView с указанным хранилищем в разреженном формате CSC на указанном устройстве. Указанные разреженные данные должны выходить за пределы созданного объекта NDArrayView.

Параметры

  • viewShape: форма создаваемого объекта NDArrayView.
  • colStarts: массив содержит индексы для каждого столбца в массивах rowIndices и nonZeroValues.
  • rowIndices: массив, содержащий индексы строк соответствующих элементов в массиве nonZeroValues.
  • nonZeroValues: массив, содержащий все ненулевое значение в разреженной матрице. Указанные разреженные данные должны выходить за пределы созданного объекта NDArrayView.
  • device: на каком устройстве должен быть создан объект NDArrayView.
  • readOnly: объект NDArrayView доступен только для чтения, если этот флаг имеет значение true.

public DeviceDescriptor Device

DeviceDescriptor устройства, на котором находится NDArrayView.


public NDShape Shape

Форма объекта NDArrayView.


public DataType DataType

DataType данных, которые хранит NDArrayView.


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()

Создает объект NDArrayView с недавно выделенным хранилищем на том же устройстве, что this и представление и копирует this содержимое представления в только что выделенное представление.


public NDArrayView DeepClone(bool readOnly)

Создает объект NDArrayView с недавно выделенным хранилищем на том же устройстве, что this и представление и копирует this содержимое представления в только что выделенное представление.

Параметры.

  • readOnly: новый объект NDArrayView доступен только для чтения, если этот флаг имеет значение true.

public NDArrayView DeepClone(DeviceDescriptor device, bool readOnly)

Создает объект NDArrayView с недавно выделенным хранилищем на указанном устройстве и копирует this содержимое представления в только что выделенное представление.

Параметры

  • device: на каком устройстве должен быть создан новый объект NDArrayView.
  • readOnly: новый объект NDArrayView доступен только для чтения, если этот флаг имеет значение true.

public NDArrayView Alias(bool readOnly)

Создает объект NDArrayView, являющийся псевдонимом this представления, т. е. новое представление той же фигуры, что и this над теми же базовыми данными.

Параметры.

  • readOnly: новый объект NDArrayView доступен только для чтения, если этот флаг имеет значение true.

public NDArrayView AsShape(NDShape newShape)

Создает объект NDArrayView, являющийся псевдонимом this представления, но с новой фигурой.

Параметры.

  • newShape: форма нового объекта NDArrayView.

public void CopyFrom(NDArrayView source)

Копирует содержимое объекта NDArrayView источника для this просмотра. Фигуры представления источника и this представления должны совпадать.

Параметры.

  • source: исходный объект NDArrayView, содержимое которого копируется для this просмотра.

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()

Создает новую NDMask с недавно выделенным хранилищем на том же устройстве, что this и маска и копирует this содержимое маски в только что выделенную маску.


public NDMask Alias()

Создает новую маску NDMask, которая является псевдонимом маски this .


public void CopyFrom(NDMask source)

Копирует содержимое маски source NDMask this . Фигуры маски source и this маски должны совпадать.

Параметры.

  • source: источник NDMask, содержимое которого копируется для this просмотра.

Ось класса

Обозначает ось ..Variable Помимо статических осей, соответствующих каждой оси фигуры переменной, переменные типа Input и любые переменные Output, зависящие от переменной Input, также имеют 2 дополнительных динамических оси, размеры которых известны только в том случае, если переменная привязана к фактическим данным во время вычислений (то есть ось последовательности и ось пакетной обработки, обозначающие ось, по которой выполняется пакетная обработка нескольких последовательностей).

Следующие свойства определяются в классе. Axis


public string Name { get; }

Имя оси.


public bool IsStatic { get; }

Возвращает логическое значение, указывающее, соответствует ли ось статической оси.


public bool IsDynamic { get; }

Возвращает логическое значение, указывающее, соответствует ли ось динамической оси.

Класс Utils


public static void SetMaxNumCPUThreads(int numCPUThreads)

Задает максимальное количество потоков ЦП, используемых любой отдельной операцией вычислений.


public static int GetMaxNumCPUThreads()

Возвращает максимальное количество потоков ЦП, используемых любой отдельной вычислительной операцией.


public static void SetTraceLevel(TraceLevel value)

Задает уровень детализации глобального ведения журнала.


public static TraceLevel GetTraceLevel()

Возвращает текущий уровень детализации журнала.

перечисление VariableKind

Обозначает вид символьного Variable объекта

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

enum DataType

Обозначает тип данных символьных сущностей или фактических данных.

enum DataType { Unknown, Float, Double };

перечисление 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.
};

перечисление TraceLevel

Обозначает уровни детализации ведения журнала.

enum TraceLevel { Error, Warning, Info };