struktur DML_QUANTIZED_LINEAR_CONVOLUTION_OPERATOR_DESC (directml.h)

Melakukan konvolusi FilterTensor dengan InputTensor. Operator ini melakukan konvolusi ke depan pada data kuantisasi. Operator ini secara matematis setara dengan mendequantizing input, convolving, dan kemudian mengukur output.

Fungsi linier kuantisasi yang digunakan oleh operator ini adalah fungsi kuantisasi linier

Mendesquantize function

f(Input, Scale, ZeroPoint) = (Input - ZeroPoint) * Scale

Fungsi kuantisasi

f(Input, Scale, ZeroPoint) = clamp(round(Input / Scale) + ZeroPoint, Min, Max)

Sintaksis

struct DML_QUANTIZED_LINEAR_CONVOLUTION_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *InputScaleTensor;
  const DML_TENSOR_DESC *InputZeroPointTensor;
  const DML_TENSOR_DESC *FilterTensor;
  const DML_TENSOR_DESC *FilterScaleTensor;
  const DML_TENSOR_DESC *FilterZeroPointTensor;
  const DML_TENSOR_DESC *BiasTensor;
  const DML_TENSOR_DESC *OutputScaleTensor;
  const DML_TENSOR_DESC *OutputZeroPointTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  DimensionCount;
  const UINT            *Strides;
  const UINT            *Dilations;
  const UINT            *StartPadding;
  const UINT            *EndPadding;
  UINT                  GroupCount;
};

Anggota

InputTensor

Jenis: const DML_TENSOR_DESC*

Tensor yang berisi data input. Dimensi yang diharapkan dari InputTensor .

InputScaleTensor

Jenis: const DML_TENSOR_DESC*

Tensor yang berisi data skala input. Dimensi yang diharapkan dari InputScaleTensor{ 1, 1, 1, 1 }. Nilai skala ini digunakan untuk mendekuensikan nilai input.

Nota

Nilai skala 0 menghasilkan perilaku yang tidak ditentukan.

InputZeroPointTensor

Jenis: _Maybenull_ const DML_TENSOR_DESC*

Tensor opsional yang berisi input data titik nol. Dimensi yang diharapkan dari InputZeroPointTensor . Nilai titik nol ini digunakan untuk mendikualisasi nilai input.

FilterTensor

Jenis: const DML_TENSOR_DESC*

Tensor yang berisi data filter. Dimensi yang diharapkan dari FilterTensor .

FilterScaleTensor

Jenis: const DML_TENSOR_DESC*

Tensor yang berisi data skala filter. Dimensi yang diharapkan dari FilterScaleTensor{ 1, 1, 1, 1 } jika kuantisasi per penyewa diperlukan, atau { 1, OutputChannelCount, 1, 1 } jika kuantisasi per saluran diperlukan. Nilai skala ini digunakan untuk mendequantizing nilai filter.

Nota

Nilai skala 0 menghasilkan perilaku yang tidak ditentukan.

FilterZeroPointTensor

Jenis: _Maybenull_ const DML_TENSOR_DESC*

Tensor opsional yang berisi filter data titik nol. Dimensi yang diharapkan dari FilterZeroPointTensor jika kuantisasi per penyewa diperlukan, atau jika kuantisasi per saluran diperlukan. Nilai titik nol ini digunakan untuk mendekunalisasi nilai filter.

BiasTensor

Jenis: _Maybenull_ const DML_TENSOR_DESC*

Tensor yang berisi data bias. Tensor bias adalah tensor yang berisi data yang disiarkan di seluruh tensor output di akhir konvolusi yang ditambahkan ke hasilnya. Dimensi biasTensor yang diharapkan { 1, OutputChannelCount, 1, 1 } untuk 4D.

OutputScaleTensor

Jenis: const DML_TENSOR_DESC*

Tensor yang berisi data skala output. Dimensi yang diharapkan dari OutputScaleTensor { 1, 1, 1, 1 }. Nilai skala input ini digunakan untuk mengukur nilai output konvolusi.

Nota

Nilai skala 0 menghasilkan perilaku yang tidak ditentukan.

OutputZeroPointTensor

Jenis: _Maybenull_ const DML_TENSOR_DESC*

Tensor opsional yang berisi filter data titik nol. Dimensi outputZeroPointTensor yang diharapkan { 1, 1, 1, 1 }. Nilai titik nol input ini digunakan untuk mengukur konvolusi nilai output.

OutputTensor

Jenis: const DML_TENSOR_DESC*

Tensor untuk menulis hasilnya. Dimensi outputTensor yang diharapkan { OutputBatchCount, OutputChannelCount, OutputHeight, OutputWidth }.

DimensionCount

Jenis: UINT

