DML_RESAMPLE3_OPERATOR_DESC yapısı (directml.h)
Hedef tensor boyutunu hesaplamak için ölçek faktörlerini kullanarak öğeleri uygun yerlerde antialize etme ile kaynaktan hedef tensor'a yeniden örnekleme. Doğrusal veya en yakın komşu ilişkilendirme modunu kullanabilirsiniz. işleci, yalnızca 2B değil, birden çok boyutta ilişkilendirmeyi destekler. Böylece aynı uzamsal boyutu koruyabilir, ancak kanallar arasında veya toplu işlemler arasında ilişkilendirme yapabilirsiniz. Giriş ve çıkış koordinatları arasındaki ilişki aşağıdaki gibidir:
OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset
Ö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.15.1 ve üzeri. Ayrıca bkz. DirectML sürüm geçmişi.
Sözdizimi
struct DML_RESAMPLE3_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputTensor;
const DML_TENSOR_DESC* OutputTensor;
DML_INTERPOLATION_MODE InterpolationMode;
DML_AXIS_DIRECTION RoundingDirection;
UINT DimensionCount;
_Field_size_(DimensionCount) const FLOAT* Scales;
_Field_size_(DimensionCount) const FLOAT* InputPixelOffsets;
_Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets;
BOOL Antialiased;
};
Üyeler
InputTensor
Tür: const DML_TENSOR_DESC*
Giriş verilerini içeren tensor.
OutputTensor
Tür: const DML_TENSOR_DESC*
Çıkış verilerini yazmak için tensor.
InterpolationMode
Bu alan, çıkış piksellerini seçmek için kullanılan ilişkilendirme türünü belirler.
DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Her çıkış öğesi için ilgili piksel uzaklığına en yakın giriş öğesini seçen en yakın komşu algoritmasını kullanır.
DML_INTERPOLATION_MODE_LINEAR. Boyut başına en yakın iki komşu giriş öğesinin ağırlıklı ortalamasını hesaplayarak çıkış öğesini hesaplayan doğrusal ilişkilendirme algoritmasını kullanır. Yeniden örnekleme, her çıkış öğesi için toplam on altı giriş öğesi üzerinde ağırlıklı ortalamanın hesaplandığı dört boyuta (dörtgen) kadar desteklenir.
RoundingDirection
Tür: DML_AXIS_DIRECTION
Kesirli koordinatları giriş piksellerine geri eşlerken her eksen boyunca yuvarlama yönü. Bilinear ilişkilendirme kesirli koordinatları yine de ilişkilendirmesi olduğundan, bu yalnızca DML_INTERPOLATION_MODE_NEAREST_NEIGHBORetkiler.
DML_AXIS_DIRECTION_INCREASING. Kesirli koordinatları eksen değerlerini artırmaya (ceil) doğru yuvarlar.
DML_AXIS_DIRECTION_DECREASING. Kesirli koordinatları azalan eksen değerlerine (zemin) doğru yuvarlar.
DimensionCount
Tür: UINT
Ölçekler, InputPixelOffsetsve OutputPixelOffsets dizilerindeki öğelerin sayısı. Bu değer, InputTensor ve OutputTensorboyut sayısıyla eşleşmelidir.
Scales
Tür: _Field_size_(DimensionCount) const FLOAT*
Girişi yeniden örnekleme sırasında uygulanacak ölçekler; burada ölçeği 1 > ölçeği büyütür ve bu boyut için < 1 ölçeğini küçültür. Ölçeklerin tam olarak OutputSize / InputSize
olması gerekmeyecektir. Ölçeklendirmeden sonraki giriş çıkış sınırından daha büyükse, bunu çıkış boyutuna göre kırpmış oluruz. Öte yandan, ölçeklendirmeden sonraki giriş çıkış sınırından daha küçükse çıkış kenarları sıkıştırılır.
InputPixelOffsets
Tür: _Field_size_(DimensionCount) const FLOAT*
Yeniden örneklemeden önce giriş piksellerine uygulanacak uzaklıklar. Bu değer 0 olduğunda, pikselin ortası yerine sol üst köşesi kullanılır ve bu da genellikle beklenen sonucu vermez. Piksellerin merkezini kullanarak görüntüyü yeniden örneklemek ve DML_RESAMPLE_OPERATOR_DESC
ile aynı davranışı elde etmek için bu değer 0,5 olmalıdır.
OutputPixelOffsets
Tür: _Field_size_(DimensionCount) const FLOAT*
Yeniden örneklemeden sonra çıkış piksellerine uygulanacak uzaklıklar. Bu değer 0 olduğunda, pikselin ortası yerine sol üst köşesi kullanılır ve bu da genellikle beklenen sonucu vermez. Piksellerin merkezini kullanarak görüntüyü yeniden örneklemek ve DML_RESAMPLE_OPERATOR_DESCile aynı davranışı elde etmek için bu değer -0,5 olmalıdır.
Antialiased
Antialiasing, yeniden örnekleme filtresini bir faktör max(1, 1 / scale)
genişleterek elde edilir. Bu, alt örnekleme sırasında daha fazla giriş pikselinin çıkış pikseline katkıda bulunduğu anlamına gelir.
Bu, bu bayrak TRUE
olarak ayarlandığında ve aşağıdaki koşulların kabul edildiğinde oluşur:
- InterpolationMode DML_INTERPOLATION_MODE_LINEAR
- 1/Ölçekler > 2
Ardından bu işleç, aşağı ölçeklendirme sırasında bir antialiasing filtresi kullanır.
Açıklamalar
Antialiasedfalse
olduğunda, bu işleç DML_RESAMPLE2_OPERATOR_DESCeşdeğerdir.
Kullanılabilirlik
Bu işleç DML_FEATURE_LEVEL_6_4tanıtıldı.
Tensor kısıtlamaları
InputTensor ve OutputTensor aynı DataType ve DimensionCountolmalıdır.
Tensor desteği
Tensör | Tür | Desteklenen boyut sayıları | Desteklenen veri türleri |
---|---|---|---|
InputTensor | Girdi | 1 - 4 | FLOAT32, FLOAT16, INT8, UINT8 |
OutputTensor | Çıktı | 1 - 4 | FLOAT32, FLOAT16, INT8, UINT8 |
Gereksinim -leri
Üst Bilgi | directml.h |