Condividi tramite


struttura DML_ELEMENT_WISE_IF_OPERATOR_DESC (directml.h)

Seleziona gli elementi da ATensor o BTensor, a seconda del valore dell'elemento corrispondente in ConditionTensor. Gli elementi non zero di ConditionTensor selezionano da ATensor, mentre gli elementi con valori zero selezionano da BTensor.

f(cond, a, b) = a, if cond != 0
                b, otherwise

Example:
    [[1, 0], [1, 1]] // ConditionTensor
    [[1, 2], [3, 4]] // ATensor
    [[9, 8], [7, 6]] // BTensor

    [[1, 8], [3, 4]] // Output

Sintassi

struct DML_ELEMENT_WISE_IF_OPERATOR_DESC {
  const DML_TENSOR_DESC *ConditionTensor;
  const DML_TENSOR_DESC *ATensor;
  const DML_TENSOR_DESC *BTensor;
  const DML_TENSOR_DESC *OutputTensor;
};

Members

ConditionTensor

Tipo: const DML_TENSOR_DESC*

Tensore di condizioni da cui leggere.

ATensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente gli input sul lato sinistro.

BTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente gli input sul lato destro.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensore di output in cui scrivere i risultati.

Commenti

Può essere usato per creare in modo funzionale altri operatori di aggregazione, ad esempio LeakyRelu. Ecco un'illustrazione in pseudo-codice (non il modo più efficiente, ma possibile): LeakyRelu(x) = If(Less(x, 0), Mul(x, alpha), x).

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_2_0.

Vincoli tensor

  • ATensor, BTensor, ConditionTensor e OutputTensor devono avere lo stesso DimensionCount e Sizes.
  • ATensor, BTensor e OutputTensor devono avere lo stesso Tipo di dati.

Supporto di Tensor

DML_FEATURE_LEVEL_5_0 e versioni successive

Tensore Tipo Conteggi delle dimensioni supportati Tipi di dati supportati
ConditionTensor Input da 1 a 8 UINT8
ATensor Input da 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
BTensor Input da 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor Output da 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_0 e versioni successive

Tensore Tipo Conteggi delle dimensioni supportati Tipi di dati supportati
ConditionTensor Input da 1 a 8 UINT8
ATensor Input da 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
BTensor Input da 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor Output da 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_2_0 e versioni successive

Tensore Tipo Conteggi delle dimensioni supportati Tipi di dati supportati
ConditionTensor Input 4 UINT8
ATensor Input 4 FLOAT16
BTensor Input 4 FLOAT16
OutputTensor Output 4 FLOAT16

Requisiti

   
Client minimo supportato Windows 10 versione 2004 (10.0; Build 19041)
Server minimo supportato Windows Server, versione 2004 (10.0; Build 19041)
Intestazione directml.h