Jumlah dimensi spasial untuk operasi konvolusi. Dimensi spasial adalah dimensi yang lebih rendah dari tensor filter konvolusi FilterTensor. Nilai ini juga menentukan ukuranStrides , Dilations, StartPadding, dan array EndPadding. Hanya nilai 2 yang didukung.

Strides

Jenis: _Field_size_(DimensionCount) const UINT*

Langkah-langkah operasi konvolusi. Langkah-langkah ini diterapkan pada filter konvolusi. Mereka terpisah dari langkah tensor yang disertakan dalam DML_TENSOR_DESC.

Dilations

Jenis: _Field_size_(DimensionCount) const UINT*

Dilasi operasi konvolusi. Dilasi adalah langkah yang diterapkan ke elemen kernel filter. Ini memiliki efek mensimulasikan kernel filter yang lebih besar dengan mengayuh elemen kernel filter internal dengan nol.

StartPadding

Jenis: _Field_size_(DimensionCount) const UINT*

Nilai padding yang akan diterapkan ke awal setiap dimensi spasial filter dan tensor input operasi konvolusi.

EndPadding

Jenis: _Field_size_(DimensionCount) const UINT*

Nilai padding yang akan diterapkan ke akhir setiap dimensi spasial filter dan tensor input dari operasi konvolusi.

GroupCount

Jenis: UINT

Jumlah grup yang akan membagi operasi konvolusi menjadi. GroupCount dapat digunakan untuk mencapai konvolusi kedalaman dengan mengatur GroupCount sama dengan jumlah saluran input. Ini membagi konvolusi menjadi konvolusi terpisah per saluran input.

Ketersediaan

Operator ini diperkenalkan di DML_FEATURE_LEVEL_2_1.

Batasan tensor

  • BiasTensor, FilterTensor, InputTensor, dan OutputTensor harus memiliki DimensionCount yang sama.
  • OutputTensor dan OutputZeroPointTensor harus memiliki DataType yang sama.
  • InputTensor dan InputZeroPointTensor harus memilikiDataType yang sama.
  • FilterTensor dan FilterZeroPointTensor harus memilikiDataType yang sama.

Dukungan tensor

DML_FEATURE_LEVEL_5_2 ke atas

Tensor Jenis Jumlah dimensi yang didukung Jenis data yang didukung
InputTensor Masukan 3 hingga 4 INT8, UINT8
InputScaleTensor Masukan 1 hingga 4 FLOAT32
InputZeroPointTensor Input opsional 1 hingga 4 INT8, UINT8
FilterTensor Masukan 3 hingga 4 INT8, UINT8
FilterScaleTensor Masukan 1 hingga 4 FLOAT32
FilterZeroPointTensor Input opsional 1 hingga 4 INT8, UINT8
BiasTensor Input opsional 3 hingga 4 INT32
OutputScaleTensor Masukan 1 hingga 4 FLOAT32
OutputZeroPointTensor Input opsional 1 hingga 4 INT8, UINT8
OutputTensor Hasil 3 hingga 4 INT8, UINT8

DML_FEATURE_LEVEL_4_0 ke atas

Tensor Jenis Jumlah dimensi yang didukung Jenis data yang didukung
InputTensor Masukan 3 hingga 4 INT8, UINT8
InputScaleTensor Masukan 1 hingga 4 FLOAT32
InputZeroPointTensor Input opsional 1 hingga 4 INT8, UINT8
FilterTensor Masukan 3 hingga 4 INT8, UINT8
FilterScaleTensor Masukan 3 hingga 4 FLOAT32
FilterZeroPointTensor Input opsional 1 hingga 4 INT8, UINT8
BiasTensor Input opsional 3 hingga 4 INT32
OutputScaleTensor Masukan 1 hingga 4 FLOAT32
OutputZeroPointTensor Input opsional 1 hingga 4 INT8, UINT8
OutputTensor Hasil 3 hingga 4 INT8, UINT8

DML_FEATURE_LEVEL_2_1 ke atas

Tensor Jenis Jumlah dimensi yang didukung Jenis data yang didukung
InputTensor Masukan 4 INT8, UINT8
InputScaleTensor Masukan 4 FLOAT32
InputZeroPointTensor Input opsional 4 INT8, UINT8
FilterTensor Masukan 4 INT8, UINT8
FilterScaleTensor Masukan 4 FLOAT32
FilterZeroPointTensor Input opsional 4 INT8, UINT8
BiasTensor Input opsional 4 INT32
OutputScaleTensor Masukan 4 FLOAT32
OutputZeroPointTensor Input opsional 4 INT8, UINT8
OutputTensor Hasil 4 INT8, UINT8

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows 10 Build 20348
server minimum yang didukung Windows 10 Build 20348
Header directml.h