Tensöre genel bakış

TensorFlow API'leri için Swift, hızlandırılmış hesaplama gerçekleştirmenin birincil yolu olarak Tensor türünü kullanır. Bir Tensor çok boyutlu bir değerler dizisini temsil eder ve Tensor üzerindeki işlemler, iki arka uçtan biri kullanılarak otomatik olarak mevcut hızlandırıcılara gönderilir.

Bir Tensor içerdiği değerlerin türü açısından geneldir . Bu değerlerin türü TensorFlowScalar ile uyumlu olmalıdır; yaygın türler Float , Int32 ve Bool . Örneğin, Float içeren iki Tensor önceden belirlenmiş bazı değerlerle başlatmak için aşağıdakileri yapabilirsiniz:

let tensor1 = Tensor<Float>([0.0, 1.0, 2.0])
let tensor2 = Tensor<Float>([1.5, 2.5, 3.5])

<Float> type parametresini dışarıda bırakmış olsaydınız, Swift bir tür Tensor<Double> sonucunu çıkarırdı. Double Swift'deki kayan nokta değişmezleri için varsayılan türdür. Float değerler makine öğrenimi hesaplamalarında daha yaygın olma eğilimindedir, bu yüzden burada bunu kullanıyoruz.

Birçok yaygın operatör Tensor çalışır. Örneğin bunlardan ikisini ekleyip sonucu elde etmek için aşağıdakileri yapabilirsiniz:

let tensor3 = tensor1 + tensor2

Bir Tensor üzerinde gerçekleştirebileceğiniz işlemlerin tam listesi API belgelerinde mevcuttur.

_Raw işlemler

Tensor işlemleri, hızlandırıcılarla çalışmanın iki farklı yöntemiyle desteklenir, ancak bunlar birleşik bir üst düzey arayüze sahiptir. Başlık altında, söz konusu Tensor için kullanılan arka uca bağlı olarak _RawXLA veya _RawTFEager sürümlerine gönderilecek _Raw işlemleri tanımlanır. TensorFlow veya X10'a yapılan bu _Raw bağlamaları otomatik olarak oluşturulur.

Normalde _Raw işlemleriyle doğrudan etkileşim kurmanız gerekmez. Deyimsel Swift arayüzleri bunların üzerine inşa edilmiştir ve Tensor hesaplamalarını genellikle bu şekilde gerçekleştirirsiniz.

Ancak, temel TensorFlow işlemlerinin tümü eşleşen Swift arayüzlerine sahip değildir, bu nedenle zaman zaman kodunuzdaki _Raw operatörlerine erişmeniz gerekebilir. Bunu yapmanız gerekiyorsa bunun nasıl çalıştığını gösteren etkileşimli bir eğitim mevcuttur.