Apache MXNet - Python API Sembolü
Bu bölümde, MXNet'te Symbol olarak adlandırılan bir arayüz hakkında bilgi edineceğiz.
Mxnet.ndarray
Apache MXNet'in Symbol API'si, sembolik programlama için bir arayüzdür. Symbol API, aşağıdakilerin kullanımına sahiptir -
Hesaplamalı grafikler
Azaltılmış bellek kullanımı
Kullanım öncesi fonksiyon optimizasyonu
Aşağıda verilen örnek, MXNet'in Symbol API'sini kullanarak nasıl basit bir ifade oluşturulabileceğini göstermektedir -
Normal bir Python listesinden 1-D ve 2-D 'dizi' kullanan bir NDArray -
import mxnet as mx
# Two placeholders namely x and y will be created with mx.sym.variable
x = mx.sym.Variable('x')
y = mx.sym.Variable('y')
# The symbol here is constructed using the plus ‘+’ operator.
z = x + y
Output
Aşağıdaki çıktıyı göreceksiniz -
<Symbol _plus0>
Example
(x, y, z)
Output
Çıktı aşağıda verilmiştir -
(<Symbol x>, <Symbol y>, <Symbol _plus0>)
Şimdi MXNet'in ndarray API'sinin sınıfları, işlevleri ve parametreleri hakkında ayrıntılı olarak tartışalım.
Sınıflar
Aşağıdaki tablo, MXNet'in Symbol API sınıflarını içerir -
Sınıf | Tanım |
---|---|
Sembol (tutamaç) | Bu sınıf, yani sembol, Apache MXNet'in sembolik grafiğidir. |
Fonksiyonlar ve parametreleri
Aşağıda, mxnet.Symbol API tarafından kapsanan bazı önemli işlevler ve parametreleri verilmiştir -
Fonksiyon ve Parametreleri | Tanım |
---|---|
Etkinleştirme ([veri, hareket_türü, çıkış, ad]) | Girişe eleman olarak bir aktivasyon fonksiyonu uygular. Desteklerrelu, sigmoid, tanh, softrelu, softsign aktivasyon fonksiyonları. |
BatchNorm ([veri, gama, beta, hareketli_ortalama,…]) | Toplu normalleştirme için kullanılır. Bu işlev, bir veri grubunu ortalama ve varyansa göre normalleştirir. Bir ölçek uygulargamma ve ofset beta. |
BilinearSampler ([veri, ızgara, cudnn_off,…]) | Bu işlev, giriş özelliği haritasına çift doğrusal örnekleme uygular. Aslında “Mekansal Trafo Ağları” nın anahtarıdır. OpenCV'de yeniden eşleme işlevine aşina iseniz, bu işlevin kullanımı buna oldukça benzer. Tek fark, geriye doğru geçişe sahip olmasıdır. |
BlockGrad ([veri, çıkış, ad]) | Adından da anlaşılacağı gibi, bu işlev gradyan hesaplamasını durdurur. Temel olarak, girdilerin birikmiş gradyanının bu operatörden geriye doğru akmasını durdurur. |
cast ([data, dtype, out, name]) | Bu işlev, girdinin tüm öğelerini yeni bir türe dönüştürecektir. |
Bu işlev, girdinin tüm öğelerini yeni bir türe dönüştürecektir. | Bu işlev, adı belirtildiği gibi, verilen şekil ve türde sıfırlarla dolu yeni bir simge döndürür. |
olanlar (şekil [, dtype]) | Bu işlev, adı belirtildiği gibi, verilen şekil ve türde olanlarla dolu yeni bir sembol döndürür. |
dolu (şekil, değer [, dtype]) | Bu işlev, ad belirtildiği gibi, verilen değerle doldurulmuş, belirli bir şekil ve türde yeni bir dizi döndürür. val. |
arange (başlat [, durdur, adım, tekrarla,…]) | Belirli bir aralık içinde eşit aralıklı değerleri döndürür. Değerler, yarı açık aralık [başlatma, durdurma) içinde oluşturulur, bu da aralığın aşağıdakileri içerdiği anlamına gelir:start ama hariç tutar stop. |
boşluk (başlangıç, bitiş, sayı [, bitiş noktası, ad,…]) | Belirli bir aralıkta eşit aralıklı sayılar döndürür. Düzen () işlevine benzer şekilde, değerler yarı açık aralık [başlat, durdur) içinde oluşturulur, bu da aralığın aşağıdakileri içerdiği anlamına gelir:start ama hariç tutar stop. |
histogram (a [, bölmeler, aralık]) | Adından da anlaşılacağı gibi, bu fonksiyon giriş verilerinin histogramını hesaplayacaktır. |
güç (taban, exp) | Adından da anlaşılacağı gibi, bu işlev, öğenin öğe bazında sonucunu döndürür: base eleman güçlerine yükseltildi expöğesi. Her iki giriş, yani taban ve exp, Sembol veya skaler olabilir. Burada yayına izin verilmediğini unutmayın. Kullanabilirsinizbroadcast_pow yayın özelliğini kullanmak istiyorsanız. |
SoftmaxActivation ([veri, mod, ad, öznitelik, çıkış]) | Bu işlev, girişe softmax etkinleştirmesini uygular. İç katmanlar için tasarlanmıştır. Aslında kullanımdan kaldırıldı, kullanabilirizsoftmax() yerine. |
Uygulama Örnekleri
Aşağıdaki örnekte işlevi kullanacağız power() exp elemanından güçlere yükseltilen temel elemanın eleman bazlı sonucunu döndürecektir:
import mxnet as mx
mx.sym.power(3, 5)
Output
Aşağıdaki çıktıyı göreceksiniz -
243
Example
x = mx.sym.Variable('x')
y = mx.sym.Variable('y')
z = mx.sym.power(x, 3)
z.eval(x=mx.nd.array([1,2]))[0].asnumpy()
Output
Bu, aşağıdaki çıktıyı üretir -
array([1., 8.], dtype=float32)
Example
z = mx.sym.power(4, y)
z.eval(y=mx.nd.array([2,3]))[0].asnumpy()
Output
Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı görmelisiniz -
array([16., 64.], dtype=float32)
Example
z = mx.sym.power(x, y)
z.eval(x=mx.nd.array([4,5]), y=mx.nd.array([2,3]))[0].asnumpy()
Output
Çıktı aşağıda belirtilmiştir -
array([ 16., 125.], dtype=float32)
Aşağıda verilen örnekte, fonksiyonu kullanacağız SoftmaxActivation() (or softmax()) girdiye uygulanacak ve iç katmanlara yöneliktir.
input_data = mx.nd.array([[2., 0.9, -0.5, 4., 8.], [4., -.7, 9., 2., 0.9]])
soft_max_act = mx.nd.softmax(input_data)
print (soft_max_act.asnumpy())
Output
Aşağıdaki çıktıyı göreceksiniz -
[[2.4258138e-03 8.0748333e-04 1.9912292e-04 1.7924475e-02 9.7864312e-01]
[6.6843745e-03 6.0796250e-05 9.9204916e-01 9.0463174e-04 3.0112563e-04]]
symbol.contrib
Contrib NDArray API, symbol.contrib paketinde tanımlanmıştır. Genellikle yeni özellikler için birçok yararlı deneysel API sağlar. Bu API, topluluk için yeni özellikleri deneyebilecekleri bir yer olarak çalışır. Özelliğe katkıda bulunan kişi de geri bildirimi alacaktır.
Fonksiyonlar ve parametreleri
Aşağıda, bazı önemli işlevler ve bunların kapsadığı parametreler yer almaktadır. mxnet.symbol.contrib API -
Fonksiyon ve Parametreleri | Tanım |
---|---|
rand_zipfian (true_classes, num_sampled;…) | Bu işlev, yaklaşık bir Zipfian dağılımından rastgele örnekler alır. Bu işlevin temel dağılımı Zipfian dağılımıdır. Bu işlev rastgele olarak num_sampled adayları örneklemektedir ve örneklenen_candidates'in elemanları yukarıda verilen temel dağılımdan çekilmektedir. |
foreach (gövde, veri, init_states) | Adından da anlaşılacağı gibi, bu işlev 0 boyutunda NDArrays üzerinden kullanıcı tanımlı hesaplama ile bir döngü çalıştırır. Bu işlev bir for döngüsünü simüle eder ve body, for döngüsünün bir yinelemesi için hesaplamaya sahiptir. |
while_loop (koşul, işlev, döngü_vars [,…]) | Adından da anlaşılacağı gibi, bu işlev kullanıcı tanımlı hesaplama ve döngü koşuluyla bir while döngüsü çalıştırır. Bu işlev, koşul yerine getirilirse tam anlamıyla özelleştirilmiş hesaplama yapan bir while döngüsünü simüle eder. |
koşul (ön, sonra_fonksiyon, başka_fonksiyon) | Adından da anlaşılacağı gibi, bu işlev kullanıcı tanımlı koşulu ve hesaplamayı kullanarak eğer-ise-değilse çalıştırır. Bu işlev, belirtilen koşula göre iki özelleştirilmiş hesaplamadan birini yapmayı seçen, benzer bir dalı simüle eder. |
getnnz ([veri, eksen, çıkış, ad]) | Bu işlev bize bir seyrek tensör için saklanan değerlerin sayısını verir. Aynı zamanda açık sıfırlar da içerir. Yalnızca CPU'da CSR matrisini destekler. |
yeniden hesaplama ([veriler, min_aralık, maks_aralık,…]) | Bu işlev, int32 ve karşılık gelen eşiklerde nicelenen belirli verileri, çalışma zamanında veya kalibrasyondan hesaplanan minimum ve maksimum eşikleri kullanarak int8'e yeniden hesaplar. |
index_copy ([eski_tensör, dizin_vektörü,…]) | Bu işlev, bir new_tensor into the old_tensor by selecting the indices in the order given in index. The output of this operator will be a new tensor that contains the rest elements of old tensor and the copied elements of new tensor. |
interleaved_matmul_encdec_qk ([sorgular,…]) | Bu operatör, kodlayıcı-kod çözücü olarak çok başlı dikkat kullanımında sorguların ve anahtarların projeksiyonları arasındaki matris çarpımını hesaplar. Koşul, girdilerin düzeni izleyen sorgu projeksiyonlarının bir tensörü olmasıdır: (seq_length, batch_size, num_heads *, head_dim). |
Uygulama Örnekleri
Aşağıdaki örnekte, yaklaşık bir Zipfian dağılımından rastgele örnekler çizmek için rand_zipfian işlevini kullanacağız -
import mxnet as mx
true_cls = mx.sym.Variable('true_cls')
samples, exp_count_true, exp_count_sample = mx.sym.contrib.rand_zipfian(true_cls, 5, 6)
samples.eval(true_cls=mx.nd.array([3]))[0].asnumpy()
Output
Aşağıdaki çıktıyı göreceksiniz -
array([4, 0, 2, 1, 5], dtype=int64)
Example
exp_count_true.eval(true_cls=mx.nd.array([3]))[0].asnumpy()
Output
Çıktı aşağıda belirtilmiştir -
array([0.57336551])
Example
exp_count_sample.eval(true_cls=mx.nd.array([3]))[0].asnumpy()
Output
Aşağıdaki çıktıyı göreceksiniz -
array([1.78103594, 0.46847373, 1.04183923, 0.57336551, 1.04183923])
Aşağıdaki örnekte işlevi kullanacağız while_loop kullanıcı tanımlı hesaplama ve döngü koşulu için bir while döngüsü çalıştırmak için -
cond = lambda i, s: i <= 7
func = lambda i, s: ([i + s], [i + 1, s + i])
loop_vars = (mx.sym.var('i'), mx.sym.var('s'))
outputs, states = mx.sym.contrib.while_loop(cond, func, loop_vars, max_iterations=10)
print(outputs)
Output
Çıktı aşağıda verilmiştir:
[<Symbol _while_loop0>]
Example
Print(States)
Output
Bu, aşağıdaki çıktıyı üretir -
[<Symbol _while_loop0>, <Symbol _while_loop0>]
Aşağıdaki örnekte işlevi kullanacağız index_copy new_tensor öğelerini old_tensor'a kopyalar.
import mxnet as mx
a = mx.nd.zeros((6,3))
b = mx.nd.array([[1,2,3],[4,5,6],[7,8,9]])
index = mx.nd.array([0,4,2])
mx.nd.contrib.index_copy(a, index, b)
Output
Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı görmelisiniz -
[[1. 2. 3.]
[0. 0. 0.]
[7. 8. 9.]
[0. 0. 0.]
[4. 5. 6.]
[0. 0. 0.]]
<NDArray 6x3 @cpu(0)>
Symbol.image
Image Symbol API, symbol.image paketinde tanımlanır. Adından da anlaşılacağı gibi, genellikle görüntüler ve özellikleri için kullanılır.
Fonksiyonlar ve parametreleri
Aşağıda, bazı önemli işlevler ve bunların kapsadığı parametreler yer almaktadır. mxnet.symbol.image API -
Fonksiyon ve Parametreleri | Tanım |
---|---|
Adjust_lighting ([veri, alfa, çıkış, ad]) | Adından da anlaşılacağı gibi, bu işlev, girişin aydınlatma seviyesini ayarlar. AlexNet tarzını takip eder. |
kırpma ([veri, x, y, genişlik, yükseklik, dışarı, ad]) | Bu işlevin yardımıyla, bir görüntü NDArray (Y x G x C) veya (N x Y x G x C) kullanıcı tarafından verilen boyuta göre kırpılabilir. |
normalize ([veri, ortalama, std, çıkış, ad]) | Bir şekil tensörünü (C x Y x G) veya (N x C x Y x G) ile normalize edecektir. mean ve standard deviation(SD). |
random_crop ([veri, xrange, yrange, genişlik,…]) | Crop () 'ya benzer şekilde, kullanıcı tarafından verilen boyuta göre bir görüntü NDArray (Y x G x C) veya (N x Y x G x C) rasgele kırpılır. Sonucu, eğersrc daha küçük size. |
random_lighting([veri, alfa_std, çıkış, ad]) | Adından da anlaşılacağı gibi, bu işlev PCA sesini rasgele ekler. Aynı zamanda AlexNet tarzını da takip eder. |
random_resized_crop ([veriler, xrange, yrange,…]) | Ayrıca, belirli bir boyuta göre rastgele bir NDArray şekil (Y x G x C) veya (N x Y x G x C) resmi kırpar. Src boyutundan küçükse, sonucu daha yüksek örnekleyecektir. Alanı ve en boy oranını da rastgele hale getirecektir. |
yeniden boyutlandırma ([veri, boyut, tutma_ oranı, ara değer,…]) | Adından da anlaşılacağı gibi, bu işlev bir görüntü NDArray (Y x G x C) veya (N x Y x G x C) kullanıcı tarafından verilen boyuta yeniden boyutlandıracaktır. |
to_tensor ([veri, çıkış, ad]) | [0, 255] aralığındaki değerlere sahip bir görüntü NDArray şekil dizisini (Y x G x C) veya (N x Y x G x C) bir tensör ND şekil dizisine (C x Y x G) veya ( N x C x H x W) [0, 1] aralığındaki değerlerle. |
Uygulama Örnekleri
Aşağıdaki örnekte, [0, 255] aralığındaki değerlere sahip görüntü NDŞekil dizisini (Y x G x D) veya (N x Y x G x D) tensör NDArray'e dönüştürmek için to_tensor işlevini kullanacağız. şekil (C x Y x G) veya (N x C x Y x G) [0, 1] aralığındaki değerlerle.
import numpy as np
img = mx.sym.random.uniform(0, 255, (4, 2, 3)).astype(dtype=np.uint8)
mx.sym.image.to_tensor(img)
Output
Çıktı aşağıda belirtilmiştir -
<Symbol to_tensor4>
Example
img = mx.sym.random.uniform(0, 255, (2, 4, 2, 3)).astype(dtype=np.uint8)
mx.sym.image.to_tensor(img)
Output
Çıktı aşağıda belirtilmiştir:
<Symbol to_tensor5>
Aşağıdaki örnekte, bir şekil tensörünü (C x Y x G) veya (N x C x Y x G) normalize etmek için normalize () işlevini kullanacağız. mean ve standard deviation(SD).
img = mx.sym.random.uniform(0, 1, (3, 4, 2))
mx.sym.image.normalize(img, mean=(0, 1, 2), std=(3, 2, 1))
Output
Aşağıda verilen kodun çıktısıdır -
<Symbol normalize0>
Example
img = mx.sym.random.uniform(0, 1, (2, 3, 4, 2))
mx.sym.image.normalize(img, mean=(0, 1, 2), std=(3, 2, 1))
Output
Çıktı aşağıda gösterilmiştir -
<Symbol normalize1>
Symbol.random
Random Symbol API, symbol.random paketinde tanımlanmıştır. Adından da anlaşılacağı gibi, MXNet'in rastgele dağıtım üreticisi Symbol API'sidir.
Fonksiyonlar ve parametreleri
Aşağıda, bazı önemli işlevler ve bunların kapsadığı parametreler yer almaktadır. mxnet.symbol.random API -
Fonksiyon ve Parametreleri | Tanım |
---|---|
tekdüze ([düşük, yüksek, şekil, dtype, ctx, dışarı]) | Düzgün bir dağılımdan rastgele örnekler üretir. |
normal ([loc, scale, shape, dtype, ctx, out]) | Normal (Gauss) bir dağılımdan rastgele örnekler üretir. |
randn (* şekil, ** kwargs) | Normal (Gauss) bir dağılımdan rastgele örnekler üretir. |
poisson ([lam, şekil, dtype, ctx, dışarı]) | Poisson dağılımından rastgele örnekler üretir. |
üstel ([ölçek, şekil, dtype, ctx, dışarı]) | Üstel bir dağılımdan örnekler üretir. |
gama ([alfa, beta, şekil, dtype, ctx, çıkış]) | Bir gama dağılımından rastgele örnekler üretir. |
multinomial (veri [, şekil, get_prob, çıkış, dtype]) | Birden çok çok terimli dağılımdan eşzamanlı örnekleme üretir. |
negatif_binom ([k, p, şekil, dtype, ctx, dışarı]) | Negatif bir binom dağılımından rastgele örnekler oluşturur. |
generalized_negative_binomial ([mu, alfa;…]) | Genelleştirilmiş bir negatif binom dağılımından rastgele örnekler üretir. |
karıştır (veri, ** kwargs) | Öğeleri rastgele karıştırır. |
randint (düşük, yüksek [, şekil, dtype, ctx, dışarı]) | Ayrık tekdüze bir dağılımdan rastgele örnekler üretir. |
üssel_like ([veriler, lam, çıkış, ad]) | Giriş dizisi şekline göre üstel bir dağılımdan rastgele örnekler üretir. |
gamma_like ([veri, alfa, beta, çıkış, ad]) | Girdi dizisi şekline göre bir gama dağılımından rastgele örnekler üretir. |
generalized_negative_binomial_like ([veriler;…]) | Girdi dizisi şekline göre genelleştirilmiş bir negatif binom dağılımından rastgele örnekler üretir. |
negatif_binom_like ([veri, k, p, çıkış, ad]) | Girdi dizisi şekline göre negatif bir binom dağılımından rastgele örnekler üretir. |
normal_like ([veri, konum, ölçekleme, çıkış, ad]) | Giriş dizisi şekline göre normal (Gauss) bir dağılımdan rastgele örnekler üretir. |
poisson_like ([veriler, lam, çıkış, ad]) | Giriş dizisi şekline göre bir Poisson dağılımından rastgele örnekler üretir. |
uniform_like ([veri, düşük, yüksek, çıkış, ad]) | Girdi dizisi şekline göre tek tip bir dağılımdan rastgele örnekler üretir. |
Uygulama Örnekleri
Aşağıdaki örnekte, shuffle () işlevini kullanarak öğeleri rastgele karıştıracağız. Diziyi ilk eksen boyunca karıştıracaktır.
data = mx.nd.array([[0, 1, 2], [3, 4, 5], [6, 7, 8],[9,10,11]])
x = mx.sym.Variable('x')
y = mx.sym.random.shuffle(x)
y.eval(x=data)
Output
Aşağıdaki çıktıyı göreceksiniz:
[
[[ 9. 10. 11.]
[ 0. 1. 2.]
[ 6. 7. 8.]
[ 3. 4. 5.]]
<NDArray 4x3 @cpu(0)>]
Example
y.eval(x=data)
Output
Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı görmelisiniz -
[
[[ 6. 7. 8.]
[ 0. 1. 2.]
[ 3. 4. 5.]
[ 9. 10. 11.]]
<NDArray 4x3 @cpu(0)>]
Aşağıdaki örnekte, genelleştirilmiş bir negatif iki terimli dağılımdan rastgele örnekler alacağız. Bunun için işlevi kullanacakgeneralized_negative_binomial().
mx.sym.random.generalized_negative_binomial(10, 0.1)
Output
Çıktı aşağıda verilmiştir -
<Symbol _random_generalized_negative_binomial0>
Symbol.sparse
Sparse Symbol API, mxnet.symbol.sparse paketinde tanımlanmıştır. Adından da anlaşılacağı gibi, seyrek sinir ağı grafikleri ve CPU üzerinde otomatik farklılaşma sağlar.
Fonksiyonlar ve parametreleri
Aşağıda, önemli fonksiyonlardan bazıları (Sembol oluşturma rutinleri, Sembol Manipülasyon rutinleri, Matematiksel fonksiyonlar, Trigonometrik fonksiyon, Hyberbolik fonksiyonlar, Azaltma fonksiyonları, Yuvarlama, Yetkiler, Sinir Ağı) ve bunların parametreleri yer almaktadır. mxnet.symbol.sparse API -
Fonksiyon ve Parametreleri | Tanım |
---|---|
ElementWiseSum (* args, ** kwargs) | Bu fonksiyon tüm girdi argümanlarını akıllıca ekleyecektir. Örneğin, _ (1,2,… = 1 + 2 + ⋯ +). Burada, add_n'in, add'yi n kez çağırmaktan potansiyel olarak daha verimli olduğunu görebiliriz. |
Gömme ([veri, ağırlık, girdi_dim,…]) | Tamsayı endekslerini vektör temsilleriyle yani düğünlerle eşleştirecektir. Aslında kelimeleri, kelime düğünleri olarak adlandırılan yüksek boyutlu uzayda gerçek değerli vektörlere eşler. |
LinearRegressionOutput ([veri, etiket,…]) | Geriye doğru yayılma sırasında kayıp karesi için hesaplar ve optimize eder, ileriye doğru yayılma sırasında sadece çıktı verisi verir. |
LogisticRegressionOutput ([veri, etiket,…]) | Girişe sigmoid işlevi de denen bir lojistik işlevi uygular. Fonksiyon 1/1 + exp (−x) olarak hesaplanır. |
MAERegressionOutput ([veri, etiket,…]) | Bu operatör, girdinin ortalama mutlak hatasını hesaplar. MAE, aslında mutlak hatanın beklenen değerine karşılık gelen bir risk metriğidir. |
abs ([veriler, ad, öznitelik, çıkış]) | Adından da anlaşılacağı gibi, bu işlev girdinin eleman bazında mutlak değerini döndürecektir. |
adagrad_update ([ağırlık, grad, geçmiş, lr,…]) | İçin bir güncelleme işlevidir AdaGrad optimizer. |
adam_update ([ağırlık, derece, ortalama, var, lr,…]) | İçin bir güncelleme işlevidir Adam optimizer. |
add_n (* değiştirgeler, ** kwargs) | Adından da anlaşılacağı gibi, tüm girdi argümanlarını eleman bazında ekleyecektir. |
arccos ([veriler, ad, öznitelik, çıkış]) | Bu işlev, girdi dizisinin eleman bazında ters kosinüsünü döndürür. |
nokta ([lhs, rhs, devrik_a, devrik_b,…]) | Adından da anlaşılacağı gibi, iki dizinin iç çarpımını verecektir. Girdi dizisi boyutuna bağlı olacaktır: 1-D: vektörlerin iç çarpımı 2-D: matris çarpımı ND: İlk girdinin son ekseni ve ikinci girdinin ilk ekseni üzerindeki toplam çarpım. |
elemwise_add ([lhs, rhs, ad, öznitelik, çıkış]) | Adından da anlaşılacağı gibi add argümanlar öğesi bilge. |
elemwise_div ([lhs, rhs, name, attr, out]) | Adından da anlaşılacağı gibi divide argümanlar öğesi bilge. |
elemwise_mul ([lhs, rhs, ad, öznitelik, çıkış]) | Adından da anlaşılacağı gibi Multiply argümanlar öğesi bilge. |
elemwise_sub ([lhs, rhs, ad, öznitelik, çıkış]) | Adından da anlaşılacağı gibi, bağımsız değişkenleri akıllıca çıkaracaktır. |
exp ([veri, ad, attr, dışarı]) | Bu fonksiyon, verilen girdinin eleman bazında üstel değerini döndürecektir. |
sgd_update ([ağırlık, derece, lr, wd,…]) | Stokastik Gradyan İniş iyileştirici için bir güncelleme işlevi olarak işlev görür. |
sigmoid ([veri, ad, öznitelik, çıkış]) | Adından da anlaşılacağı gibi hesaplayacak sigmoid x öğesinin bilge. |
işaret ([veri, ad, öznitelik, çıkış]) | Verilen girdinin eleman bilge işaretini döndürecektir. |
günah ([veri, ad, öznitelik, çıkış]) | Adından da anlaşılacağı gibi, bu işlev verilen girdi dizisinin eleman bilge sinüsünü hesaplayacaktır. |
Uygulama Örneği
Aşağıdaki örnekte, kullanarak öğeleri rastgele karıştıracağız. ElementWiseSum()işlevi. Tamsayı endekslerini vektör temsilleriyle, yani kelime düğünleriyle eşler.
input_dim = 4
output_dim = 5
Example
/* Here every row in weight matrix y represents a word. So, y = (w0,w1,w2,w3)
y = [[ 0., 1., 2., 3., 4.],
[ 5., 6., 7., 8., 9.],
[ 10., 11., 12., 13., 14.],
[ 15., 16., 17., 18., 19.]]
/* Here input array x represents n-grams(2-gram). So, x = [(w1,w3), (w0,w2)]
x = [[ 1., 3.],
[ 0., 2.]]
/* Now, Mapped input x to its vector representation y.
Embedding(x, y, 4, 5) = [[[ 5., 6., 7., 8., 9.],
[ 15., 16., 17., 18., 19.]],
[[ 0., 1., 2., 3., 4.],
[ 10., 11., 12., 13., 14.]]]