DML_ELEMENT_WISE_POW_OPERATOR_DESC structure (directml.h)

Computes each element of InputTensor raised to the power of the corresponding element of ExponentTensor, placing the result into the corresponding element of OutputTensor.

f(input, exponent) = pow(input, exponent)

Negative bases are supported for exponents with integral values (though datatype can still be float), otherwise this operator returns NaN.

When the input tensor and exponent tensor both have integral data type, this operator guarantees exact results.

This operator supports in-place execution, meaning that OutputTensor is permitted to alias InputTensor during binding.

Syntax

struct DML_ELEMENT_WISE_POW_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *ExponentTensor;
  const DML_TENSOR_DESC *OutputTensor;
  const DML_SCALE_BIAS  *ScaleBias;
};

Members

InputTensor

Type: const DML_TENSOR_DESC*

The tensor containing the input values.

ExponentTensor

Type: const DML_TENSOR_DESC*

The tensor containing the exponent values.

OutputTensor

Type: const DML_TENSOR_DESC*

The output tensor to write the results to.

ScaleBias

Type: _Maybenull_ const DML_SCALE_BIAS*

An optional scale and bias to apply to the input. If present, this has the effect of applying the function g(x) = x * scale + bias to each input element prior to computing this operator.

Remarks

Until DML_FEATURE_LEVEL_3_0, ExponentTensor must match the type of InputTensor.

See DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_DESC for a POW operator that accepts a FLOAT constant for the exponent.

Availability

This operator was introduced in DML_FEATURE_LEVEL_1_0.

Tensor constraints

  • ExponentTensor, InputTensor, and OutputTensor must have the same DimensionCount and Sizes.
  • InputTensor and OutputTensor must have the same DataType.

Tensor support

DML_FEATURE_LEVEL_3_0 and above

Tensor Kind Supported dimension counts Supported data types
InputTensor Input 1 to 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
ExponentTensor Input 1 to 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor Output 1 to 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_1_0 and above

Tensor Kind Supported dimension counts Supported data types
InputTensor Input 4 FLOAT32, FLOAT16
ExponentTensor Input 4 FLOAT32, FLOAT16
OutputTensor Output 4 FLOAT32, FLOAT16

Requirements

Requirement Value
Header directml.h

See also

DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_DESC