DML_ACTIVATION_SOFTMAX_OPERATOR_DESC structure (directml.h)

Performs a softmax activation function on InputTensor, placing the result into the corresponding element of OutputTensor.

For 1-D InputTensor:
// Let x[i] be the current element in the InputTensor, and j be the total number of elements in the InputTensor
f(x[i]) = exp(x[i]) / sum(exp(x[0]), ..., exp(x[j-1]))

Where exp(x) is the natural exponentiation function.

Syntax

struct DML_ACTIVATION_SOFTMAX_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
};

Members

InputTensor

Type: const DML_TENSOR_DESC*

The input tensor to read from. This tensor must have an effective rank no greater than 2. The effective rank of a tensor is the DimensionCount of the tensor, excluding leftmost dimensions of size 1. For example a tensor size of { 1, 1, BatchCount, Width } is valid, and is equivalent to a tensor of sizes { BatchCount, Width }.

OutputTensor

Type: const DML_TENSOR_DESC*

The output tensor to write the results to.

Availability

This operator was introduced in DML_FEATURE_LEVEL_1_0.

Tensor constraints

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

Tensor support

DML_FEATURE_LEVEL_3_0 and above

Tensor Kind Supported dimension counts Supported data types
InputTensor Input 1 to 8 FLOAT32, FLOAT16
OutputTensor Output 1 to 8 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_2_0 and above

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

DML_FEATURE_LEVEL_1_0 and above

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

Requirements

Requirement Value
Header directml.h

See also

DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC structure

DML_ARGMAX_OPERATOR_DESC structure