Compartilhar via


estrutura DML_ELEMENT_WISE_IF_OPERATOR_DESC (directml.h)

Seleciona elementos de ATensor ou BTensor, dependendo do valor do elemento correspondente em ConditionTensor. Elementos não zero de ConditionTensor selecionam de ATensor, enquanto elementos com valor zero são selecionados de 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

Sintaxe

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;
};

Membros

ConditionTensor

Tipo: const DML_TENSOR_DESC*

O tensor de condição do qual ler.

ATensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém as entradas do lado esquerdo.

BTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém as entradas do lado direito.

OutputTensor

Tipo: const DML_TENSOR_DESC*

O tensor de saída para o qual gravar os resultados.

Comentários

Pode ser usado para compilar funcionalmente outros operadores de agregação, como LeakyRelu. Aqui está uma ilustração em pseudocódigo (não da maneira mais eficiente, mas possível): LeakyRelu(x) = If(Less(x, 0), Mul(x, alpha), x).

Disponibilidade

Esse operador foi introduzido em DML_FEATURE_LEVEL_2_0.

Restrições do Tensor

  • ATensor, BTensor, ConditionTensor e OutputTensor devem ter os mesmos DimensionCount e Sizes.
  • ATensor, BTensor e OutputTensor devem ter o mesmo DataType.

Suporte ao Tensor

DML_FEATURE_LEVEL_5_0 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
ConditionTensor Entrada 1 a 8 UINT8
Atensor Entrada 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
BTensor Entrada 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor Saída 1 a 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_0 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
ConditionTensor Entrada 1 a 8 UINT8
Atensor Entrada 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
BTensor Entrada 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor Saída 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_2_0 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
ConditionTensor Entrada 4 UINT8
Atensor Entrada 4 FLOAT16
BTensor Entrada 4 FLOAT16
OutputTensor Saída 4 FLOAT16

Requisitos

   
Cliente mínimo com suporte Windows 10, versão 2004 (10.0; Build 19041)
Servidor mínimo com suporte Windows Server, versão 2004 (10.0; Build 19041)
Cabeçalho directml.h