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.
.NET 11'den başlayarak, tensor işlemleri tutarlı şekil hizalama kuralları kullanır. Varsayılan derece-sıfır boş tensorlar ve span'lar hesaplamalar sırasında etkin şekli [0] olur ve işlemler şekilleri hizaladığında gereksiz baştaki tekil boyutları yoksayabilir.
Değişiklik, desteklenen hedef çerçeveleri de dahil olmak üzere System.Numerics.Tensors paketinde sunulur. Paketin güncelleştirilmesi, önceki .NET sürümleri hedefleyen uygulamaları etkileyebilir.
Sürüm kullanıma sunulmuştur
.NET 11
Önceki davranış
Tensor işlemleri şekilleri tutarsız bir şekilde işledi. Bazı işlemler için tam şekil eşleşmeleri gerekirken, diğerleri boyutları farklı şekilde hizalarken. Sonuç olarak, örneğin [3] ve [1, 1, 3] gibi gereksiz baştaki tekil boyutlara sahip eşdeğer şekiller işlemler arasında reddedilebilir veya farklı şekilde yorumlanabilir.
Varsayılan boş tensorlar ve span'lar 0-rank meta verisini korudu, ancak işlemler bunları tutarlı olarak etkin şekli [0] olan vektörler olarak işlemedi. Stack ve Concatenate işlemleri de girdi rank'lerine göre bir ekseni farklı şekilde yorumlayabilir.
Bazı işlemler ayrıca, mantıksal öğe sayısını veya uzaklıklarını int.MaxValue daralttı; bu da birden fazla int öğe içeren yerel destekli tensor span'ların doğru şekilde geçiş yapmasını engelledi.
EqualsAny, GreaterThanAny, GreaterThanOrEqualAny, LessThanAny ve LessThanOrEqualAny işlemleri, boş girişler de dahil olmak üzere tam mantıksal giriş uzunluğunu tutarlı bir şekilde incelemedi.
Yeni davranış
Tensor işlemleri artık paylaşılan şekil hizalama kurallarını kullanıyor:
- Varsayılan derece-sıfır boş tensorları ve span'lar hesaplamalar için etkin şekli
[0]’dır. DepolananRank,LengthsveStridesdeğerleri değişmez ve açıkça derecelendirilmiş boş şekiller boyutlarını korur. - İşlemler, şekilleri hizalarken yedekli baştaki tekil boyutları ekleyebilir veya kaldırabilir. Örneğin,
[1, 1, 3]ile[3]hizalanır ancak[2, 1]ve[1, 2]ayrı kalır. Sıfır uzunluklu boyutlar ve ilk olmayan singleton boyutlar önemli olmaya devam eder. - Şekil eşitliği yalnızca gereksiz baştaki tekil boyutları yoksayar. Diğer boyutları iletmez.
- Yığma ve birleştirme işlemleri, ilk girişin etkili şeklini kullanarak ekseni yorumlar. Diğer girişler ve varış noktaları bu şekle hizalanır.
- Varsayılan boş değerler
[2, 0]öğesine iletilebilir.[0]ile[0, 2]etkin şekilleri arasındaki ikili işlem uyumsuz sondaki boyutları reddeder. - kaynaklar ve hedefler, işlemler hizalandığında istenen şekil meta verilerini korur.
Yerel tarafından desteklenen tensor span’leri artık, int.MaxValue’dan fazla mantıksal öğe içeren span’ler de dahil olmak üzere, yerel boyutlu uzunluklar ve ofsetlerle üzerinde gezilebilir. Boş görünümler ayrıca kaynakları içinde bir depolama origin’i tutar.
EqualsAny, GreaterThanAny, GreaterThanOrEqualAny, LessThanAny ve LessThanOrEqualAny işlemleri artık tam mantıksal giriş aralığını inceler ve boş girişleri doğru şekilde işler.
Kesinti yaratan değişiklik türü
Bu, bir davranış değişikliğidir.
Değişiklik nedeni
Tutarlı şekil kuralları, tensor işlemlerini daha öngörülebilir hale getirir ve açıkça istenen boyutları korurken eşdeğer şekillerin birlikte çalışmasını sağlar. Yerel boyutlu geçiş, işlemlerin daha büyük depolama alanı tarafından desteklenen span'lerin tüm mantıksal aralığını kapsamasına da olanak tanır.
Daha fazla bilgi için bkz. dotnet/runtime#135060.
Önerilen eylem
Belirli bir şekil bileşiminin bir tensor işlemi tarafından kabul edilip edilmemesine bağlı olan kodu gözden geçirin. Varsayılan derece-sıfır boş değerlerinin etkin şeklinin [0] olduğunu ve hizalama ile şekil karşılaştırması sırasında gereksiz baştaki tekil boyutların yok sayılması gerektiğini dikkate alın. Açık sıfır uzunluklu boyutlar ve baştaki olmayan tekil boyutlar önemli olmaya devam eder.
Yığın ve birleştirme işlemleri için, ilk girişin etkin şekline göre ekseni yorumlayın. Kodunuz tam olarak depolanan sıralamaları veya uzunlukları gerektiriyorsa, işlemi çağırmadan önce bu meta verileri doğrulayın. Varsayılan boş değerlerin depolanan meta verileri değişmez.
Etkilenen API'ler
- Tensor.Broadcast, Tensor.BroadcastTo ve Tensor.TryBroadcastTo
- Tensor üzerindeki, tensör şekillerini hizalayan veya çağıran tarafından sağlanan bir hedefe yazan öğe düzeyinde ve kopyalama işlemleri
- Tensor.Concatenate, Tensor.ConcatenateOnDimension, Tensor.Stack ve Tensor.StackAlongDimension
- Tensor.Reshape, Tensor.Split, Tensor.SqueezeDimension, Tensor.Unsqueeze, Tensor.PermuteDimensions, Tensor.SetSlice, Tensor.SequenceEqual, Tensor.ResizeTo, Tensor.Reverse ve Tensor.ReverseDimension
- Tensor.EqualsAny, Tensor.GreaterThanAny, Tensor.GreaterThanOrEqualAny, Tensor.LessThanAnyve Tensor.LessThanOrEqualAny
- Tensor.IndexOfMax, Tensor.IndexOfMaxMagnitude, Tensor.IndexOfMin ve Tensor.IndexOfMinMagnitude