From 5feb3c0f19ecf30ad492324cebc1a46a00c60e1f Mon Sep 17 00:00:00 2001 From: Dwayne Robinson Date: Fri, 27 Mar 2020 02:42:09 -0700 Subject: [PATCH] Delete litter backup files. --- .../External/DirectMLHelpers/ApiTraits.h.bak | 1936 ----------------- .../DirectMLHelpers/DirectMLSchema.h.bak | 1514 ------------- .../GeneratedSchemaHelpers.h.bak | 1388 ------------ .../GeneratedSchemaTypes.h.bak | 105 - 4 files changed, 4943 deletions(-) delete mode 100644 onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/ApiTraits.h.bak delete mode 100644 onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/DirectMLSchema.h.bak delete mode 100644 onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/GeneratedSchemaHelpers.h.bak delete mode 100644 onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/GeneratedSchemaTypes.h.bak diff --git a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/ApiTraits.h.bak b/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/ApiTraits.h.bak deleted file mode 100644 index d75afeb4b6..0000000000 --- a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/ApiTraits.h.bak +++ /dev/null @@ -1,1936 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -#pragma once - -namespace ApiTraits -{ -template -struct EnumTraits -{ -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 12; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 2; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 119; - static constexpr size_t ActivationFunctionCount = 19; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 3; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 12; - static constexpr DML_REDUCE_FUNCTION Invalid = static_cast(ValueCount); -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 2; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 2; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 2; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 3; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 2; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 3; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 2; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 2; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 3; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 2; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 2; -}; - -template <> -struct EnumTraits -{ - static constexpr auto ValueCount = 3; -}; - -template -constexpr auto EnumValueCount = EnumTraits::ValueCount; - -template -constexpr bool IsValidEnumValue(T value) -{ - return (std::make_unsigned_t(value) < std::make_unsigned_t(EnumValueCount)); -} - -template -struct FlagTraits -{ -}; - -template <> -struct FlagTraits -{ - static constexpr auto ValidMask = DML_TENSOR_FLAG_OWNED_BY_DML; -}; - -template <> -struct FlagTraits -{ - static constexpr auto ValidMask = DML_EXECUTION_FLAG_ALLOW_HALF_PRECISION_COMPUTATION | DML_EXECUTION_FLAG_DISABLE_META_COMMANDS | DML_EXECUTION_FLAG_DESCRIPTORS_VOLATILE; -}; - -template <> -struct FlagTraits -{ - static constexpr auto ValidMask = DML_CREATE_DEVICE_FLAG_DEBUG; -}; - -template -constexpr auto FlagsValidMask = FlagTraits::ValidMask; - -template -constexpr bool IsValidFlags(T value) -{ - return (value & ~FlagsValidMask) == 0; -} - -template -struct TensorDescTraits -{ -}; - -template <> -struct TensorDescTraits -{ - static constexpr DML_TENSOR_TYPE Type = DML_TENSOR_TYPE_BUFFER; -}; - - -template -struct OperatorDescTraits -{ -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_IDENTITY; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ABS; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ACOS; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ADD; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ASIN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ATAN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_CEIL; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_CLIP; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_COS; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_DIVIDE; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_EXP; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_FLOOR; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_LOG; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_MAX; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_MEAN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_MIN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_MULTIPLY; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_POW; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_RECIP; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_SIN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_SQRT; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_SUBTRACT; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_TAN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_THRESHOLD; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_CONVOLUTION; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_GEMM; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_REDUCE; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_AVERAGE_POOLING; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_LP_POOLING; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_MAX_POOLING; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_MAX_POOLING1; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ROI_POOLING; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_SLICE; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_CAST; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_SPLIT; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_JOIN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_PADDING; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_VALUE_SCALE_2D; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_UPSAMPLE_2D; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_GATHER; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_SPACE_TO_DEPTH; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_DEPTH_TO_SPACE; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_TILE; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_TOP_K; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_BATCH_NORMALIZATION; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_LP_NORMALIZATION; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_RNN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_LSTM; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_GRU; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_SIGN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_IS_NAN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ERF; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_SINH; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_COSH; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_TANH; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ASINH; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ACOSH; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ATANH; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_IF; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ADD1; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_MAX_UNPOOLING; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_DIAGONAL_MATRIX; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_SCATTER; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ONE_HOT; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_RESAMPLE; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_ROUND; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_IS_INFINITY; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_FILL_VALUE_CONSTANT; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_FILL_VALUE_SEQUENCE; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_CUMULATIVE_SUMMATION; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_REVERSE_SUBSEQUENCES; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_GATHER_ELEMENTS; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_GATHER_ND; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_SCATTER_ND; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_MAX_POOLING2; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_SLICE1; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_TOP_K1; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_DEPTH_TO_SPACE1; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_SPACE_TO_DEPTH1; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_QUANTIZED_LINEAR_MATRIX_MULTIPLY; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_QUANTIZED_LINEAR_CONVOLUTION; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_DYNAMIC_QUANTIZE_LINEAR; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_ELU; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_HARDMAX; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_HARD_SIGMOID; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_IDENTITY; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_LEAKY_RELU; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_LINEAR; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_LOG_SOFTMAX; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_RELU; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_SCALED_ELU; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_SCALED_TANH; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_SIGMOID; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_SOFTMAX; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_SOFTPLUS; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_SOFTSIGN; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_TANH; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU; -}; - -template <> -struct OperatorDescTraits -{ - static constexpr DML_OPERATOR_TYPE Type = DML_OPERATOR_ACTIVATION_SHRINK; -}; - - -template -struct OperatorTypeTraits -{ -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_IDENTITY> -{ - using DescType = DML_ELEMENT_WISE_IDENTITY_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ABS> -{ - using DescType = DML_ELEMENT_WISE_ABS_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ACOS> -{ - using DescType = DML_ELEMENT_WISE_ACOS_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ADD> -{ - using DescType = DML_ELEMENT_WISE_ADD_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ASIN> -{ - using DescType = DML_ELEMENT_WISE_ASIN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ATAN> -{ - using DescType = DML_ELEMENT_WISE_ATAN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_CEIL> -{ - using DescType = DML_ELEMENT_WISE_CEIL_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_CLIP> -{ - using DescType = DML_ELEMENT_WISE_CLIP_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_COS> -{ - using DescType = DML_ELEMENT_WISE_COS_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_DIVIDE> -{ - using DescType = DML_ELEMENT_WISE_DIVIDE_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_EXP> -{ - using DescType = DML_ELEMENT_WISE_EXP_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_FLOOR> -{ - using DescType = DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_LOG> -{ - using DescType = DML_ELEMENT_WISE_LOG_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND> -{ - using DescType = DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS> -{ - using DescType = DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN> -{ - using DescType = DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN> -{ - using DescType = DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT> -{ - using DescType = DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR> -{ - using DescType = DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR> -{ - using DescType = DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_MAX> -{ - using DescType = DML_ELEMENT_WISE_MAX_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_MEAN> -{ - using DescType = DML_ELEMENT_WISE_MEAN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_MIN> -{ - using DescType = DML_ELEMENT_WISE_MIN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_MULTIPLY> -{ - using DescType = DML_ELEMENT_WISE_MULTIPLY_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_POW> -{ - using DescType = DML_ELEMENT_WISE_POW_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW> -{ - using DescType = DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_RECIP> -{ - using DescType = DML_ELEMENT_WISE_RECIP_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_SIN> -{ - using DescType = DML_ELEMENT_WISE_SIN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_SQRT> -{ - using DescType = DML_ELEMENT_WISE_SQRT_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_SUBTRACT> -{ - using DescType = DML_ELEMENT_WISE_SUBTRACT_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_TAN> -{ - using DescType = DML_ELEMENT_WISE_TAN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_THRESHOLD> -{ - using DescType = DML_ELEMENT_WISE_THRESHOLD_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR> -{ - using DescType = DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR> -{ - using DescType = DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_CONVOLUTION> -{ - using DescType = DML_CONVOLUTION_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_GEMM> -{ - using DescType = DML_GEMM_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_REDUCE> -{ - using DescType = DML_REDUCE_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_AVERAGE_POOLING> -{ - using DescType = DML_AVERAGE_POOLING_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_LP_POOLING> -{ - using DescType = DML_LP_POOLING_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_MAX_POOLING> -{ - using DescType = DML_MAX_POOLING_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_MAX_POOLING1> -{ - using DescType = DML_MAX_POOLING1_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ROI_POOLING> -{ - using DescType = DML_ROI_POOLING_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_SLICE> -{ - using DescType = DML_SLICE_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_CAST> -{ - using DescType = DML_CAST_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_SPLIT> -{ - using DescType = DML_SPLIT_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_JOIN> -{ - using DescType = DML_JOIN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_PADDING> -{ - using DescType = DML_PADDING_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_VALUE_SCALE_2D> -{ - using DescType = DML_VALUE_SCALE_2D_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_UPSAMPLE_2D> -{ - using DescType = DML_UPSAMPLE_2D_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_GATHER> -{ - using DescType = DML_GATHER_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_SPACE_TO_DEPTH> -{ - using DescType = DML_SPACE_TO_DEPTH_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_DEPTH_TO_SPACE> -{ - using DescType = DML_DEPTH_TO_SPACE_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_TILE> -{ - using DescType = DML_TILE_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_TOP_K> -{ - using DescType = DML_TOP_K_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_BATCH_NORMALIZATION> -{ - using DescType = DML_BATCH_NORMALIZATION_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION> -{ - using DescType = DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION> -{ - using DescType = DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_LP_NORMALIZATION> -{ - using DescType = DML_LP_NORMALIZATION_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_RNN> -{ - using DescType = DML_RNN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_LSTM> -{ - using DescType = DML_LSTM_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_GRU> -{ - using DescType = DML_GRU_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_SIGN> -{ - using DescType = DML_ELEMENT_WISE_SIGN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_IS_NAN> -{ - using DescType = DML_ELEMENT_WISE_IS_NAN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ERF> -{ - using DescType = DML_ELEMENT_WISE_ERF_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_SINH> -{ - using DescType = DML_ELEMENT_WISE_SINH_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_COSH> -{ - using DescType = DML_ELEMENT_WISE_COSH_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_TANH> -{ - using DescType = DML_ELEMENT_WISE_TANH_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ASINH> -{ - using DescType = DML_ELEMENT_WISE_ASINH_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ACOSH> -{ - using DescType = DML_ELEMENT_WISE_ACOSH_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ATANH> -{ - using DescType = DML_ELEMENT_WISE_ATANH_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_IF> -{ - using DescType = DML_ELEMENT_WISE_IF_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ADD1> -{ - using DescType = DML_ELEMENT_WISE_ADD1_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_MAX_UNPOOLING> -{ - using DescType = DML_MAX_UNPOOLING_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_DIAGONAL_MATRIX> -{ - using DescType = DML_DIAGONAL_MATRIX_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_SCATTER> -{ - using DescType = DML_SCATTER_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ONE_HOT> -{ - using DescType = DML_ONE_HOT_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_RESAMPLE> -{ - using DescType = DML_RESAMPLE_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT> -{ - using DescType = DML_ELEMENT_WISE_BIT_SHIFT_LEFT_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT> -{ - using DescType = DML_ELEMENT_WISE_BIT_SHIFT_RIGHT_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_ROUND> -{ - using DescType = DML_ELEMENT_WISE_ROUND_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_IS_INFINITY> -{ - using DescType = DML_ELEMENT_WISE_IS_INFINITY_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE> -{ - using DescType = DML_ELEMENT_WISE_MODULUS_TRUNCATE_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR> -{ - using DescType = DML_ELEMENT_WISE_MODULUS_FLOOR_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_FILL_VALUE_CONSTANT> -{ - using DescType = DML_FILL_VALUE_CONSTANT_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_FILL_VALUE_SEQUENCE> -{ - using DescType = DML_FILL_VALUE_SEQUENCE_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_CUMULATIVE_SUMMATION> -{ - using DescType = DML_CUMULATIVE_SUMMATION_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_REVERSE_SUBSEQUENCES> -{ - using DescType = DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_GATHER_ELEMENTS> -{ - using DescType = DML_GATHER_ELEMENTS_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_GATHER_ND> -{ - using DescType = DML_GATHER_ND_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_SCATTER_ND> -{ - using DescType = DML_SCATTER_ND_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_MAX_POOLING2> -{ - using DescType = DML_MAX_POOLING2_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_SLICE1> -{ - using DescType = DML_SLICE1_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_TOP_K1> -{ - using DescType = DML_TOP_K1_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_DEPTH_TO_SPACE1> -{ - using DescType = DML_DEPTH_TO_SPACE1_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_SPACE_TO_DEPTH1> -{ - using DescType = DML_SPACE_TO_DEPTH1_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1> -{ - using DescType = DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_ELU> -{ - using DescType = DML_ACTIVATION_ELU_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_HARDMAX> -{ - using DescType = DML_ACTIVATION_HARDMAX_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_HARD_SIGMOID> -{ - using DescType = DML_ACTIVATION_HARD_SIGMOID_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_IDENTITY> -{ - using DescType = DML_ACTIVATION_IDENTITY_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_LEAKY_RELU> -{ - using DescType = DML_ACTIVATION_LEAKY_RELU_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_LINEAR> -{ - using DescType = DML_ACTIVATION_LINEAR_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_LOG_SOFTMAX> -{ - using DescType = DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU> -{ - using DescType = DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS> -{ - using DescType = DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_RELU> -{ - using DescType = DML_ACTIVATION_RELU_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_SCALED_ELU> -{ - using DescType = DML_ACTIVATION_SCALED_ELU_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_SCALED_TANH> -{ - using DescType = DML_ACTIVATION_SCALED_TANH_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_SIGMOID> -{ - using DescType = DML_ACTIVATION_SIGMOID_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_SOFTMAX> -{ - using DescType = DML_ACTIVATION_SOFTMAX_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_SOFTPLUS> -{ - using DescType = DML_ACTIVATION_SOFTPLUS_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_SOFTSIGN> -{ - using DescType = DML_ACTIVATION_SOFTSIGN_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_TANH> -{ - using DescType = DML_ACTIVATION_TANH_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU> -{ - using DescType = DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_DESC; -}; - -template <> -struct OperatorTypeTraits<(DML_OPERATOR_TYPE)DML_OPERATOR_ACTIVATION_SHRINK> -{ - using DescType = DML_ACTIVATION_SHRINK_OPERATOR_DESC; -}; - - -// Calls a visitor functor, supplying an empty operator desc corresponding to the given DML_OPERATOR_TYPE as -// the first argument. -// -// For example: -// Visit(DML_OPERATOR_ELEMENT_WISE_IDENTITY, [](auto tag) { -// using T = decltype(tag); // T is one of the DML_*_OPERATOR_DESC structs -// }); -// -template -auto OperatorTypeVisitor(DML_OPERATOR_TYPE type, Visitor&& visitor, Ts&&... args) -{ - switch (static_cast(type)) - { - case DML_OPERATOR_ELEMENT_WISE_IDENTITY: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_IDENTITY_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ABS: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ABS_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ACOS: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ACOS_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ADD: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ADD_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ASIN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ASIN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ATAN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ATAN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_CEIL: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_CEIL_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_CLIP: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_CLIP_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_COS: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_COS_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_DIVIDE: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_DIVIDE_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_EXP: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_EXP_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_FLOOR: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_LOG: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_LOG_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_MAX: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_MAX_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_MEAN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_MEAN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_MIN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_MIN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_MULTIPLY: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_MULTIPLY_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_POW: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_POW_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_RECIP: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_RECIP_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_SIN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_SIN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_SQRT: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_SQRT_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_SUBTRACT: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_SUBTRACT_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_TAN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_TAN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_THRESHOLD: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_THRESHOLD_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_CONVOLUTION: - return std::invoke(std::forward(visitor), DML_CONVOLUTION_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_GEMM: - return std::invoke(std::forward(visitor), DML_GEMM_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_REDUCE: - return std::invoke(std::forward(visitor), DML_REDUCE_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_AVERAGE_POOLING: - return std::invoke(std::forward(visitor), DML_AVERAGE_POOLING_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_LP_POOLING: - return std::invoke(std::forward(visitor), DML_LP_POOLING_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_MAX_POOLING: - return std::invoke(std::forward(visitor), DML_MAX_POOLING_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_MAX_POOLING1: - return std::invoke(std::forward(visitor), DML_MAX_POOLING1_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ROI_POOLING: - return std::invoke(std::forward(visitor), DML_ROI_POOLING_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_SLICE: - return std::invoke(std::forward(visitor), DML_SLICE_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_CAST: - return std::invoke(std::forward(visitor), DML_CAST_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_SPLIT: - return std::invoke(std::forward(visitor), DML_SPLIT_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_JOIN: - return std::invoke(std::forward(visitor), DML_JOIN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_PADDING: - return std::invoke(std::forward(visitor), DML_PADDING_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_VALUE_SCALE_2D: - return std::invoke(std::forward(visitor), DML_VALUE_SCALE_2D_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_UPSAMPLE_2D: - return std::invoke(std::forward(visitor), DML_UPSAMPLE_2D_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_GATHER: - return std::invoke(std::forward(visitor), DML_GATHER_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_SPACE_TO_DEPTH: - return std::invoke(std::forward(visitor), DML_SPACE_TO_DEPTH_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_DEPTH_TO_SPACE: - return std::invoke(std::forward(visitor), DML_DEPTH_TO_SPACE_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_TILE: - return std::invoke(std::forward(visitor), DML_TILE_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_TOP_K: - return std::invoke(std::forward(visitor), DML_TOP_K_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_BATCH_NORMALIZATION: - return std::invoke(std::forward(visitor), DML_BATCH_NORMALIZATION_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION: - return std::invoke(std::forward(visitor), DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION: - return std::invoke(std::forward(visitor), DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_LP_NORMALIZATION: - return std::invoke(std::forward(visitor), DML_LP_NORMALIZATION_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_RNN: - return std::invoke(std::forward(visitor), DML_RNN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_LSTM: - return std::invoke(std::forward(visitor), DML_LSTM_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_GRU: - return std::invoke(std::forward(visitor), DML_GRU_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_SIGN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_SIGN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_IS_NAN: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_IS_NAN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ERF: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ERF_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_SINH: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_SINH_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_COSH: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_COSH_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_TANH: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_TANH_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ASINH: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ASINH_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ACOSH: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ACOSH_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ATANH: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ATANH_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_IF: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_IF_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ADD1: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ADD1_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_MAX_UNPOOLING: - return std::invoke(std::forward(visitor), DML_MAX_UNPOOLING_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_DIAGONAL_MATRIX: - return std::invoke(std::forward(visitor), DML_DIAGONAL_MATRIX_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_SCATTER: - return std::invoke(std::forward(visitor), DML_SCATTER_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ONE_HOT: - return std::invoke(std::forward(visitor), DML_ONE_HOT_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_RESAMPLE: - return std::invoke(std::forward(visitor), DML_RESAMPLE_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_BIT_SHIFT_LEFT_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_BIT_SHIFT_RIGHT_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_ROUND: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_ROUND_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_IS_INFINITY: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_IS_INFINITY_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_MODULUS_TRUNCATE_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR: - return std::invoke(std::forward(visitor), DML_ELEMENT_WISE_MODULUS_FLOOR_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_FILL_VALUE_CONSTANT: - return std::invoke(std::forward(visitor), DML_FILL_VALUE_CONSTANT_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_FILL_VALUE_SEQUENCE: - return std::invoke(std::forward(visitor), DML_FILL_VALUE_SEQUENCE_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_CUMULATIVE_SUMMATION: - return std::invoke(std::forward(visitor), DML_CUMULATIVE_SUMMATION_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_REVERSE_SUBSEQUENCES: - return std::invoke(std::forward(visitor), DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_GATHER_ELEMENTS: - return std::invoke(std::forward(visitor), DML_GATHER_ELEMENTS_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_GATHER_ND: - return std::invoke(std::forward(visitor), DML_GATHER_ND_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_SCATTER_ND: - return std::invoke(std::forward(visitor), DML_SCATTER_ND_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_MAX_POOLING2: - return std::invoke(std::forward(visitor), DML_MAX_POOLING2_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_SLICE1: - return std::invoke(std::forward(visitor), DML_SLICE1_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_TOP_K1: - return std::invoke(std::forward(visitor), DML_TOP_K1_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_DEPTH_TO_SPACE1: - return std::invoke(std::forward(visitor), DML_DEPTH_TO_SPACE1_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_SPACE_TO_DEPTH1: - return std::invoke(std::forward(visitor), DML_SPACE_TO_DEPTH1_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1: - return std::invoke(std::forward(visitor), DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_ELU: - return std::invoke(std::forward(visitor), DML_ACTIVATION_ELU_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_HARDMAX: - return std::invoke(std::forward(visitor), DML_ACTIVATION_HARDMAX_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_HARD_SIGMOID: - return std::invoke(std::forward(visitor), DML_ACTIVATION_HARD_SIGMOID_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_IDENTITY: - return std::invoke(std::forward(visitor), DML_ACTIVATION_IDENTITY_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_LEAKY_RELU: - return std::invoke(std::forward(visitor), DML_ACTIVATION_LEAKY_RELU_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_LINEAR: - return std::invoke(std::forward(visitor), DML_ACTIVATION_LINEAR_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_LOG_SOFTMAX: - return std::invoke(std::forward(visitor), DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU: - return std::invoke(std::forward(visitor), DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS: - return std::invoke(std::forward(visitor), DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_RELU: - return std::invoke(std::forward(visitor), DML_ACTIVATION_RELU_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_SCALED_ELU: - return std::invoke(std::forward(visitor), DML_ACTIVATION_SCALED_ELU_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_SCALED_TANH: - return std::invoke(std::forward(visitor), DML_ACTIVATION_SCALED_TANH_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_SIGMOID: - return std::invoke(std::forward(visitor), DML_ACTIVATION_SIGMOID_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_SOFTMAX: - return std::invoke(std::forward(visitor), DML_ACTIVATION_SOFTMAX_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_SOFTPLUS: - return std::invoke(std::forward(visitor), DML_ACTIVATION_SOFTPLUS_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_SOFTSIGN: - return std::invoke(std::forward(visitor), DML_ACTIVATION_SOFTSIGN_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_TANH: - return std::invoke(std::forward(visitor), DML_ACTIVATION_TANH_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU: - return std::invoke(std::forward(visitor), DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_DESC{}, std::forward(args)...); - case DML_OPERATOR_ACTIVATION_SHRINK: - return std::invoke(std::forward(visitor), DML_ACTIVATION_SHRINK_OPERATOR_DESC{}, std::forward(args)...); - - default: - THROW_HR(E_INVALIDARG); - } -} - - -inline gsl::czstring ToString(DML_OPERATOR_TYPE value) -{ - switch (value) - { - case DML_OPERATOR_INVALID: return "DML_OPERATOR_INVALID"; - case DML_OPERATOR_ELEMENT_WISE_IDENTITY: return "DML_OPERATOR_ELEMENT_WISE_IDENTITY"; - case DML_OPERATOR_ELEMENT_WISE_ABS: return "DML_OPERATOR_ELEMENT_WISE_ABS"; - case DML_OPERATOR_ELEMENT_WISE_ACOS: return "DML_OPERATOR_ELEMENT_WISE_ACOS"; - case DML_OPERATOR_ELEMENT_WISE_ADD: return "DML_OPERATOR_ELEMENT_WISE_ADD"; - case DML_OPERATOR_ELEMENT_WISE_ASIN: return "DML_OPERATOR_ELEMENT_WISE_ASIN"; - case DML_OPERATOR_ELEMENT_WISE_ATAN: return "DML_OPERATOR_ELEMENT_WISE_ATAN"; - case DML_OPERATOR_ELEMENT_WISE_CEIL: return "DML_OPERATOR_ELEMENT_WISE_CEIL"; - case DML_OPERATOR_ELEMENT_WISE_CLIP: return "DML_OPERATOR_ELEMENT_WISE_CLIP"; - case DML_OPERATOR_ELEMENT_WISE_COS: return "DML_OPERATOR_ELEMENT_WISE_COS"; - case DML_OPERATOR_ELEMENT_WISE_DIVIDE: return "DML_OPERATOR_ELEMENT_WISE_DIVIDE"; - case DML_OPERATOR_ELEMENT_WISE_EXP: return "DML_OPERATOR_ELEMENT_WISE_EXP"; - case DML_OPERATOR_ELEMENT_WISE_FLOOR: return "DML_OPERATOR_ELEMENT_WISE_FLOOR"; - case DML_OPERATOR_ELEMENT_WISE_LOG: return "DML_OPERATOR_ELEMENT_WISE_LOG"; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND: return "DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND"; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS: return "DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS"; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN: return "DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN"; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN: return "DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN"; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT: return "DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT"; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR: return "DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR"; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR: return "DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR"; - case DML_OPERATOR_ELEMENT_WISE_MAX: return "DML_OPERATOR_ELEMENT_WISE_MAX"; - case DML_OPERATOR_ELEMENT_WISE_MEAN: return "DML_OPERATOR_ELEMENT_WISE_MEAN"; - case DML_OPERATOR_ELEMENT_WISE_MIN: return "DML_OPERATOR_ELEMENT_WISE_MIN"; - case DML_OPERATOR_ELEMENT_WISE_MULTIPLY: return "DML_OPERATOR_ELEMENT_WISE_MULTIPLY"; - case DML_OPERATOR_ELEMENT_WISE_POW: return "DML_OPERATOR_ELEMENT_WISE_POW"; - case DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW: return "DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW"; - case DML_OPERATOR_ELEMENT_WISE_RECIP: return "DML_OPERATOR_ELEMENT_WISE_RECIP"; - case DML_OPERATOR_ELEMENT_WISE_SIN: return "DML_OPERATOR_ELEMENT_WISE_SIN"; - case DML_OPERATOR_ELEMENT_WISE_SQRT: return "DML_OPERATOR_ELEMENT_WISE_SQRT"; - case DML_OPERATOR_ELEMENT_WISE_SUBTRACT: return "DML_OPERATOR_ELEMENT_WISE_SUBTRACT"; - case DML_OPERATOR_ELEMENT_WISE_TAN: return "DML_OPERATOR_ELEMENT_WISE_TAN"; - case DML_OPERATOR_ELEMENT_WISE_THRESHOLD: return "DML_OPERATOR_ELEMENT_WISE_THRESHOLD"; - case DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR: return "DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR"; - case DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR: return "DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR"; - case DML_OPERATOR_CONVOLUTION: return "DML_OPERATOR_CONVOLUTION"; - case DML_OPERATOR_GEMM: return "DML_OPERATOR_GEMM"; - case DML_OPERATOR_REDUCE: return "DML_OPERATOR_REDUCE"; - case DML_OPERATOR_AVERAGE_POOLING: return "DML_OPERATOR_AVERAGE_POOLING"; - case DML_OPERATOR_LP_POOLING: return "DML_OPERATOR_LP_POOLING"; - case DML_OPERATOR_MAX_POOLING: return "DML_OPERATOR_MAX_POOLING"; - case DML_OPERATOR_MAX_POOLING1: return "DML_OPERATOR_MAX_POOLING1"; - case DML_OPERATOR_ROI_POOLING: return "DML_OPERATOR_ROI_POOLING"; - case DML_OPERATOR_SLICE: return "DML_OPERATOR_SLICE"; - case DML_OPERATOR_CAST: return "DML_OPERATOR_CAST"; - case DML_OPERATOR_SPLIT: return "DML_OPERATOR_SPLIT"; - case DML_OPERATOR_JOIN: return "DML_OPERATOR_JOIN"; - case DML_OPERATOR_PADDING: return "DML_OPERATOR_PADDING"; - case DML_OPERATOR_VALUE_SCALE_2D: return "DML_OPERATOR_VALUE_SCALE_2D"; - case DML_OPERATOR_UPSAMPLE_2D: return "DML_OPERATOR_UPSAMPLE_2D"; - case DML_OPERATOR_GATHER: return "DML_OPERATOR_GATHER"; - case DML_OPERATOR_SPACE_TO_DEPTH: return "DML_OPERATOR_SPACE_TO_DEPTH"; - case DML_OPERATOR_DEPTH_TO_SPACE: return "DML_OPERATOR_DEPTH_TO_SPACE"; - case DML_OPERATOR_TILE: return "DML_OPERATOR_TILE"; - case DML_OPERATOR_TOP_K: return "DML_OPERATOR_TOP_K"; - case DML_OPERATOR_BATCH_NORMALIZATION: return "DML_OPERATOR_BATCH_NORMALIZATION"; - case DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION: return "DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION"; - case DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION: return "DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION"; - case DML_OPERATOR_LP_NORMALIZATION: return "DML_OPERATOR_LP_NORMALIZATION"; - case DML_OPERATOR_RNN: return "DML_OPERATOR_RNN"; - case DML_OPERATOR_LSTM: return "DML_OPERATOR_LSTM"; - case DML_OPERATOR_GRU: return "DML_OPERATOR_GRU"; - case DML_OPERATOR_ELEMENT_WISE_SIGN: return "DML_OPERATOR_ELEMENT_WISE_SIGN"; - case DML_OPERATOR_ELEMENT_WISE_IS_NAN: return "DML_OPERATOR_ELEMENT_WISE_IS_NAN"; - case DML_OPERATOR_ELEMENT_WISE_ERF: return "DML_OPERATOR_ELEMENT_WISE_ERF"; - case DML_OPERATOR_ELEMENT_WISE_SINH: return "DML_OPERATOR_ELEMENT_WISE_SINH"; - case DML_OPERATOR_ELEMENT_WISE_COSH: return "DML_OPERATOR_ELEMENT_WISE_COSH"; - case DML_OPERATOR_ELEMENT_WISE_TANH: return "DML_OPERATOR_ELEMENT_WISE_TANH"; - case DML_OPERATOR_ELEMENT_WISE_ASINH: return "DML_OPERATOR_ELEMENT_WISE_ASINH"; - case DML_OPERATOR_ELEMENT_WISE_ACOSH: return "DML_OPERATOR_ELEMENT_WISE_ACOSH"; - case DML_OPERATOR_ELEMENT_WISE_ATANH: return "DML_OPERATOR_ELEMENT_WISE_ATANH"; - case DML_OPERATOR_ELEMENT_WISE_IF: return "DML_OPERATOR_ELEMENT_WISE_IF"; - case DML_OPERATOR_ELEMENT_WISE_ADD1: return "DML_OPERATOR_ELEMENT_WISE_ADD1"; - case DML_OPERATOR_MAX_UNPOOLING: return "DML_OPERATOR_MAX_UNPOOLING"; - case DML_OPERATOR_DIAGONAL_MATRIX: return "DML_OPERATOR_DIAGONAL_MATRIX"; - case DML_OPERATOR_SCATTER: return "DML_OPERATOR_SCATTER"; - case DML_OPERATOR_ONE_HOT: return "DML_OPERATOR_ONE_HOT"; - case DML_OPERATOR_RESAMPLE: return "DML_OPERATOR_RESAMPLE"; - case DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT: return "DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT"; - case DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT: return "DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT"; - case DML_OPERATOR_ELEMENT_WISE_ROUND: return "DML_OPERATOR_ELEMENT_WISE_ROUND"; - case DML_OPERATOR_ELEMENT_WISE_IS_INFINITY: return "DML_OPERATOR_ELEMENT_WISE_IS_INFINITY"; - case DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE: return "DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE"; - case DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR: return "DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR"; - case DML_OPERATOR_FILL_VALUE_CONSTANT: return "DML_OPERATOR_FILL_VALUE_CONSTANT"; - case DML_OPERATOR_FILL_VALUE_SEQUENCE: return "DML_OPERATOR_FILL_VALUE_SEQUENCE"; - case DML_OPERATOR_CUMULATIVE_SUMMATION: return "DML_OPERATOR_CUMULATIVE_SUMMATION"; - case DML_OPERATOR_REVERSE_SUBSEQUENCES: return "DML_OPERATOR_REVERSE_SUBSEQUENCES"; - case DML_OPERATOR_GATHER_ELEMENTS: return "DML_OPERATOR_GATHER_ELEMENTS"; - case DML_OPERATOR_GATHER_ND: return "DML_OPERATOR_GATHER_ND"; - case DML_OPERATOR_SCATTER_ND: return "DML_OPERATOR_SCATTER_ND"; - case DML_OPERATOR_MAX_POOLING2: return "DML_OPERATOR_MAX_POOLING2"; - case DML_OPERATOR_SLICE1: return "DML_OPERATOR_SLICE1"; - case DML_OPERATOR_TOP_K1: return "DML_OPERATOR_TOP_K1"; - case DML_OPERATOR_DEPTH_TO_SPACE1: return "DML_OPERATOR_DEPTH_TO_SPACE1"; - case DML_OPERATOR_SPACE_TO_DEPTH1: return "DML_OPERATOR_SPACE_TO_DEPTH1"; - case DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1: return "DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1"; - default: - assert(false); - return ""; - } -} -} diff --git a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/DirectMLSchema.h.bak b/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/DirectMLSchema.h.bak deleted file mode 100644 index 7c46a8a6a2..0000000000 --- a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/DirectMLSchema.h.bak +++ /dev/null @@ -1,1514 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -#pragma once - -extern "C" { - -enum DML_SCHEMA_FIELD_KIND -{ - DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, - DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, - DML_SCHEMA_FIELD_KIND_ATTRIBUTE, -}; - -enum DML_SCHEMA_FIELD_TYPE -{ - DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, - DML_SCHEMA_FIELD_TYPE_TENSOR_DESC_ARRAY, - DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC, - DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC_ARRAY, - DML_SCHEMA_FIELD_TYPE_UINT, - DML_SCHEMA_FIELD_TYPE_INT, - DML_SCHEMA_FIELD_TYPE_FLOAT, - DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, - DML_SCHEMA_FIELD_TYPE_FLOAT_ARRAY, - DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, - DML_SCHEMA_FIELD_TYPE_SIZE_2D, -}; - -enum DML_SCHEMA_OPERATOR_SUPPORT_FLAGS -{ - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE = 0, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION = (1 << 0), -}; - -DEFINE_ENUM_FLAG_OPERATORS(DML_SCHEMA_OPERATOR_SUPPORT_FLAGS); - -struct DML_SCHEMA_FIELD -{ - DML_SCHEMA_FIELD_KIND Kind; - DML_SCHEMA_FIELD_TYPE Type; - const CHAR* Name; - BOOL Optional; -}; - -struct DML_OPERATOR_SCHEMA -{ - const CHAR* OperatorName; - DML_OPERATOR_TYPE OperatorType; - DML_SCHEMA_OPERATOR_SUPPORT_FLAGS SupportFlags; - - UINT FieldCount; - const DML_SCHEMA_FIELD* Fields; -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_IDENTITY_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_IDENTITY_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_IDENTITY", - DML_OPERATOR_ELEMENT_WISE_IDENTITY, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_IDENTITY_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ABS_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ABS_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ABS", - DML_OPERATOR_ELEMENT_WISE_ABS, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_ABS_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ACOS_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ACOS_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ACOS", - DML_OPERATOR_ELEMENT_WISE_ACOS, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_ACOS_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ADD_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ADD_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ADD", - DML_OPERATOR_ELEMENT_WISE_ADD, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_ADD_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ASIN_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ASIN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ASIN", - DML_OPERATOR_ELEMENT_WISE_ASIN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_ASIN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ATAN_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ATAN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ATAN", - DML_OPERATOR_ELEMENT_WISE_ATAN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_ATAN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_CEIL_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_CEIL_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_CEIL", - DML_OPERATOR_ELEMENT_WISE_CEIL, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_CEIL_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA_FIELDS[5] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Min", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Max", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_CLIP", - DML_OPERATOR_ELEMENT_WISE_CLIP, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 5, - DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_COS_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_COS_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_COS", - DML_OPERATOR_ELEMENT_WISE_COS, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_COS_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_DIVIDE_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_DIVIDE_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_DIVIDE", - DML_OPERATOR_ELEMENT_WISE_DIVIDE, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_DIVIDE_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_EXP_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_EXP_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_EXP", - DML_OPERATOR_ELEMENT_WISE_EXP, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_EXP_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_FLOOR_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_FLOOR_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_FLOOR", - DML_OPERATOR_ELEMENT_WISE_FLOOR, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_FLOOR_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_LOG_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_LOG_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_LOG", - DML_OPERATOR_ELEMENT_WISE_LOG, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_LOG_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND", - DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS", - DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 3, - DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN", - DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 3, - DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN", - DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 3, - DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT", - DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 2, - DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR", - DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR", - DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_MAX_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_MAX_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_MAX", - DML_OPERATOR_ELEMENT_WISE_MAX, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_MAX_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_MEAN_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_MEAN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_MEAN", - DML_OPERATOR_ELEMENT_WISE_MEAN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_MEAN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_MIN_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_MIN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_MIN", - DML_OPERATOR_ELEMENT_WISE_MIN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_MIN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_MULTIPLY_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_MULTIPLY_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_MULTIPLY", - DML_OPERATOR_ELEMENT_WISE_MULTIPLY, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_MULTIPLY_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_POW_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ExponentTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_POW_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_POW", - DML_OPERATOR_ELEMENT_WISE_POW, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ELEMENT_WISE_POW_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Exponent", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW", - DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_RECIP_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_RECIP_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_RECIP", - DML_OPERATOR_ELEMENT_WISE_RECIP, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_RECIP_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_SIN_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_SIN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_SIN", - DML_OPERATOR_ELEMENT_WISE_SIN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_SIN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_SQRT_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_SQRT_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_SQRT", - DML_OPERATOR_ELEMENT_WISE_SQRT, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_SQRT_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_SUBTRACT_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_SUBTRACT_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_SUBTRACT", - DML_OPERATOR_ELEMENT_WISE_SUBTRACT, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_SUBTRACT_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_TAN_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_TAN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_TAN", - DML_OPERATOR_ELEMENT_WISE_TAN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_TAN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_THRESHOLD_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Min", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_THRESHOLD_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_THRESHOLD", - DML_OPERATOR_ELEMENT_WISE_THRESHOLD, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ELEMENT_WISE_THRESHOLD_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ScaleTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ZeroPointTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR", - DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 4, - DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ScaleTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ZeroPointTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR", - DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 4, - DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_CONVOLUTION_OPERATOR_SCHEMA_FIELDS[14] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "FilterTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BiasTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Mode", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Direction", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "DimensionCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Strides", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Dilations", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "StartPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "EndPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "OutputPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "GroupCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC, "FusedActivation", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_CONVOLUTION_OPERATOR_SCHEMA { - "DML_OPERATOR_CONVOLUTION", - DML_OPERATOR_CONVOLUTION, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 14, - DML_CONVOLUTION_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_GEMM_OPERATOR_SCHEMA_FIELDS[9] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "CTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "TransA", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "TransB", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Beta", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC, "FusedActivation", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_GEMM_OPERATOR_SCHEMA { - "DML_OPERATOR_GEMM", - DML_OPERATOR_GEMM, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 9, - DML_GEMM_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_REDUCE_OPERATOR_SCHEMA_FIELDS[5] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Function", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "AxisCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Axes", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_REDUCE_OPERATOR_SCHEMA { - "DML_OPERATOR_REDUCE", - DML_OPERATOR_REDUCE, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 5, - DML_REDUCE_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_AVERAGE_POOLING_OPERATOR_SCHEMA_FIELDS[8] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "DimensionCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Strides", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "WindowSize", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "StartPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "EndPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "IncludePadding", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_AVERAGE_POOLING_OPERATOR_SCHEMA { - "DML_OPERATOR_AVERAGE_POOLING", - DML_OPERATOR_AVERAGE_POOLING, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 8, - DML_AVERAGE_POOLING_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_LP_POOLING_OPERATOR_SCHEMA_FIELDS[8] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "DimensionCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Strides", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "WindowSize", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "StartPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "EndPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "P", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_LP_POOLING_OPERATOR_SCHEMA { - "DML_OPERATOR_LP_POOLING", - DML_OPERATOR_LP_POOLING, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 8, - DML_LP_POOLING_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_MAX_POOLING_OPERATOR_SCHEMA_FIELDS[7] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "DimensionCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Strides", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "WindowSize", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "StartPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "EndPadding", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_MAX_POOLING_OPERATOR_SCHEMA { - "DML_OPERATOR_MAX_POOLING", - DML_OPERATOR_MAX_POOLING, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 7, - DML_MAX_POOLING_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_MAX_POOLING1_OPERATOR_SCHEMA_FIELDS[8] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputIndicesTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "DimensionCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Strides", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "WindowSize", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "StartPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "EndPadding", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_MAX_POOLING1_OPERATOR_SCHEMA { - "DML_OPERATOR_MAX_POOLING1", - DML_OPERATOR_MAX_POOLING1, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 8, - DML_MAX_POOLING1_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ROI_POOLING_OPERATOR_SCHEMA_FIELDS[5] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ROITensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "SpatialScale", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SIZE_2D, "PooledSize", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ROI_POOLING_OPERATOR_SCHEMA { - "DML_OPERATOR_ROI_POOLING", - DML_OPERATOR_ROI_POOLING, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 5, - DML_ROI_POOLING_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_SLICE_OPERATOR_SCHEMA_FIELDS[6] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "DimensionCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Offsets", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Sizes", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Strides", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_SLICE_OPERATOR_SCHEMA { - "DML_OPERATOR_SLICE", - DML_OPERATOR_SLICE, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 6, - DML_SLICE_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_CAST_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_CAST_OPERATOR_SCHEMA { - "DML_OPERATOR_CAST", - DML_OPERATOR_CAST, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 2, - DML_CAST_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_SPLIT_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "OutputCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC_ARRAY, "OutputTensors", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Axis", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_SPLIT_OPERATOR_SCHEMA { - "DML_OPERATOR_SPLIT", - DML_OPERATOR_SPLIT, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 4, - DML_SPLIT_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_JOIN_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "InputCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC_ARRAY, "InputTensors", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Axis", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_JOIN_OPERATOR_SCHEMA { - "DML_OPERATOR_JOIN", - DML_OPERATOR_JOIN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 4, - DML_JOIN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_PADDING_OPERATOR_SCHEMA_FIELDS[7] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "PaddingMode", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "PaddingValue", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "DimensionCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "StartPadding", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "EndPadding", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_PADDING_OPERATOR_SCHEMA { - "DML_OPERATOR_PADDING", - DML_OPERATOR_PADDING, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 7, - DML_PADDING_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_VALUE_SCALE_2D_OPERATOR_SCHEMA_FIELDS[5] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Scale", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "ChannelCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT_ARRAY, "Bias", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_VALUE_SCALE_2D_OPERATOR_SCHEMA { - "DML_OPERATOR_VALUE_SCALE_2D", - DML_OPERATOR_VALUE_SCALE_2D, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 5, - DML_VALUE_SCALE_2D_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_UPSAMPLE_2D_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SIZE_2D, "ScaleSize", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "InterpolationMode", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_UPSAMPLE_2D_OPERATOR_SCHEMA { - "DML_OPERATOR_UPSAMPLE_2D", - DML_OPERATOR_UPSAMPLE_2D, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 4, - DML_UPSAMPLE_2D_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_GATHER_OPERATOR_SCHEMA_FIELDS[5] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "IndicesTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Axis", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "IndexDimensions", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_GATHER_OPERATOR_SCHEMA { - "DML_OPERATOR_GATHER", - DML_OPERATOR_GATHER, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 5, - DML_GATHER_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_SPACE_TO_DEPTH_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "BlockSize", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_SPACE_TO_DEPTH_OPERATOR_SCHEMA { - "DML_OPERATOR_SPACE_TO_DEPTH", - DML_OPERATOR_SPACE_TO_DEPTH, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 3, - DML_SPACE_TO_DEPTH_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_DEPTH_TO_SPACE_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "BlockSize", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_DEPTH_TO_SPACE_OPERATOR_SCHEMA { - "DML_OPERATOR_DEPTH_TO_SPACE", - DML_OPERATOR_DEPTH_TO_SPACE, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 3, - DML_DEPTH_TO_SPACE_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_TILE_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "RepeatsCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT_ARRAY, "Repeats", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_TILE_OPERATOR_SCHEMA { - "DML_OPERATOR_TILE", - DML_OPERATOR_TILE, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 4, - DML_TILE_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_TOP_K_OPERATOR_SCHEMA_FIELDS[5] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputValueTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputIndexTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Axis", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "K", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_TOP_K_OPERATOR_SCHEMA { - "DML_OPERATOR_TOP_K", - DML_OPERATOR_TOP_K, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 5, - DML_TOP_K_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA_FIELDS[9] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "MeanTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "VarianceTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ScaleTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BiasTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Spatial", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Epsilon", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC, "FusedActivation", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA { - "DML_OPERATOR_BATCH_NORMALIZATION", - DML_OPERATOR_BATCH_NORMALIZATION, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 9, - DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA_FIELDS[8] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ScaleTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BiasTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "CrossChannel", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "NormalizeVariance", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Epsilon", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC, "FusedActivation", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA { - "DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION", - DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 8, - DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA_FIELDS[7] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "CrossChannel", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "LocalSize", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Beta", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Bias", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA { - "DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION", - DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 7, - DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_LP_NORMALIZATION_OPERATOR_SCHEMA_FIELDS[5] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Axis", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Epsilon", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "P", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_LP_NORMALIZATION_OPERATOR_SCHEMA { - "DML_OPERATOR_LP_NORMALIZATION", - DML_OPERATOR_LP_NORMALIZATION, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 5, - DML_LP_NORMALIZATION_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_RNN_OPERATOR_SCHEMA_FIELDS[11] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "WeightTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "RecurrenceTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BiasTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "HiddenInitTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "SequenceLengthsTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputSequenceTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputSingleTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "ActivationDescCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC_ARRAY, "ActivationDescs", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Direction", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_RNN_OPERATOR_SCHEMA { - "DML_OPERATOR_RNN", - DML_OPERATOR_RNN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 11, - DML_RNN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_LSTM_OPERATOR_SCHEMA_FIELDS[17] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "WeightTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "RecurrenceTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BiasTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "HiddenInitTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "CellMemInitTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "SequenceLengthsTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "PeepholeTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputSequenceTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputSingleTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputCellSingleTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "ActivationDescCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC_ARRAY, "ActivationDescs", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Direction", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "ClipThreshold", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "UseClipThreshold", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "CoupleInputForget", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_LSTM_OPERATOR_SCHEMA { - "DML_OPERATOR_LSTM", - DML_OPERATOR_LSTM, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 17, - DML_LSTM_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_GRU_OPERATOR_SCHEMA_FIELDS[12] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "WeightTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "RecurrenceTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BiasTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "HiddenInitTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "SequenceLengthsTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputSequenceTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputSingleTensor", true }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "ActivationDescCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC_ARRAY, "ActivationDescs", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Direction", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "LinearBeforeReset", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_GRU_OPERATOR_SCHEMA { - "DML_OPERATOR_GRU", - DML_OPERATOR_GRU, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 12, - DML_GRU_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_SIGN_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_SIGN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_SIGN", - DML_OPERATOR_ELEMENT_WISE_SIGN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 2, - DML_ELEMENT_WISE_SIGN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_IS_NAN_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_IS_NAN_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_IS_NAN", - DML_OPERATOR_ELEMENT_WISE_IS_NAN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 2, - DML_ELEMENT_WISE_IS_NAN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ERF_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ERF_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ERF", - DML_OPERATOR_ELEMENT_WISE_ERF, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_ERF_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_SINH_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_SINH_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_SINH", - DML_OPERATOR_ELEMENT_WISE_SINH, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_SINH_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_COSH_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_COSH_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_COSH", - DML_OPERATOR_ELEMENT_WISE_COSH, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_COSH_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_TANH_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_TANH_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_TANH", - DML_OPERATOR_ELEMENT_WISE_TANH, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_TANH_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ASINH_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ASINH_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ASINH", - DML_OPERATOR_ELEMENT_WISE_ASINH, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_ASINH_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ACOSH_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ACOSH_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ACOSH", - DML_OPERATOR_ELEMENT_WISE_ACOSH, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_ACOSH_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ATANH_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_SCALE_BIAS, "ScaleBias", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ATANH_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ATANH", - DML_OPERATOR_ELEMENT_WISE_ATANH, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ELEMENT_WISE_ATANH_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_IF_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ConditionTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_IF_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_IF", - DML_OPERATOR_ELEMENT_WISE_IF, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 4, - DML_ELEMENT_WISE_IF_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ELEMENT_WISE_ADD1_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ATensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "BTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC, "FusedActivation", true }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ELEMENT_WISE_ADD1_OPERATOR_SCHEMA { - "DML_OPERATOR_ELEMENT_WISE_ADD1", - DML_OPERATOR_ELEMENT_WISE_ADD1, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ELEMENT_WISE_ADD1_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_MAX_UNPOOLING_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "IndicesTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_MAX_UNPOOLING_OPERATOR_SCHEMA { - "DML_OPERATOR_MAX_UNPOOLING", - DML_OPERATOR_MAX_UNPOOLING, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 3, - DML_MAX_UNPOOLING_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_DIAGONAL_MATRIX_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_INT, "Offset", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Value", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_DIAGONAL_MATRIX_OPERATOR_SCHEMA { - "DML_OPERATOR_DIAGONAL_MATRIX", - DML_OPERATOR_DIAGONAL_MATRIX, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 3, - DML_DIAGONAL_MATRIX_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_SCATTER_OPERATOR_SCHEMA_FIELDS[5] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "IndicesTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "UpdatesTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Axis", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_SCATTER_OPERATOR_SCHEMA { - "DML_OPERATOR_SCATTER", - DML_OPERATOR_SCATTER, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 5, - DML_SCATTER_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ONE_HOT_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "IndicesTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "ValuesTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "Axis", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ONE_HOT_OPERATOR_SCHEMA { - "DML_OPERATOR_ONE_HOT", - DML_OPERATOR_ONE_HOT, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 4, - DML_ONE_HOT_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_RESAMPLE_OPERATOR_SCHEMA_FIELDS[5] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "InterpolationMode", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_UINT, "ScaleCount", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT_ARRAY, "Scales", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_RESAMPLE_OPERATOR_SCHEMA { - "DML_OPERATOR_RESAMPLE", - DML_OPERATOR_RESAMPLE, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 5, - DML_RESAMPLE_OPERATOR_SCHEMA_FIELDS, -}; - - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_ELU_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_ELU_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_ELU", - DML_OPERATOR_ACTIVATION_ELU, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ACTIVATION_ELU_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_HARDMAX_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_HARDMAX_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_HARDMAX", - DML_OPERATOR_ACTIVATION_HARDMAX, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 2, - DML_ACTIVATION_HARDMAX_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_HARD_SIGMOID_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Beta", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_HARD_SIGMOID_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_HARD_SIGMOID", - DML_OPERATOR_ACTIVATION_HARD_SIGMOID, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ACTIVATION_HARD_SIGMOID_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_IDENTITY_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_IDENTITY_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_IDENTITY", - DML_OPERATOR_ACTIVATION_IDENTITY, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 2, - DML_ACTIVATION_IDENTITY_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_LEAKY_RELU_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_LEAKY_RELU_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_LEAKY_RELU", - DML_OPERATOR_ACTIVATION_LEAKY_RELU, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ACTIVATION_LEAKY_RELU_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_LINEAR_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Beta", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_LINEAR_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_LINEAR", - DML_OPERATOR_ACTIVATION_LINEAR, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ACTIVATION_LINEAR_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_LOG_SOFTMAX", - DML_OPERATOR_ACTIVATION_LOG_SOFTMAX, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 2, - DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "SlopeTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU", - DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Beta", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS", - DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_RELU_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_RELU_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_RELU", - DML_OPERATOR_ACTIVATION_RELU, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 2, - DML_ACTIVATION_RELU_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_SCALED_ELU_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Gamma", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_SCALED_ELU_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_SCALED_ELU", - DML_OPERATOR_ACTIVATION_SCALED_ELU, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ACTIVATION_SCALED_ELU_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_SCALED_TANH_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Beta", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_SCALED_TANH_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_SCALED_TANH", - DML_OPERATOR_ACTIVATION_SCALED_TANH, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ACTIVATION_SCALED_TANH_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_SIGMOID_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_SIGMOID_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_SIGMOID", - DML_OPERATOR_ACTIVATION_SIGMOID, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 2, - DML_ACTIVATION_SIGMOID_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_SOFTMAX_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_SOFTMAX_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_SOFTMAX", - DML_OPERATOR_ACTIVATION_SOFTMAX, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_NONE, - 2, - DML_ACTIVATION_SOFTMAX_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_SOFTPLUS_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Steepness", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_SOFTPLUS_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_SOFTPLUS", - DML_OPERATOR_ACTIVATION_SOFTPLUS, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ACTIVATION_SOFTPLUS_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_SOFTSIGN_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_SOFTSIGN_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_SOFTSIGN", - DML_OPERATOR_ACTIVATION_SOFTSIGN, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 2, - DML_ACTIVATION_SOFTSIGN_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_TANH_OPERATOR_SCHEMA_FIELDS[2] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_TANH_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_TANH", - DML_OPERATOR_ACTIVATION_TANH, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 2, - DML_ACTIVATION_TANH_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_SCHEMA_FIELDS[3] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Alpha", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU", - DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 3, - DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_SCHEMA_FIELDS, -}; - -constexpr DML_SCHEMA_FIELD DML_ACTIVATION_SHRINK_OPERATOR_SCHEMA_FIELDS[4] { - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_INPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "InputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_OUTPUT_TENSOR, DML_SCHEMA_FIELD_TYPE_TENSOR_DESC, "OutputTensor", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Bias", false }, - DML_SCHEMA_FIELD { DML_SCHEMA_FIELD_KIND_ATTRIBUTE, DML_SCHEMA_FIELD_TYPE_FLOAT, "Threshold", false }, -}; - -constexpr DML_OPERATOR_SCHEMA DML_ACTIVATION_SHRINK_OPERATOR_SCHEMA { - "DML_OPERATOR_ACTIVATION_SHRINK", - DML_OPERATOR_ACTIVATION_SHRINK, - DML_SCHEMA_OPERATOR_SUPPORT_FLAG_IN_PLACE_EXECUTION, - 4, - DML_ACTIVATION_SHRINK_OPERATOR_SCHEMA_FIELDS, -}; - -} // extern "C" diff --git a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/GeneratedSchemaHelpers.h.bak b/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/GeneratedSchemaHelpers.h.bak deleted file mode 100644 index b8285c77a7..0000000000 --- a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/GeneratedSchemaHelpers.h.bak +++ /dev/null @@ -1,1388 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -#pragma once - -namespace SchemaHelpers -{ -AbstractOperatorDesc ConvertOperatorDesc(const DML_OPERATOR_DESC& opDesc); - -inline std::vector GetFields(const DML_ELEMENT_WISE_IDENTITY_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_IDENTITY_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_IDENTITY_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_IDENTITY_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ABS_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ABS_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_ABS_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_ABS_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ACOS_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ACOS_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_ACOS_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_ACOS_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ADD_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ADD_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_ADD_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_ADD_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ASIN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ASIN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_ASIN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_ASIN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ATAN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ATAN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_ATAN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_ATAN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_CEIL_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_CEIL_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_CEIL_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_CEIL_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_CLIP_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - OperatorField(&DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Min))), - OperatorField(&DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.Max))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_COS_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_COS_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_COS_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_COS_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_DIVIDE_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_DIVIDE_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_DIVIDE_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_DIVIDE_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_EXP_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_EXP_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_EXP_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_EXP_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_FLOOR_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_FLOOR_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_FLOOR_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_LOG_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_LOG_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_LOG_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_LOG_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_MAX_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_MAX_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_MAX_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_MAX_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_MEAN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_MEAN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_MEAN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_MEAN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_MIN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_MIN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_MIN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_MIN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_MULTIPLY_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_MULTIPLY_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_MULTIPLY_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_MULTIPLY_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_POW_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_POW_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_POW_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.ExponentTensor))), - OperatorField(&DML_ELEMENT_WISE_POW_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_POW_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - OperatorField(&DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Exponent))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_RECIP_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_RECIP_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_RECIP_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_RECIP_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_SIN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_SIN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_SIN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_SIN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_SQRT_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_SQRT_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_SQRT_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_SQRT_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_SUBTRACT_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_SUBTRACT_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_SUBTRACT_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_SUBTRACT_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_TAN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_TAN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_TAN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_TAN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_THRESHOLD_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_THRESHOLD_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_THRESHOLD_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_THRESHOLD_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - OperatorField(&DML_ELEMENT_WISE_THRESHOLD_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Min))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.ScaleTensor))), - OperatorField(&DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ZeroPointTensor))), - OperatorField(&DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.ScaleTensor))), - OperatorField(&DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ZeroPointTensor))), - OperatorField(&DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_CONVOLUTION_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.FilterTensor))), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.BiasTensor))), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.Mode))), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.Direction))), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.DimensionCount))), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.Strides), desc.DimensionCount)), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[8], ToOperatorFieldType(static_cast(desc.Dilations), desc.DimensionCount)), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[9], ToOperatorFieldType(static_cast(desc.StartPadding), desc.DimensionCount)), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[10], ToOperatorFieldType(static_cast(desc.EndPadding), desc.DimensionCount)), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[11], ToOperatorFieldType(static_cast(desc.OutputPadding), desc.DimensionCount)), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[12], ToOperatorFieldType(static_cast(desc.GroupCount))), - OperatorField(&DML_CONVOLUTION_OPERATOR_SCHEMA.Fields[13], ToOperatorFieldType(static_cast(desc.FusedActivation))), - }; -} -inline std::vector GetFields(const DML_GEMM_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_GEMM_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_GEMM_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_GEMM_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.CTensor))), - OperatorField(&DML_GEMM_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_GEMM_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.TransA))), - OperatorField(&DML_GEMM_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.TransB))), - OperatorField(&DML_GEMM_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.Alpha))), - OperatorField(&DML_GEMM_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.Beta))), - OperatorField(&DML_GEMM_OPERATOR_SCHEMA.Fields[8], ToOperatorFieldType(static_cast(desc.FusedActivation))), - }; -} -inline std::vector GetFields(const DML_REDUCE_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_REDUCE_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.Function))), - OperatorField(&DML_REDUCE_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_REDUCE_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_REDUCE_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.AxisCount))), - OperatorField(&DML_REDUCE_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.Axes), desc.AxisCount)), - }; -} -inline std::vector GetFields(const DML_AVERAGE_POOLING_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_AVERAGE_POOLING_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_AVERAGE_POOLING_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_AVERAGE_POOLING_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.DimensionCount))), - OperatorField(&DML_AVERAGE_POOLING_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Strides), desc.DimensionCount)), - OperatorField(&DML_AVERAGE_POOLING_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.WindowSize), desc.DimensionCount)), - OperatorField(&DML_AVERAGE_POOLING_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.StartPadding), desc.DimensionCount)), - OperatorField(&DML_AVERAGE_POOLING_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.EndPadding), desc.DimensionCount)), - OperatorField(&DML_AVERAGE_POOLING_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.IncludePadding))), - }; -} -inline std::vector GetFields(const DML_LP_POOLING_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_LP_POOLING_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_LP_POOLING_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_LP_POOLING_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.DimensionCount))), - OperatorField(&DML_LP_POOLING_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Strides), desc.DimensionCount)), - OperatorField(&DML_LP_POOLING_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.WindowSize), desc.DimensionCount)), - OperatorField(&DML_LP_POOLING_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.StartPadding), desc.DimensionCount)), - OperatorField(&DML_LP_POOLING_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.EndPadding), desc.DimensionCount)), - OperatorField(&DML_LP_POOLING_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.P))), - }; -} -inline std::vector GetFields(const DML_MAX_POOLING_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_MAX_POOLING_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_MAX_POOLING_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_MAX_POOLING_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.DimensionCount))), - OperatorField(&DML_MAX_POOLING_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Strides), desc.DimensionCount)), - OperatorField(&DML_MAX_POOLING_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.WindowSize), desc.DimensionCount)), - OperatorField(&DML_MAX_POOLING_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.StartPadding), desc.DimensionCount)), - OperatorField(&DML_MAX_POOLING_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.EndPadding), desc.DimensionCount)), - }; -} -inline std::vector GetFields(const DML_MAX_POOLING1_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_MAX_POOLING1_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_MAX_POOLING1_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_MAX_POOLING1_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputIndicesTensor))), - OperatorField(&DML_MAX_POOLING1_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.DimensionCount))), - OperatorField(&DML_MAX_POOLING1_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.Strides), desc.DimensionCount)), - OperatorField(&DML_MAX_POOLING1_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.WindowSize), desc.DimensionCount)), - OperatorField(&DML_MAX_POOLING1_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.StartPadding), desc.DimensionCount)), - OperatorField(&DML_MAX_POOLING1_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.EndPadding), desc.DimensionCount)), - }; -} -inline std::vector GetFields(const DML_ROI_POOLING_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ROI_POOLING_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ROI_POOLING_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.ROITensor))), - OperatorField(&DML_ROI_POOLING_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ROI_POOLING_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.SpatialScale))), - OperatorField(&DML_ROI_POOLING_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.PooledSize))), - }; -} -inline std::vector GetFields(const DML_SLICE_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_SLICE_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_SLICE_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_SLICE_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.DimensionCount))), - OperatorField(&DML_SLICE_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Offsets), desc.DimensionCount)), - OperatorField(&DML_SLICE_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.Sizes), desc.DimensionCount)), - OperatorField(&DML_SLICE_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.Strides), desc.DimensionCount)), - }; -} -inline std::vector GetFields(const DML_CAST_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_CAST_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_CAST_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_SPLIT_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_SPLIT_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_SPLIT_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputCount))), - OperatorField(&DML_SPLIT_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensors), desc.OutputCount)), - OperatorField(&DML_SPLIT_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Axis))), - }; -} -inline std::vector GetFields(const DML_JOIN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_JOIN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputCount))), - OperatorField(&DML_JOIN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.InputTensors), desc.InputCount)), - OperatorField(&DML_JOIN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_JOIN_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Axis))), - }; -} -inline std::vector GetFields(const DML_PADDING_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_PADDING_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_PADDING_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_PADDING_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.PaddingMode))), - OperatorField(&DML_PADDING_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.PaddingValue))), - OperatorField(&DML_PADDING_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.DimensionCount))), - OperatorField(&DML_PADDING_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.StartPadding), desc.DimensionCount)), - OperatorField(&DML_PADDING_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.EndPadding), desc.DimensionCount)), - }; -} -inline std::vector GetFields(const DML_VALUE_SCALE_2D_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_VALUE_SCALE_2D_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_VALUE_SCALE_2D_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_VALUE_SCALE_2D_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Scale))), - OperatorField(&DML_VALUE_SCALE_2D_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.ChannelCount))), - OperatorField(&DML_VALUE_SCALE_2D_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.Bias), desc.ChannelCount)), - }; -} -inline std::vector GetFields(const DML_UPSAMPLE_2D_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_UPSAMPLE_2D_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_UPSAMPLE_2D_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_UPSAMPLE_2D_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleSize))), - OperatorField(&DML_UPSAMPLE_2D_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.InterpolationMode))), - }; -} -inline std::vector GetFields(const DML_GATHER_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_GATHER_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_GATHER_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.IndicesTensor))), - OperatorField(&DML_GATHER_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_GATHER_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Axis))), - OperatorField(&DML_GATHER_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.IndexDimensions))), - }; -} -inline std::vector GetFields(const DML_SPACE_TO_DEPTH_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_SPACE_TO_DEPTH_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_SPACE_TO_DEPTH_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_SPACE_TO_DEPTH_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.BlockSize))), - }; -} -inline std::vector GetFields(const DML_DEPTH_TO_SPACE_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_DEPTH_TO_SPACE_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_DEPTH_TO_SPACE_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_DEPTH_TO_SPACE_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.BlockSize))), - }; -} -inline std::vector GetFields(const DML_TILE_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_TILE_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_TILE_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_TILE_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.RepeatsCount))), - OperatorField(&DML_TILE_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Repeats), desc.RepeatsCount)), - }; -} -inline std::vector GetFields(const DML_TOP_K_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_TOP_K_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_TOP_K_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputValueTensor))), - OperatorField(&DML_TOP_K_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputIndexTensor))), - OperatorField(&DML_TOP_K_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Axis))), - OperatorField(&DML_TOP_K_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.K))), - }; -} -inline std::vector GetFields(const DML_BATCH_NORMALIZATION_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.MeanTensor))), - OperatorField(&DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.VarianceTensor))), - OperatorField(&DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.ScaleTensor))), - OperatorField(&DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.BiasTensor))), - OperatorField(&DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.Spatial))), - OperatorField(&DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.Epsilon))), - OperatorField(&DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA.Fields[8], ToOperatorFieldType(static_cast(desc.FusedActivation))), - }; -} -inline std::vector GetFields(const DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.ScaleTensor))), - OperatorField(&DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.BiasTensor))), - OperatorField(&DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.CrossChannel))), - OperatorField(&DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.NormalizeVariance))), - OperatorField(&DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.Epsilon))), - OperatorField(&DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.FusedActivation))), - }; -} -inline std::vector GetFields(const DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.CrossChannel))), - OperatorField(&DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.LocalSize))), - OperatorField(&DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.Alpha))), - OperatorField(&DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.Beta))), - OperatorField(&DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.Bias))), - }; -} -inline std::vector GetFields(const DML_LP_NORMALIZATION_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_LP_NORMALIZATION_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_LP_NORMALIZATION_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_LP_NORMALIZATION_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Axis))), - OperatorField(&DML_LP_NORMALIZATION_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Epsilon))), - OperatorField(&DML_LP_NORMALIZATION_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.P))), - }; -} -inline std::vector GetFields(const DML_RNN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.WeightTensor))), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.RecurrenceTensor))), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.BiasTensor))), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.HiddenInitTensor))), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.SequenceLengthsTensor))), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.OutputSequenceTensor))), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.OutputSingleTensor))), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[8], ToOperatorFieldType(static_cast(desc.ActivationDescCount))), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[9], ToOperatorFieldType(static_cast(desc.ActivationDescs), desc.ActivationDescCount)), - OperatorField(&DML_RNN_OPERATOR_SCHEMA.Fields[10], ToOperatorFieldType(static_cast(desc.Direction))), - }; -} -inline std::vector GetFields(const DML_LSTM_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.WeightTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.RecurrenceTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.BiasTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.HiddenInitTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.CellMemInitTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.SequenceLengthsTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.PeepholeTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[8], ToOperatorFieldType(static_cast(desc.OutputSequenceTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[9], ToOperatorFieldType(static_cast(desc.OutputSingleTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[10], ToOperatorFieldType(static_cast(desc.OutputCellSingleTensor))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[11], ToOperatorFieldType(static_cast(desc.ActivationDescCount))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[12], ToOperatorFieldType(static_cast(desc.ActivationDescs), desc.ActivationDescCount)), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[13], ToOperatorFieldType(static_cast(desc.Direction))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[14], ToOperatorFieldType(static_cast(desc.ClipThreshold))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[15], ToOperatorFieldType(static_cast(desc.UseClipThreshold))), - OperatorField(&DML_LSTM_OPERATOR_SCHEMA.Fields[16], ToOperatorFieldType(static_cast(desc.CoupleInputForget))), - }; -} -inline std::vector GetFields(const DML_GRU_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.WeightTensor))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.RecurrenceTensor))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.BiasTensor))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.HiddenInitTensor))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[5], ToOperatorFieldType(static_cast(desc.SequenceLengthsTensor))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[6], ToOperatorFieldType(static_cast(desc.OutputSequenceTensor))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[7], ToOperatorFieldType(static_cast(desc.OutputSingleTensor))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[8], ToOperatorFieldType(static_cast(desc.ActivationDescCount))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[9], ToOperatorFieldType(static_cast(desc.ActivationDescs), desc.ActivationDescCount)), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[10], ToOperatorFieldType(static_cast(desc.Direction))), - OperatorField(&DML_GRU_OPERATOR_SCHEMA.Fields[11], ToOperatorFieldType(static_cast(desc.LinearBeforeReset))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_SIGN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_SIGN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_SIGN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_IS_NAN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_IS_NAN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_IS_NAN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ERF_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ERF_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_ERF_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_ERF_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_SINH_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_SINH_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_SINH_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_SINH_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_COSH_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_COSH_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_COSH_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_COSH_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_TANH_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_TANH_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_TANH_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_TANH_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ASINH_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ASINH_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_ASINH_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_ASINH_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ACOSH_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ACOSH_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_ACOSH_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_ACOSH_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ATANH_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ATANH_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ELEMENT_WISE_ATANH_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_ATANH_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.ScaleBias))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_IF_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_IF_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ConditionTensor))), - OperatorField(&DML_ELEMENT_WISE_IF_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_IF_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_IF_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ELEMENT_WISE_ADD1_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ELEMENT_WISE_ADD1_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.ATensor))), - OperatorField(&DML_ELEMENT_WISE_ADD1_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.BTensor))), - OperatorField(&DML_ELEMENT_WISE_ADD1_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ELEMENT_WISE_ADD1_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.FusedActivation))), - }; -} -inline std::vector GetFields(const DML_MAX_UNPOOLING_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_MAX_UNPOOLING_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_MAX_UNPOOLING_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.IndicesTensor))), - OperatorField(&DML_MAX_UNPOOLING_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_DIAGONAL_MATRIX_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_DIAGONAL_MATRIX_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_DIAGONAL_MATRIX_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.Offset))), - OperatorField(&DML_DIAGONAL_MATRIX_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Value))), - }; -} -inline std::vector GetFields(const DML_SCATTER_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_SCATTER_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_SCATTER_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.IndicesTensor))), - OperatorField(&DML_SCATTER_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.UpdatesTensor))), - OperatorField(&DML_SCATTER_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_SCATTER_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.Axis))), - }; -} -inline std::vector GetFields(const DML_ONE_HOT_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ONE_HOT_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.IndicesTensor))), - OperatorField(&DML_ONE_HOT_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.ValuesTensor))), - OperatorField(&DML_ONE_HOT_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ONE_HOT_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Axis))), - }; -} -inline std::vector GetFields(const DML_RESAMPLE_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_RESAMPLE_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_RESAMPLE_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_RESAMPLE_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.InterpolationMode))), - OperatorField(&DML_RESAMPLE_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.ScaleCount))), - OperatorField(&DML_RESAMPLE_OPERATOR_SCHEMA.Fields[4], ToOperatorFieldType(static_cast(desc.Scales), desc.ScaleCount)), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_ELU_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_ELU_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_ELU_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_ELU_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Alpha))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_HARDMAX_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_HARDMAX_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_HARDMAX_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_HARD_SIGMOID_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_HARD_SIGMOID_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_HARD_SIGMOID_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_HARD_SIGMOID_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Alpha))), - OperatorField(&DML_ACTIVATION_HARD_SIGMOID_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Beta))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_IDENTITY_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_IDENTITY_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_IDENTITY_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_LEAKY_RELU_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_LEAKY_RELU_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_LEAKY_RELU_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_LEAKY_RELU_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Alpha))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_LINEAR_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_LINEAR_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_LINEAR_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_LINEAR_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Alpha))), - OperatorField(&DML_ACTIVATION_LINEAR_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Beta))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.SlopeTensor))), - OperatorField(&DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Alpha))), - OperatorField(&DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Beta))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_RELU_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_RELU_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_RELU_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_SCALED_ELU_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_SCALED_ELU_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_SCALED_ELU_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_SCALED_ELU_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Alpha))), - OperatorField(&DML_ACTIVATION_SCALED_ELU_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Gamma))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_SCALED_TANH_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_SCALED_TANH_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_SCALED_TANH_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_SCALED_TANH_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Alpha))), - OperatorField(&DML_ACTIVATION_SCALED_TANH_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Beta))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_SIGMOID_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_SIGMOID_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_SIGMOID_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_SOFTMAX_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_SOFTMAX_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_SOFTMAX_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_SOFTPLUS_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_SOFTPLUS_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_SOFTPLUS_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_SOFTPLUS_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Steepness))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_SOFTSIGN_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_SOFTSIGN_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_SOFTSIGN_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_TANH_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_TANH_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_TANH_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Alpha))), - }; -} -inline std::vector GetFields(const DML_ACTIVATION_SHRINK_OPERATOR_DESC& desc) -{ - return { - OperatorField(&DML_ACTIVATION_SHRINK_OPERATOR_SCHEMA.Fields[0], ToOperatorFieldType(static_cast(desc.InputTensor))), - OperatorField(&DML_ACTIVATION_SHRINK_OPERATOR_SCHEMA.Fields[1], ToOperatorFieldType(static_cast(desc.OutputTensor))), - OperatorField(&DML_ACTIVATION_SHRINK_OPERATOR_SCHEMA.Fields[2], ToOperatorFieldType(static_cast(desc.Bias))), - OperatorField(&DML_ACTIVATION_SHRINK_OPERATOR_SCHEMA.Fields[3], ToOperatorFieldType(static_cast(desc.Threshold))), - }; -} - -inline const DML_OPERATOR_SCHEMA& GetSchema(DML_OPERATOR_TYPE operatorType) -{ - switch (operatorType) - { - case DML_OPERATOR_ELEMENT_WISE_IDENTITY: return DML_ELEMENT_WISE_IDENTITY_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ABS: return DML_ELEMENT_WISE_ABS_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ACOS: return DML_ELEMENT_WISE_ACOS_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ADD: return DML_ELEMENT_WISE_ADD_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ASIN: return DML_ELEMENT_WISE_ASIN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ATAN: return DML_ELEMENT_WISE_ATAN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_CEIL: return DML_ELEMENT_WISE_CEIL_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_CLIP: return DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_COS: return DML_ELEMENT_WISE_COS_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_DIVIDE: return DML_ELEMENT_WISE_DIVIDE_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_EXP: return DML_ELEMENT_WISE_EXP_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_FLOOR: return DML_ELEMENT_WISE_FLOOR_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_LOG: return DML_ELEMENT_WISE_LOG_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND: return DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS: return DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN: return DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN: return DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT: return DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR: return DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR: return DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_MAX: return DML_ELEMENT_WISE_MAX_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_MEAN: return DML_ELEMENT_WISE_MEAN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_MIN: return DML_ELEMENT_WISE_MIN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_MULTIPLY: return DML_ELEMENT_WISE_MULTIPLY_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_POW: return DML_ELEMENT_WISE_POW_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW: return DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_RECIP: return DML_ELEMENT_WISE_RECIP_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_SIN: return DML_ELEMENT_WISE_SIN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_SQRT: return DML_ELEMENT_WISE_SQRT_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_SUBTRACT: return DML_ELEMENT_WISE_SUBTRACT_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_TAN: return DML_ELEMENT_WISE_TAN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_THRESHOLD: return DML_ELEMENT_WISE_THRESHOLD_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR: return DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR: return DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_SCHEMA; - case DML_OPERATOR_CONVOLUTION: return DML_CONVOLUTION_OPERATOR_SCHEMA; - case DML_OPERATOR_GEMM: return DML_GEMM_OPERATOR_SCHEMA; - case DML_OPERATOR_REDUCE: return DML_REDUCE_OPERATOR_SCHEMA; - case DML_OPERATOR_AVERAGE_POOLING: return DML_AVERAGE_POOLING_OPERATOR_SCHEMA; - case DML_OPERATOR_LP_POOLING: return DML_LP_POOLING_OPERATOR_SCHEMA; - case DML_OPERATOR_MAX_POOLING: return DML_MAX_POOLING_OPERATOR_SCHEMA; - case DML_OPERATOR_MAX_POOLING1: return DML_MAX_POOLING1_OPERATOR_SCHEMA; - case DML_OPERATOR_ROI_POOLING: return DML_ROI_POOLING_OPERATOR_SCHEMA; - case DML_OPERATOR_SLICE: return DML_SLICE_OPERATOR_SCHEMA; - case DML_OPERATOR_CAST: return DML_CAST_OPERATOR_SCHEMA; - case DML_OPERATOR_SPLIT: return DML_SPLIT_OPERATOR_SCHEMA; - case DML_OPERATOR_JOIN: return DML_JOIN_OPERATOR_SCHEMA; - case DML_OPERATOR_PADDING: return DML_PADDING_OPERATOR_SCHEMA; - case DML_OPERATOR_VALUE_SCALE_2D: return DML_VALUE_SCALE_2D_OPERATOR_SCHEMA; - case DML_OPERATOR_UPSAMPLE_2D: return DML_UPSAMPLE_2D_OPERATOR_SCHEMA; - case DML_OPERATOR_GATHER: return DML_GATHER_OPERATOR_SCHEMA; - case DML_OPERATOR_SPACE_TO_DEPTH: return DML_SPACE_TO_DEPTH_OPERATOR_SCHEMA; - case DML_OPERATOR_DEPTH_TO_SPACE: return DML_DEPTH_TO_SPACE_OPERATOR_SCHEMA; - case DML_OPERATOR_TILE: return DML_TILE_OPERATOR_SCHEMA; - case DML_OPERATOR_TOP_K: return DML_TOP_K_OPERATOR_SCHEMA; - case DML_OPERATOR_BATCH_NORMALIZATION: return DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA; - case DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION: return DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA; - case DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION: return DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA; - case DML_OPERATOR_LP_NORMALIZATION: return DML_LP_NORMALIZATION_OPERATOR_SCHEMA; - case DML_OPERATOR_RNN: return DML_RNN_OPERATOR_SCHEMA; - case DML_OPERATOR_LSTM: return DML_LSTM_OPERATOR_SCHEMA; - case DML_OPERATOR_GRU: return DML_GRU_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_SIGN: return DML_ELEMENT_WISE_SIGN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_IS_NAN: return DML_ELEMENT_WISE_IS_NAN_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ERF: return DML_ELEMENT_WISE_ERF_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_SINH: return DML_ELEMENT_WISE_SINH_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_COSH: return DML_ELEMENT_WISE_COSH_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_TANH: return DML_ELEMENT_WISE_TANH_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ASINH: return DML_ELEMENT_WISE_ASINH_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ACOSH: return DML_ELEMENT_WISE_ACOSH_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ATANH: return DML_ELEMENT_WISE_ATANH_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_IF: return DML_ELEMENT_WISE_IF_OPERATOR_SCHEMA; - case DML_OPERATOR_ELEMENT_WISE_ADD1: return DML_ELEMENT_WISE_ADD1_OPERATOR_SCHEMA; - case DML_OPERATOR_MAX_UNPOOLING: return DML_MAX_UNPOOLING_OPERATOR_SCHEMA; - case DML_OPERATOR_DIAGONAL_MATRIX: return DML_DIAGONAL_MATRIX_OPERATOR_SCHEMA; - case DML_OPERATOR_SCATTER: return DML_SCATTER_OPERATOR_SCHEMA; - case DML_OPERATOR_ONE_HOT: return DML_ONE_HOT_OPERATOR_SCHEMA; - case DML_OPERATOR_RESAMPLE: return DML_RESAMPLE_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_ELU: return DML_ACTIVATION_ELU_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_HARDMAX: return DML_ACTIVATION_HARDMAX_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_HARD_SIGMOID: return DML_ACTIVATION_HARD_SIGMOID_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_IDENTITY: return DML_ACTIVATION_IDENTITY_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_LEAKY_RELU: return DML_ACTIVATION_LEAKY_RELU_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_LINEAR: return DML_ACTIVATION_LINEAR_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_LOG_SOFTMAX: return DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU: return DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS: return DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_RELU: return DML_ACTIVATION_RELU_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_SCALED_ELU: return DML_ACTIVATION_SCALED_ELU_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_SCALED_TANH: return DML_ACTIVATION_SCALED_TANH_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_SIGMOID: return DML_ACTIVATION_SIGMOID_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_SOFTMAX: return DML_ACTIVATION_SOFTMAX_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_SOFTPLUS: return DML_ACTIVATION_SOFTPLUS_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_SOFTSIGN: return DML_ACTIVATION_SOFTSIGN_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_TANH: return DML_ACTIVATION_TANH_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU: return DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_SCHEMA; - case DML_OPERATOR_ACTIVATION_SHRINK: return DML_ACTIVATION_SHRINK_OPERATOR_SCHEMA; - default: THROW_HR(E_INVALIDARG); - } -} - -inline AbstractOperatorDesc ConvertOperatorDesc(const DML_OPERATOR_DESC& opDesc) -{ - switch (static_cast(opDesc.Type)) - { - case DML_OPERATOR_ELEMENT_WISE_IDENTITY: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_IDENTITY_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ABS: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ABS_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ACOS: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ACOS_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ADD: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ADD_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ASIN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ASIN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ATAN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ATAN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_CEIL: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_CEIL_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_CLIP: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_CLIP_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_COS: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_COS_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_DIVIDE: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_DIVIDE_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_EXP: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_EXP_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_FLOOR: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_FLOOR_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_LOG: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_LOG_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_MAX: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_MAX_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_MEAN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_MEAN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_MIN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_MIN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_MULTIPLY: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_MULTIPLY_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_POW: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_POW_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_RECIP: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_RECIP_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_SIN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_SIN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_SQRT: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_SQRT_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_SUBTRACT: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_SUBTRACT_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_TAN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_TAN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_THRESHOLD: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_THRESHOLD_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_CONVOLUTION: - return AbstractOperatorDesc( - &DML_CONVOLUTION_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_GEMM: - return AbstractOperatorDesc( - &DML_GEMM_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_REDUCE: - return AbstractOperatorDesc( - &DML_REDUCE_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_AVERAGE_POOLING: - return AbstractOperatorDesc( - &DML_AVERAGE_POOLING_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_LP_POOLING: - return AbstractOperatorDesc( - &DML_LP_POOLING_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_MAX_POOLING: - return AbstractOperatorDesc( - &DML_MAX_POOLING_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_MAX_POOLING1: - return AbstractOperatorDesc( - &DML_MAX_POOLING1_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ROI_POOLING: - return AbstractOperatorDesc( - &DML_ROI_POOLING_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_SLICE: - return AbstractOperatorDesc( - &DML_SLICE_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_CAST: - return AbstractOperatorDesc( - &DML_CAST_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_SPLIT: - return AbstractOperatorDesc( - &DML_SPLIT_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_JOIN: - return AbstractOperatorDesc( - &DML_JOIN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_PADDING: - return AbstractOperatorDesc( - &DML_PADDING_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_VALUE_SCALE_2D: - return AbstractOperatorDesc( - &DML_VALUE_SCALE_2D_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_UPSAMPLE_2D: - return AbstractOperatorDesc( - &DML_UPSAMPLE_2D_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_GATHER: - return AbstractOperatorDesc( - &DML_GATHER_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_SPACE_TO_DEPTH: - return AbstractOperatorDesc( - &DML_SPACE_TO_DEPTH_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_DEPTH_TO_SPACE: - return AbstractOperatorDesc( - &DML_DEPTH_TO_SPACE_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_TILE: - return AbstractOperatorDesc( - &DML_TILE_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_TOP_K: - return AbstractOperatorDesc( - &DML_TOP_K_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_BATCH_NORMALIZATION: - return AbstractOperatorDesc( - &DML_BATCH_NORMALIZATION_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION: - return AbstractOperatorDesc( - &DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION: - return AbstractOperatorDesc( - &DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_LP_NORMALIZATION: - return AbstractOperatorDesc( - &DML_LP_NORMALIZATION_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_RNN: - return AbstractOperatorDesc( - &DML_RNN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_LSTM: - return AbstractOperatorDesc( - &DML_LSTM_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_GRU: - return AbstractOperatorDesc( - &DML_GRU_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_SIGN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_SIGN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_IS_NAN: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_IS_NAN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ERF: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ERF_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_SINH: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_SINH_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_COSH: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_COSH_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_TANH: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_TANH_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ASINH: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ASINH_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ACOSH: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ACOSH_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ATANH: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ATANH_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_IF: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_IF_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ELEMENT_WISE_ADD1: - return AbstractOperatorDesc( - &DML_ELEMENT_WISE_ADD1_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_MAX_UNPOOLING: - return AbstractOperatorDesc( - &DML_MAX_UNPOOLING_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_DIAGONAL_MATRIX: - return AbstractOperatorDesc( - &DML_DIAGONAL_MATRIX_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_SCATTER: - return AbstractOperatorDesc( - &DML_SCATTER_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ONE_HOT: - return AbstractOperatorDesc( - &DML_ONE_HOT_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_RESAMPLE: - return AbstractOperatorDesc( - &DML_RESAMPLE_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_ELU: - return AbstractOperatorDesc( - &DML_ACTIVATION_ELU_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_HARDMAX: - return AbstractOperatorDesc( - &DML_ACTIVATION_HARDMAX_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_HARD_SIGMOID: - return AbstractOperatorDesc( - &DML_ACTIVATION_HARD_SIGMOID_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_IDENTITY: - return AbstractOperatorDesc( - &DML_ACTIVATION_IDENTITY_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_LEAKY_RELU: - return AbstractOperatorDesc( - &DML_ACTIVATION_LEAKY_RELU_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_LINEAR: - return AbstractOperatorDesc( - &DML_ACTIVATION_LINEAR_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_LOG_SOFTMAX: - return AbstractOperatorDesc( - &DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU: - return AbstractOperatorDesc( - &DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS: - return AbstractOperatorDesc( - &DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_RELU: - return AbstractOperatorDesc( - &DML_ACTIVATION_RELU_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_SCALED_ELU: - return AbstractOperatorDesc( - &DML_ACTIVATION_SCALED_ELU_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_SCALED_TANH: - return AbstractOperatorDesc( - &DML_ACTIVATION_SCALED_TANH_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_SIGMOID: - return AbstractOperatorDesc( - &DML_ACTIVATION_SIGMOID_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_SOFTMAX: - return AbstractOperatorDesc( - &DML_ACTIVATION_SOFTMAX_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_SOFTPLUS: - return AbstractOperatorDesc( - &DML_ACTIVATION_SOFTPLUS_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_SOFTSIGN: - return AbstractOperatorDesc( - &DML_ACTIVATION_SOFTSIGN_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_TANH: - return AbstractOperatorDesc( - &DML_ACTIVATION_TANH_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU: - return AbstractOperatorDesc( - &DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - case DML_OPERATOR_ACTIVATION_SHRINK: - return AbstractOperatorDesc( - &DML_ACTIVATION_SHRINK_OPERATOR_SCHEMA, - GetFields(*static_cast(opDesc.Desc))); - default: THROW_HR(E_INVALIDARG); - } - -} -} diff --git a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/GeneratedSchemaTypes.h.bak b/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/GeneratedSchemaTypes.h.bak deleted file mode 100644 index 57c8ec8ce0..0000000000 --- a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/External/DirectMLHelpers/GeneratedSchemaTypes.h.bak +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -#pragma once - -using ApiAttributeVariant = std::variant< - const DML_TENSOR_DESC*, - const DML_OPERATOR_DESC*, - UINT, - INT, - FLOAT, - const UINT*, - const FLOAT*, - const DML_SCALE_BIAS*, - DML_SIZE_2D - >; - -namespace OperatorFieldTypes -{ - using TensorDesc = std::optional; // DML_SCHEMA_FIELD_TYPE_TENSOR_DESC - using TensorDescArray = std::optional>; // DML_SCHEMA_FIELD_TYPE_TENSOR_DESC_ARRAY - using OperatorDesc = std::optional; // DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC - using OperatorDescArray = std::optional>; // DML_SCHEMA_FIELD_TYPE_OPERATOR_DESC_ARRAY - using UInt = uint32_t; // DML_SCHEMA_FIELD_TYPE_UINT - using Int = int32_t; // DML_SCHEMA_FIELD_TYPE_INT - using Float = float; // DML_SCHEMA_FIELD_TYPE_FLOAT - using UIntArray = std::optional>; // DML_SCHEMA_FIELD_TYPE_UINT_ARRAY - using FloatArray = std::optional>; // DML_SCHEMA_FIELD_TYPE_FLOAT_ARRAY - using ScaleBias = std::optional; // DML_SCHEMA_FIELD_TYPE_SCALE_BIAS - using Size2D = DML_SIZE_2D; // DML_SCHEMA_FIELD_TYPE_SIZE_2D -} - -using OperatorFieldVariant = std::variant< - OperatorFieldTypes::TensorDesc, - OperatorFieldTypes::TensorDescArray, - OperatorFieldTypes::OperatorDesc, - OperatorFieldTypes::OperatorDescArray, - OperatorFieldTypes::UInt, - OperatorFieldTypes::Int, - OperatorFieldTypes::Float, - OperatorFieldTypes::UIntArray, - OperatorFieldTypes::FloatArray, - OperatorFieldTypes::ScaleBias, - OperatorFieldTypes::Size2D - >; - -class OperatorField -{ -public: - OperatorField() = default; - explicit OperatorField(const DML_SCHEMA_FIELD* schema, OperatorFieldVariant&& data) - : m_schema(schema) - , m_data(std::move(data)) - { - assert(m_schema->Type == (DML_SCHEMA_FIELD_TYPE)m_data.index()); - } - - const DML_SCHEMA_FIELD* GetSchema() const - { - return m_schema; - } - - const OperatorFieldVariant& GetData() const - { - return m_data; - } - - const OperatorFieldTypes::TensorDesc& AsTensorDesc() const { return std::get(m_data); } - OperatorFieldTypes::TensorDesc& AsTensorDesc() { return std::get(m_data); } - - const OperatorFieldTypes::TensorDescArray& AsTensorDescArray() const { return std::get(m_data); } - OperatorFieldTypes::TensorDescArray& AsTensorDescArray() { return std::get(m_data); } - - const OperatorFieldTypes::OperatorDesc& AsOperatorDesc() const { return std::get(m_data); } - OperatorFieldTypes::OperatorDesc& AsOperatorDesc() { return std::get(m_data); } - - const OperatorFieldTypes::OperatorDescArray& AsOperatorDescArray() const { return std::get(m_data); } - OperatorFieldTypes::OperatorDescArray& AsOperatorDescArray() { return std::get(m_data); } - - const OperatorFieldTypes::UInt& AsUInt() const { return std::get(m_data); } - OperatorFieldTypes::UInt& AsUInt() { return std::get(m_data); } - - const OperatorFieldTypes::Int& AsInt() const { return std::get(m_data); } - OperatorFieldTypes::Int& AsInt() { return std::get(m_data); } - - const OperatorFieldTypes::Float& AsFloat() const { return std::get(m_data); } - OperatorFieldTypes::Float& AsFloat() { return std::get(m_data); } - - const OperatorFieldTypes::UIntArray& AsUIntArray() const { return std::get(m_data); } - OperatorFieldTypes::UIntArray& AsUIntArray() { return std::get(m_data); } - - const OperatorFieldTypes::FloatArray& AsFloatArray() const { return std::get(m_data); } - OperatorFieldTypes::FloatArray& AsFloatArray() { return std::get(m_data); } - - const OperatorFieldTypes::ScaleBias& AsScaleBias() const { return std::get(m_data); } - OperatorFieldTypes::ScaleBias& AsScaleBias() { return std::get(m_data); } - - const OperatorFieldTypes::Size2D& AsSize2D() const { return std::get(m_data); } - OperatorFieldTypes::Size2D& AsSize2D() { return std::get(m_data); } - -private: - const DML_SCHEMA_FIELD* m_schema; - OperatorFieldVariant m_data; -}; -