1106 lines
30 KiB
Text
1106 lines
30 KiB
Text
// GENERATED CONTENT - DO NOT EDIT
|
|
// Content was automatically extracted by Reffy into webref
|
|
// (https://github.com/w3c/webref)
|
|
// Source: Web Neural Network API (https://webmachinelearning.github.io/webnn/)
|
|
|
|
interface mixin NavigatorML {
|
|
[SecureContext, SameObject] readonly attribute ML ml;
|
|
};
|
|
Navigator includes NavigatorML;
|
|
WorkerNavigator includes NavigatorML;
|
|
|
|
enum MLPowerPreference {
|
|
"default",
|
|
"high-performance",
|
|
"low-power"
|
|
};
|
|
|
|
dictionary MLContextOptions {
|
|
MLPowerPreference powerPreference = "default";
|
|
};
|
|
|
|
[SecureContext, Exposed=(Window, Worker)]
|
|
interface ML {
|
|
Promise<MLContext> createContext(optional MLContextOptions options = {});
|
|
Promise<MLContext> createContext(GPUDevice gpuDevice);
|
|
};
|
|
|
|
typedef record<USVString, MLTensor> MLNamedTensors;
|
|
|
|
dictionary MLContextLostInfo {
|
|
DOMString message;
|
|
};
|
|
|
|
[SecureContext, Exposed=(Window, Worker)]
|
|
interface MLContext {
|
|
undefined dispatch(MLGraph graph, MLNamedTensors inputs, MLNamedTensors outputs);
|
|
|
|
Promise<MLTensor> createTensor(MLTensorDescriptor descriptor);
|
|
Promise<MLTensor> createConstantTensor(
|
|
MLOperandDescriptor descriptor, AllowSharedBufferSource inputData);
|
|
|
|
Promise<ArrayBuffer> readTensor(MLTensor tensor);
|
|
Promise<undefined> readTensor(MLTensor tensor, AllowSharedBufferSource outputData);
|
|
|
|
undefined writeTensor(MLTensor tensor, AllowSharedBufferSource inputData);
|
|
|
|
MLOpSupportLimits opSupportLimits();
|
|
|
|
undefined destroy();
|
|
|
|
readonly attribute Promise<MLContextLostInfo> lost;
|
|
};
|
|
|
|
dictionary MLOpSupportLimits {
|
|
MLInputOperandLayout preferredInputLayout;
|
|
[EnforceRange] unsigned long long maxTensorByteLength;
|
|
MLDataTypeLimits input;
|
|
MLDataTypeLimits constant;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
typedef sequence<MLOperandDataType> MLDataTypeList;
|
|
|
|
dictionary MLDataTypeLimits {
|
|
MLDataTypeList dataTypes;
|
|
};
|
|
|
|
dictionary MLRankRange {
|
|
unsigned long min;
|
|
unsigned long max;
|
|
};
|
|
|
|
dictionary MLTensorLimits {
|
|
MLDataTypeList dataTypes;
|
|
MLRankRange rankRange;
|
|
};
|
|
|
|
dictionary MLBinarySupportLimits {
|
|
MLTensorLimits a;
|
|
MLTensorLimits b;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
dictionary MLSingleInputSupportLimits {
|
|
MLTensorLimits input;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
[SecureContext, Exposed=(Window, Worker)]
|
|
interface MLGraph {
|
|
undefined destroy();
|
|
};
|
|
|
|
enum MLInputOperandLayout {
|
|
"nchw",
|
|
"nhwc"
|
|
};
|
|
|
|
enum MLOperandDataType {
|
|
"float32",
|
|
"float16",
|
|
"int32",
|
|
"uint32",
|
|
"int64",
|
|
"uint64",
|
|
"int8",
|
|
"uint8"
|
|
};
|
|
|
|
dictionary MLOperandDescriptor {
|
|
required MLOperandDataType dataType;
|
|
required sequence<[EnforceRange] unsigned long> shape;
|
|
};
|
|
|
|
[SecureContext, Exposed=(Window, Worker)]
|
|
interface MLOperand {
|
|
readonly attribute MLOperandDataType dataType;
|
|
readonly attribute FrozenArray<unsigned long> shape;
|
|
};
|
|
|
|
dictionary MLOperatorOptions {
|
|
USVString label = "";
|
|
};
|
|
|
|
typedef (bigint or unrestricted double) MLNumber;
|
|
|
|
dictionary MLTensorDescriptor : MLOperandDescriptor {
|
|
boolean readable = false;
|
|
boolean writable = false;
|
|
};
|
|
|
|
[SecureContext, Exposed=(Window, Worker)]
|
|
interface MLTensor {
|
|
readonly attribute MLOperandDataType dataType;
|
|
readonly attribute FrozenArray<unsigned long> shape;
|
|
readonly attribute boolean readable;
|
|
readonly attribute boolean writable;
|
|
readonly attribute boolean constant;
|
|
|
|
undefined destroy();
|
|
};
|
|
|
|
typedef record<USVString, MLOperand> MLNamedOperands;
|
|
|
|
[SecureContext, Exposed=(Window, Worker)]
|
|
interface MLGraphBuilder {
|
|
// Construct the graph builder from the context.
|
|
constructor(MLContext context);
|
|
|
|
// Create an operand for a graph input.
|
|
MLOperand input(USVString name, MLOperandDescriptor descriptor);
|
|
|
|
// Create an operand for a graph constant.
|
|
MLOperand constant(MLOperandDescriptor descriptor,
|
|
AllowSharedBufferSource buffer);
|
|
|
|
// Create a scalar operand from the specified number of the specified type.
|
|
MLOperand constant(MLOperandDataType type, MLNumber value);
|
|
|
|
// Create an operand from a specified constant tensor.
|
|
MLOperand constant(MLTensor tensor);
|
|
|
|
// Compile the graph up to the specified output operands asynchronously.
|
|
Promise<MLGraph> build(MLNamedOperands outputs);
|
|
};
|
|
|
|
dictionary MLArgMinMaxOptions : MLOperatorOptions {
|
|
boolean keepDimensions = false;
|
|
MLOperandDataType outputDataType = "int32";
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand argMin(MLOperand input, [EnforceRange] unsigned long axis,
|
|
optional MLArgMinMaxOptions options = {});
|
|
MLOperand argMax(MLOperand input, [EnforceRange] unsigned long axis,
|
|
optional MLArgMinMaxOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits argMin;
|
|
MLSingleInputSupportLimits argMax;
|
|
};
|
|
|
|
dictionary MLBatchNormalizationOptions : MLOperatorOptions {
|
|
MLOperand scale;
|
|
MLOperand bias;
|
|
[EnforceRange] unsigned long axis = 1;
|
|
double epsilon = 1e-5;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand batchNormalization(MLOperand input, MLOperand mean, MLOperand variance,
|
|
optional MLBatchNormalizationOptions options = {});
|
|
};
|
|
|
|
dictionary MLBatchNormalizationSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits mean;
|
|
MLTensorLimits variance;
|
|
MLTensorLimits scale;
|
|
MLTensorLimits bias;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLBatchNormalizationSupportLimits batchNormalization;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand cast(MLOperand input,
|
|
MLOperandDataType type,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits cast;
|
|
};
|
|
|
|
dictionary MLClampOptions : MLOperatorOptions {
|
|
MLNumber minValue;
|
|
MLNumber maxValue;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand clamp(MLOperand input, optional MLClampOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits clamp;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand concat(sequence<MLOperand> inputs,
|
|
[EnforceRange] unsigned long axis,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
dictionary MLConcatSupportLimits {
|
|
MLTensorLimits inputs;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLConcatSupportLimits concat;
|
|
};
|
|
|
|
enum MLConv2dFilterOperandLayout {
|
|
"oihw",
|
|
"hwio",
|
|
"ohwi",
|
|
"ihwo"
|
|
};
|
|
|
|
dictionary MLConv2dOptions : MLOperatorOptions {
|
|
sequence<[EnforceRange] unsigned long> padding;
|
|
sequence<[EnforceRange] unsigned long> strides;
|
|
sequence<[EnforceRange] unsigned long> dilations;
|
|
[EnforceRange] unsigned long groups = 1;
|
|
MLInputOperandLayout inputLayout = "nchw";
|
|
MLConv2dFilterOperandLayout filterLayout = "oihw";
|
|
MLOperand bias;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand conv2d(MLOperand input,
|
|
MLOperand filter,
|
|
optional MLConv2dOptions options = {});
|
|
};
|
|
|
|
dictionary MLConv2dSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits filter;
|
|
MLTensorLimits bias;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLConv2dSupportLimits conv2d;
|
|
};
|
|
|
|
enum MLConvTranspose2dFilterOperandLayout {
|
|
"iohw",
|
|
"hwoi",
|
|
"ohwi"
|
|
};
|
|
|
|
dictionary MLConvTranspose2dOptions : MLOperatorOptions {
|
|
sequence<[EnforceRange] unsigned long> padding;
|
|
sequence<[EnforceRange] unsigned long> strides;
|
|
sequence<[EnforceRange] unsigned long> dilations;
|
|
sequence<[EnforceRange] unsigned long> outputPadding;
|
|
sequence<[EnforceRange] unsigned long> outputSizes;
|
|
[EnforceRange] unsigned long groups = 1;
|
|
MLInputOperandLayout inputLayout = "nchw";
|
|
MLConvTranspose2dFilterOperandLayout filterLayout = "iohw";
|
|
MLOperand bias;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand convTranspose2d(MLOperand input, MLOperand filter,
|
|
optional MLConvTranspose2dOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLConv2dSupportLimits convTranspose2d;
|
|
};
|
|
|
|
dictionary MLCumulativeSumOptions : MLOperatorOptions {
|
|
boolean exclusive = false;
|
|
boolean reversed = false;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand cumulativeSum(MLOperand input,
|
|
unsigned long axis,
|
|
optional MLCumulativeSumOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits cumulativeSum;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand add(MLOperand a, MLOperand b, optional MLOperatorOptions options = {});
|
|
MLOperand sub(MLOperand a, MLOperand b, optional MLOperatorOptions options = {});
|
|
MLOperand mul(MLOperand a, MLOperand b, optional MLOperatorOptions options = {});
|
|
MLOperand div(MLOperand a, MLOperand b, optional MLOperatorOptions options = {});
|
|
MLOperand max(MLOperand a, MLOperand b, optional MLOperatorOptions options = {});
|
|
MLOperand min(MLOperand a, MLOperand b, optional MLOperatorOptions options = {});
|
|
MLOperand pow(MLOperand a, MLOperand b, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLBinarySupportLimits add;
|
|
MLBinarySupportLimits sub;
|
|
MLBinarySupportLimits mul;
|
|
MLBinarySupportLimits div;
|
|
MLBinarySupportLimits max;
|
|
MLBinarySupportLimits min;
|
|
MLBinarySupportLimits pow;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand equal(MLOperand a,
|
|
MLOperand b,
|
|
optional MLOperatorOptions options = {});
|
|
MLOperand notEqual(MLOperand a,
|
|
MLOperand b,
|
|
optional MLOperatorOptions options = {});
|
|
MLOperand greater(MLOperand a,
|
|
MLOperand b,
|
|
optional MLOperatorOptions options = {});
|
|
MLOperand greaterOrEqual(MLOperand a,
|
|
MLOperand b,
|
|
optional MLOperatorOptions options = {});
|
|
MLOperand lesser(MLOperand a,
|
|
MLOperand b,
|
|
optional MLOperatorOptions options = {});
|
|
MLOperand lesserOrEqual(MLOperand a,
|
|
MLOperand b,
|
|
optional MLOperatorOptions options = {});
|
|
MLOperand logicalNot(MLOperand a, optional MLOperatorOptions options = {});
|
|
MLOperand logicalAnd(MLOperand a,
|
|
MLOperand b,
|
|
optional MLOperatorOptions options = {});
|
|
MLOperand logicalOr(MLOperand a,
|
|
MLOperand b,
|
|
optional MLOperatorOptions options = {});
|
|
MLOperand logicalXor(MLOperand a,
|
|
MLOperand b,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
dictionary MLLogicalNotSupportLimits {
|
|
MLTensorLimits a;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLBinarySupportLimits equal;
|
|
MLBinarySupportLimits notEqual;
|
|
MLBinarySupportLimits greater;
|
|
MLBinarySupportLimits greaterOrEqual;
|
|
MLBinarySupportLimits lesser;
|
|
MLBinarySupportLimits lesserOrEqual;
|
|
MLLogicalNotSupportLimits logicalNot;
|
|
MLBinarySupportLimits logicalAnd;
|
|
MLBinarySupportLimits logicalOr;
|
|
MLBinarySupportLimits logicalXor;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand abs(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand ceil(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand cos(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand erf(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand exp(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand floor(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand identity(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand log(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand neg(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand reciprocal(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand sin(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand sign(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand sqrt(MLOperand input, optional MLOperatorOptions options = {});
|
|
MLOperand tan(MLOperand input, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits abs;
|
|
MLSingleInputSupportLimits ceil;
|
|
MLSingleInputSupportLimits cos;
|
|
MLSingleInputSupportLimits erf;
|
|
MLSingleInputSupportLimits exp;
|
|
MLSingleInputSupportLimits floor;
|
|
MLSingleInputSupportLimits identity;
|
|
MLSingleInputSupportLimits log;
|
|
MLSingleInputSupportLimits neg;
|
|
MLSingleInputSupportLimits reciprocal;
|
|
MLSingleInputSupportLimits sin;
|
|
MLSingleInputSupportLimits sign;
|
|
MLSingleInputSupportLimits sqrt;
|
|
MLSingleInputSupportLimits tan;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand dequantizeLinear(MLOperand input,
|
|
MLOperand scale,
|
|
MLOperand zeroPoint,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
dictionary MLQuantizeDequantizeLinearSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits scale;
|
|
MLTensorLimits zeroPoint;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLQuantizeDequantizeLinearSupportLimits dequantizeLinear;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand quantizeLinear(MLOperand input,
|
|
MLOperand scale,
|
|
MLOperand zeroPoint,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLQuantizeDequantizeLinearSupportLimits quantizeLinear;
|
|
};
|
|
|
|
dictionary MLEluOptions : MLOperatorOptions {
|
|
double alpha = 1;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand elu(MLOperand input, optional MLEluOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits elu;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand expand(MLOperand input,
|
|
sequence<[EnforceRange] unsigned long> newShape,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits expand;
|
|
};
|
|
|
|
dictionary MLGatherOptions : MLOperatorOptions {
|
|
[EnforceRange] unsigned long axis = 0;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand gather(MLOperand input,
|
|
MLOperand indices,
|
|
optional MLGatherOptions options = {});
|
|
};
|
|
|
|
dictionary MLGatherSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits indices;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLGatherSupportLimits gather;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand gatherElements(MLOperand input,
|
|
MLOperand indices,
|
|
optional MLGatherOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLGatherSupportLimits gatherElements;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand gatherND(MLOperand input,
|
|
MLOperand indices,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLGatherSupportLimits gatherND;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand gelu(MLOperand input, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits gelu;
|
|
};
|
|
|
|
dictionary MLGemmOptions : MLOperatorOptions {
|
|
MLOperand c;
|
|
double alpha = 1.0;
|
|
double beta = 1.0;
|
|
boolean aTranspose = false;
|
|
boolean bTranspose = false;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand gemm(MLOperand a, MLOperand b, optional MLGemmOptions options = {});
|
|
};
|
|
|
|
dictionary MLGemmSupportLimits {
|
|
MLTensorLimits a;
|
|
MLTensorLimits b;
|
|
MLTensorLimits c;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLGemmSupportLimits gemm;
|
|
};
|
|
|
|
enum MLGruWeightLayout {
|
|
"zrn", // update-reset-new gate ordering
|
|
"rzn" // reset-update-new gate ordering
|
|
};
|
|
|
|
enum MLRecurrentNetworkActivation {
|
|
"relu",
|
|
"sigmoid",
|
|
"tanh"
|
|
};
|
|
|
|
enum MLRecurrentNetworkDirection {
|
|
"forward",
|
|
"backward",
|
|
"both"
|
|
};
|
|
|
|
dictionary MLGruOptions : MLOperatorOptions {
|
|
MLOperand bias;
|
|
MLOperand recurrentBias;
|
|
MLOperand initialHiddenState;
|
|
boolean resetAfter = true;
|
|
boolean returnSequence = false;
|
|
MLRecurrentNetworkDirection direction = "forward";
|
|
MLGruWeightLayout layout = "zrn";
|
|
sequence<MLRecurrentNetworkActivation> activations;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
sequence<MLOperand> gru(MLOperand input,
|
|
MLOperand weight,
|
|
MLOperand recurrentWeight,
|
|
[EnforceRange] unsigned long steps,
|
|
[EnforceRange] unsigned long hiddenSize,
|
|
optional MLGruOptions options = {});
|
|
};
|
|
|
|
dictionary MLGruSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits weight;
|
|
MLTensorLimits recurrentWeight;
|
|
MLTensorLimits bias;
|
|
MLTensorLimits recurrentBias;
|
|
MLTensorLimits initialHiddenState;
|
|
MLDataTypeLimits outputs;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLGruSupportLimits gru;
|
|
};
|
|
|
|
dictionary MLGruCellOptions : MLOperatorOptions {
|
|
MLOperand bias;
|
|
MLOperand recurrentBias;
|
|
boolean resetAfter = true;
|
|
MLGruWeightLayout layout = "zrn";
|
|
sequence<MLRecurrentNetworkActivation> activations;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand gruCell(MLOperand input,
|
|
MLOperand weight,
|
|
MLOperand recurrentWeight,
|
|
MLOperand hiddenState,
|
|
[EnforceRange] unsigned long hiddenSize,
|
|
optional MLGruCellOptions options = {});
|
|
};
|
|
|
|
dictionary MLGruCellSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits weight;
|
|
MLTensorLimits recurrentWeight;
|
|
MLTensorLimits hiddenState;
|
|
MLTensorLimits bias;
|
|
MLTensorLimits recurrentBias;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLGruCellSupportLimits gruCell;
|
|
};
|
|
|
|
dictionary MLHardSigmoidOptions : MLOperatorOptions {
|
|
double alpha = 0.2;
|
|
double beta = 0.5;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand hardSigmoid(MLOperand input, optional MLHardSigmoidOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits hardSigmoid;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand hardSwish(MLOperand input, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits hardSwish;
|
|
};
|
|
|
|
dictionary MLInstanceNormalizationOptions : MLOperatorOptions {
|
|
MLOperand scale;
|
|
MLOperand bias;
|
|
double epsilon = 1e-5;
|
|
MLInputOperandLayout layout = "nchw";
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand instanceNormalization(MLOperand input,
|
|
optional MLInstanceNormalizationOptions options = {});
|
|
};
|
|
|
|
dictionary MLNormalizationSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits scale;
|
|
MLTensorLimits bias;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLNormalizationSupportLimits instanceNormalization;
|
|
};
|
|
|
|
dictionary MLLayerNormalizationOptions : MLOperatorOptions {
|
|
MLOperand scale;
|
|
MLOperand bias;
|
|
sequence<[EnforceRange] unsigned long> axes;
|
|
double epsilon = 1e-5;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand layerNormalization(MLOperand input,
|
|
optional MLLayerNormalizationOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLNormalizationSupportLimits layerNormalization;
|
|
};
|
|
|
|
dictionary MLLeakyReluOptions : MLOperatorOptions {
|
|
double alpha = 0.01;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand leakyRelu(MLOperand input, optional MLLeakyReluOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits leakyRelu;
|
|
};
|
|
|
|
dictionary MLLinearOptions : MLOperatorOptions {
|
|
double alpha = 1;
|
|
double beta = 0;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand linear(MLOperand input, optional MLLinearOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits linear;
|
|
};
|
|
|
|
enum MLLstmWeightLayout {
|
|
"iofg", // input-output-forget-cell gate ordering
|
|
"ifgo" // input-forget-cell-output gate ordering
|
|
};
|
|
|
|
dictionary MLLstmOptions : MLOperatorOptions {
|
|
MLOperand bias;
|
|
MLOperand recurrentBias;
|
|
MLOperand peepholeWeight;
|
|
MLOperand initialHiddenState;
|
|
MLOperand initialCellState;
|
|
boolean returnSequence = false;
|
|
MLRecurrentNetworkDirection direction = "forward";
|
|
MLLstmWeightLayout layout = "iofg";
|
|
sequence<MLRecurrentNetworkActivation> activations;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
sequence<MLOperand> lstm(MLOperand input,
|
|
MLOperand weight,
|
|
MLOperand recurrentWeight,
|
|
[EnforceRange] unsigned long steps,
|
|
[EnforceRange] unsigned long hiddenSize,
|
|
optional MLLstmOptions options = {});
|
|
};
|
|
|
|
dictionary MLLstmSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits weight;
|
|
MLTensorLimits recurrentWeight;
|
|
MLTensorLimits bias;
|
|
MLTensorLimits recurrentBias;
|
|
MLTensorLimits peepholeWeight;
|
|
MLTensorLimits initialHiddenState;
|
|
MLTensorLimits initialCellState;
|
|
MLDataTypeLimits outputs;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLLstmSupportLimits lstm;
|
|
};
|
|
|
|
dictionary MLLstmCellOptions : MLOperatorOptions {
|
|
MLOperand bias;
|
|
MLOperand recurrentBias;
|
|
MLOperand peepholeWeight;
|
|
MLLstmWeightLayout layout = "iofg";
|
|
sequence<MLRecurrentNetworkActivation> activations;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
sequence<MLOperand> lstmCell(MLOperand input,
|
|
MLOperand weight,
|
|
MLOperand recurrentWeight,
|
|
MLOperand hiddenState,
|
|
MLOperand cellState,
|
|
[EnforceRange] unsigned long hiddenSize,
|
|
optional MLLstmCellOptions options = {});
|
|
};
|
|
|
|
dictionary MLLstmCellSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits weight;
|
|
MLTensorLimits recurrentWeight;
|
|
MLTensorLimits hiddenState;
|
|
MLTensorLimits cellState;
|
|
MLTensorLimits bias;
|
|
MLTensorLimits recurrentBias;
|
|
MLTensorLimits peepholeWeight;
|
|
MLDataTypeLimits outputs;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLLstmCellSupportLimits lstmCell;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand matmul(MLOperand a, MLOperand b, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLBinarySupportLimits matmul;
|
|
};
|
|
|
|
enum MLPaddingMode {
|
|
"constant",
|
|
"edge",
|
|
"reflection"
|
|
};
|
|
|
|
dictionary MLPadOptions : MLOperatorOptions {
|
|
MLPaddingMode mode = "constant";
|
|
MLNumber value = 0;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand pad(MLOperand input,
|
|
sequence<[EnforceRange] unsigned long> beginningPadding,
|
|
sequence<[EnforceRange] unsigned long> endingPadding,
|
|
optional MLPadOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits pad;
|
|
};
|
|
|
|
enum MLRoundingType {
|
|
"floor",
|
|
"ceil"
|
|
};
|
|
|
|
dictionary MLPool2dOptions : MLOperatorOptions {
|
|
sequence<[EnforceRange] unsigned long> windowDimensions;
|
|
sequence<[EnforceRange] unsigned long> padding;
|
|
sequence<[EnforceRange] unsigned long> strides;
|
|
sequence<[EnforceRange] unsigned long> dilations;
|
|
MLInputOperandLayout layout = "nchw";
|
|
MLRoundingType roundingType = "floor";
|
|
sequence<[EnforceRange] unsigned long> outputSizes;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand averagePool2d(MLOperand input, optional MLPool2dOptions options = {});
|
|
MLOperand l2Pool2d(MLOperand input, optional MLPool2dOptions options = {});
|
|
MLOperand maxPool2d(MLOperand input, optional MLPool2dOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits averagePool2d;
|
|
MLSingleInputSupportLimits l2Pool2d;
|
|
MLSingleInputSupportLimits maxPool2d;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand prelu(MLOperand input,
|
|
MLOperand slope,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
dictionary MLPreluSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits slope;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLPreluSupportLimits prelu;
|
|
};
|
|
|
|
dictionary MLReduceOptions : MLOperatorOptions {
|
|
sequence<[EnforceRange] unsigned long> axes;
|
|
boolean keepDimensions = false;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand reduceL1(MLOperand input, optional MLReduceOptions options = {});
|
|
MLOperand reduceL2(MLOperand input, optional MLReduceOptions options = {});
|
|
MLOperand reduceLogSum(MLOperand input, optional MLReduceOptions options = {});
|
|
MLOperand reduceLogSumExp(MLOperand input, optional MLReduceOptions options = {});
|
|
MLOperand reduceMax(MLOperand input, optional MLReduceOptions options = {});
|
|
MLOperand reduceMean(MLOperand input, optional MLReduceOptions options = {});
|
|
MLOperand reduceMin(MLOperand input, optional MLReduceOptions options = {});
|
|
MLOperand reduceProduct(MLOperand input, optional MLReduceOptions options = {});
|
|
MLOperand reduceSum(MLOperand input, optional MLReduceOptions options = {});
|
|
MLOperand reduceSumSquare(MLOperand input, optional MLReduceOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits reduceL1;
|
|
MLSingleInputSupportLimits reduceL2;
|
|
MLSingleInputSupportLimits reduceLogSum;
|
|
MLSingleInputSupportLimits reduceLogSumExp;
|
|
MLSingleInputSupportLimits reduceMax;
|
|
MLSingleInputSupportLimits reduceMean;
|
|
MLSingleInputSupportLimits reduceMin;
|
|
MLSingleInputSupportLimits reduceProduct;
|
|
MLSingleInputSupportLimits reduceSum;
|
|
MLSingleInputSupportLimits reduceSumSquare;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand relu(MLOperand input, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits relu;
|
|
};
|
|
|
|
enum MLInterpolationMode {
|
|
"nearest-neighbor",
|
|
"linear"
|
|
};
|
|
|
|
dictionary MLResample2dOptions : MLOperatorOptions {
|
|
MLInterpolationMode mode = "nearest-neighbor";
|
|
sequence<float> scales;
|
|
sequence<[EnforceRange] unsigned long> sizes;
|
|
sequence<[EnforceRange] unsigned long> axes;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand resample2d(MLOperand input, optional MLResample2dOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits resample2d;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand reshape(MLOperand input,
|
|
sequence<[EnforceRange] unsigned long> newShape,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits reshape;
|
|
};
|
|
|
|
dictionary MLReverseOptions : MLOperatorOptions {
|
|
sequence<[EnforceRange] unsigned long> axes;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand reverse(MLOperand input, optional MLReverseOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits reverse;
|
|
};
|
|
|
|
dictionary MLScatterOptions : MLOperatorOptions {
|
|
[EnforceRange] unsigned long axis = 0;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand scatterElements(MLOperand input,
|
|
MLOperand indices,
|
|
MLOperand updates,
|
|
optional MLScatterOptions options = {});
|
|
};
|
|
|
|
dictionary MLScatterSupportLimits {
|
|
MLTensorLimits input;
|
|
MLTensorLimits indices;
|
|
MLTensorLimits updates;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLScatterSupportLimits scatterElements;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand scatterND(MLOperand input,
|
|
MLOperand indices,
|
|
MLOperand updates,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLScatterSupportLimits scatterND;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand sigmoid(MLOperand input, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits sigmoid;
|
|
};
|
|
|
|
dictionary MLSliceOptions : MLOperatorOptions {
|
|
sequence<[EnforceRange] unsigned long> strides;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand slice(MLOperand input,
|
|
sequence<[EnforceRange] unsigned long> starts,
|
|
sequence<[EnforceRange] unsigned long> sizes,
|
|
optional MLSliceOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits slice;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand softmax(MLOperand input,
|
|
[EnforceRange] unsigned long axis,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits softmax;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand softplus(MLOperand input, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits softplus;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand softsign(MLOperand input, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits softsign;
|
|
};
|
|
|
|
dictionary MLSplitOptions : MLOperatorOptions {
|
|
[EnforceRange] unsigned long axis = 0;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
sequence<MLOperand> split(
|
|
MLOperand input,
|
|
([EnforceRange] unsigned long or sequence<[EnforceRange] unsigned long>) splits,
|
|
optional MLSplitOptions options = {});
|
|
};
|
|
|
|
dictionary MLSplitSupportLimits {
|
|
MLTensorLimits input;
|
|
MLDataTypeLimits outputs;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSplitSupportLimits split;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand tanh(MLOperand input, optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits tanh;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand tile(MLOperand input,
|
|
sequence<unsigned long> repetitions,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits tile;
|
|
};
|
|
|
|
dictionary MLTransposeOptions : MLOperatorOptions {
|
|
sequence<[EnforceRange] unsigned long> permutation;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand transpose(MLOperand input, optional MLTransposeOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits transpose;
|
|
};
|
|
|
|
dictionary MLTriangularOptions : MLOperatorOptions {
|
|
boolean upper = true;
|
|
[EnforceRange] long diagonal = 0;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand triangular(MLOperand input, optional MLTriangularOptions options = {});
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLSingleInputSupportLimits triangular;
|
|
};
|
|
|
|
partial interface MLGraphBuilder {
|
|
MLOperand where(MLOperand condition,
|
|
MLOperand trueValue,
|
|
MLOperand falseValue,
|
|
optional MLOperatorOptions options = {});
|
|
};
|
|
|
|
dictionary MLWhereSupportLimits {
|
|
MLTensorLimits condition;
|
|
MLTensorLimits trueValue;
|
|
MLTensorLimits falseValue;
|
|
MLDataTypeLimits output;
|
|
};
|
|
|
|
partial dictionary MLOpSupportLimits {
|
|
MLWhereSupportLimits where;
|
|
};
|