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.
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şkilendirmediğinden, bu yalnızca DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR etkiler.
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, InputPixelOffsets ve OutputPixelOffsets dizilerindeki öğelerin sayısı. Bu değer InputTensor ve OutputTensor boyut 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 / InputSizeolması 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_DESCile 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_DESC ile aynı davranışı elde etmek için bu değerin -0,5 olması gerekir.
Antialiased
Tür: BOOL
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 TRUEolarak 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
Antialiased olduğundafalse, bu işleç DML_RESAMPLE2_OPERATOR_DESC eşdeğerdir.
Kullanılabilirlik
Bu işleç DML_FEATURE_LEVEL_6_4 tanıtıldı.
Tensor kısıtlamaları
InputTensor ve OutputTensor aynı DataType ve DimensionCount'a sahip olmalıdır.
Tensor desteği
| Tensör | Tür | Desteklenen boyut sayıları | Desteklenen veri türleri |
|---|---|---|---|
| Giriş Tensörü | Girdi | 1 - 4 | FLOAT32, FLOAT16, INT8, UINT8 |
| ÇıkışTensör | Çıktı | 1 - 4 | FLOAT32, FLOAT16, INT8, UINT8 |
Gereksinim -leri
| Üstbilgi | directml.h |