Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Giriş tensoru üzerinden kayan pencere içindeki öğeler arasında nicelenmiş değerlerin ortalamasını alır. Bu işleç matematiksel olarak girişlerin dequantizing, ardından ortalama havuz oluşturma ve ardından çıktıyı niceleme ile eşdeğerdir.
İşlevi dequantize
f(Input, Scale, ZeroPoint) = (Input - ZeroPoint) * Scale
Quantize işlevi
f(Input, Scale, ZeroPoint) = clamp(round(Input / Scale) + ZeroPoint, Min, Max)
Önemli
Bu API, DirectML tek başına yeniden dağıtılabilir paketinin bir parçası olarak kullanılabilir (bkz . Microsoft.AI.DirectML sürüm 1.13 ve üzeri. Ayrıca bkz . DirectML sürüm geçmişi.
Sözdizimi
struct DML_QUANTIZED_LINEAR_AVERAGE_POOLING_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputTensor;
const DML_TENSOR_DESC* InputScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* InputZeroPointTensor;
const DML_TENSOR_DESC* OutputScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor;
const DML_TENSOR_DESC* OutputTensor;
UINT DimensionCount;
_Field_size_(DimensionCount) const UINT* Strides;
_Field_size_(DimensionCount) const UINT* WindowSize;
_Field_size_(DimensionCount) const UINT* StartPadding;
_Field_size_(DimensionCount) const UINT* EndPadding;
_Field_size_(DimensionCount) const UINT* Dilations;
BOOL IncludePadding;
};
Üyeler
InputTensor
Tür: const DML_TENSOR_DESC*
4B ve 5B için { BatchCount, ChannelCount, Height, Width }{ BatchCount, ChannelCount, Depth, Height, Weight }.
InputScaleTensor
Tür: const DML_TENSOR_DESC*
InputTensor ölçek verilerini içeren bir tensor .
InputScaleTensor'ın beklenen boyutları, tensor { 1, 1, 1, 1 } başına nicelemenin gerekli olması veya { 1, ChannelCount, 1, 1 } kanal başına nicelemenin gerekli olmasıdır. Bu ölçek değerleri InputTensor değerlerinin dequantizing için kullanılır.
Uyarı
0 ölçek değeri tanımsız davranışla sonuçlanır.
InputZeroPointTensor
Tür: _Maybenull_ const DML_TENSOR_DESC*
InputTensor sıfır noktası verilerini içeren isteğe bağlı bir tensor.
InputZeroPointTensor'ın{ 1, 1, 1, 1 } beklenen boyutları, tensor başına nicelemenin gerekli olması veya { 1, ChannelCount, 1, 1 } kanal başına nicelemenin gerekli olmasıdır. Bu sıfır noktası değerleri , InputTensor değerlerinin dequantizesi için kullanılır.
OutputScaleTensor
Tür: const DML_TENSOR_DESC*
OutputTensor ölçek verilerini içeren bir tensor .
OutputScaleTensor'ın beklenen boyutları, tensor { 1, 1, 1, 1 } başına nicelemenin gerekli olması veya { 1, ChannelCount, 1, 1 } kanal başına nicelemenin gerekli olmasıdır. Bu ölçek değerleri OutputTensor değerlerini ölçmek için kullanılır.
Uyarı
0 ölçek değeri tanımsız davranışla sonuçlanır.
OutputZeroPointTensor
Tür: _Maybenull_ const DML_TENSOR_DESC*
OutputTensor sıfır noktası verilerini içeren isteğe bağlı bir tensor .
OutputZeroPointTensor'ın{ 1, 1, 1, 1 } beklenen boyutları, tensor başına nicelemenin gerekli olması veya { 1, ChannelCount, 1, 1 } kanal başına nicelemenin gerekli olmasıdır. Bu sıfır noktası değeri OutputTensor değerlerini ölçmek için kullanılır.
OutputTensor
Tür: const DML_TENSOR_DESC*
Çıkış tensorunun açıklaması. Çıkış tensorunun boyutları aşağıdaki gibi hesaplanabilir.
OutputTensor->Sizes[0] = InputTensor->Sizes[0];
OutputTensor->Sizes[1] = InputTensor->Sizes[1];
for (UINT i = 0; i < DimensionCount; ++i) {
UINT PaddedSize = InputTensor->Sizes[i + 2] + StartPadding[i] + EndPadding[i];
OutputTensor->Sizes[i + 2] = (PaddedSize - WindowSizes[i]) / Strides[i] + 1;
}
DimensionCount
Tür: UINT
Giriş tensor InputTensor'ın uzamsal boyutlarının sayısıdır ve bu sayı, kayan pencere WindowSize'in boyut sayısına da karşılık gelir. Bu değer Strides, StartPadding ve EndPadding dizilerinin boyutunu da belirler. InputTensor 4B olduğunda 2, 5B tensor olduğunda 3 olarak ayarlanmalıdır.
Strides
Tür: _Field_size_(DimensionCount) const UINT*
{ Height, Width } 2 veya 3 olarak ayarlandığında boyutların kayan pencere boyutları { Depth, Height, Width } için adımlar.
WindowSize
Tür: _Field_size_(DimensionCount) const UINT*
{ Height, Width } 2 veya 3 olarak ayarlandığında içindeki { Depth, Height, Width } kayan pencerenin boyutları.
StartPadding
Tür: _Field_size_(DimensionCount) const UINT*
Giriş tensor InputTensor'ın her uzamsal boyutunun başına uygulanacak doldurma öğelerinin sayısı.
{ Height, Width } 2 veya 3 olarak ayarlandığında içindedir{ Depth, Height, Width }.
EndPadding
Tür: _Field_size_(DimensionCount) const UINT*
Giriş tensor InputTensor'ın her uzamsal boyutunun sonuna uygulanacak doldurma öğelerinin sayısı.
{ Height, Width } 2 veya 3 olarak ayarlandığında içindedir{ Depth, Height, Width }.
Dilations
Tür: _Field_size_(DimensionCount) const UINT*
Bu değerin her öğesi için kayan penceredeki bir öğenin seçildiği giriş tensor InputTensor'ın her uzamsal boyutu için değerler.
{ Height, Width } 2 veya 3 olarak ayarlandığında içindedir{ Depth, Height, Width }.
IncludePadding
Tür: BOOL
Kayan pencere içindeki tüm öğeler arasında ortalama değeri hesaplarken uzamsal kenarların çevresine doldurma öğelerinin eklenip eklenmeyeceğini gösterir. Değer YANLIŞ olarak ayarlandığında, doldurma öğeleri ortalama hesaplamasının bölen değerinin bir parçası olarak sayılmaz.
Kullanılabilirlik
Bu işleç DML_FEATURE_LEVEL_6_2 tanıtıldı.
Tensor kısıtlamaları
- InputTensor ve OutputTensor aynı DimensionCount'a sahip olmalıdır.
- InputTensor ve InputZeroPointTensor aynı DataType'a sahip olmalıdır.
- OutputTensor ve OutputZeroPointTensor aynı DataType'a sahip olmalıdır.
Tensor desteği
| Tensör | Nazik | Desteklenen boyut sayıları | Desteklenen veri türleri |
|---|---|---|---|
| Giriş Tensörü | Veri Girişi | 4 - 5 | INT8, UINT8 |
| InputScaleTensor | Veri Girişi | 1 - 5 | FLOAT32 |
| InputZeroPointTensor | İsteğe bağlı giriş | 1 - 5 | INT8, UINT8 |
| OutputScaleTensor | Veri Girişi | 1 - 5 | FLOAT32 |
| OutputZeroPointTensor | İsteğe bağlı giriş | 1 - 5 | INT8, UINT8 |
| ÇıkışTensör | Çıktı | 4 - 5 | INT8, UINT8 |
Gereksinimler
| Üstbilgi | directml.h |