Apache MXNet - Python API Modülü

Apache MXNet'in modül API'si bir FeedForward modeli gibidir ve Torch modülüne benzer şekilde oluşturmak daha kolaydır. Aşağıdaki sınıflardan oluşur -

BaseModule ([günlükçü])

Bir modülün temel sınıfını temsil eder. Bir modül, hesaplama bileşeni veya hesaplama makinesi olarak düşünülebilir. Bir modülün görevi, ileri ve geri geçişleri gerçekleştirmektir. Ayrıca bir modeldeki parametreleri de günceller.

Yöntemler

Aşağıdaki tablo aşağıdakilerden oluşan yöntemleri göstermektedir: BaseModule class-

Bu yöntem, tüm cihazlardan durumları alacak
Yöntemler Tanım
geri ([out_grads]) Adından da anlaşılacağı gibi bu yöntem, backward hesaplama.
bağla (veri_şekilleri [, etiket_şekilleri,…]) Yürütücüler oluşturmak için sembolleri bağlar ve modül ile hesaplama yapmadan önce gereklidir.
sığdır (tren_verisi [, eval_data, eval_metric,…]) Bu yöntem, modül parametrelerini eğitir.
ileri (data_batch [, is_train]) Adından da anlaşılacağı gibi, bu yöntem İleri hesaplamayı uygular. Bu yöntem, farklı toplu iş boyutları veya farklı görüntü boyutları gibi çeşitli şekillere sahip veri toplu işlerini destekler.
ileri_geri (data_batch) Adından da anlaşılacağı gibi, hem ileri hem de geri çağıran kullanışlı bir işlevdir.
get_input_grads ([merge_multi_context]) Bu yöntem, önceki geriye dönük hesaplamada hesaplanan girdilere gradyanları alacaktır.
get_outputs ([merge_multi_context]) Adından da anlaşılacağı gibi, bu yöntem önceki ileri hesaplamanın çıktılarını alacaktır.
get_params () Cihazda hesaplama yapmak için kullanılan gerçek parametrelerin potansiyel olarak kopyaları olan parametreleri alır.
get_states ([merge_multi_context])
init_optimizer ([kvstore, optimize edici,…]) Bu yöntem, optimize edicileri kurar ve başlatır. Ayrıca başlatırkvstore eğitim dağıtmak için.
init_params ([başlatıcı, arg_params,…]) Adından da anlaşılacağı gibi, bu yöntem parametreleri ve yardımcı durumları başlatacaktır.
install_monitor (mon) Bu yöntem monitörü tüm uygulayıcılara kuracaktır.
iter_predict (eval_data [, sayı_batch, sıfırla,…]) Bu yöntem tahminler üzerinde yinelenecektir.
load_params (isim) Adından da anlaşılacağı gibi, model parametrelerini dosyadan yükleyecektir.
tahmin (eval_data [, sayı_batch,…]) Tahmini çalıştıracak ve çıktıları da toplayacaktır.
hazırla (data_batch [, sparse_row_id_fn]) Operatör, belirli bir veri grubunu işlemek için modülü hazırlar.
save_params (isim) Adın da belirttiği gibi, bu işlev model parametrelerini dosyaya kaydedecektir.
puan (eval_data, eval_metric [, sayı_batch;…]) Tahmini çalıştırır eval_data ve verilenlere göre performansı da değerlendirir. eval_metric.
set_params (arg_params, aux_params [,…]) Bu yöntem parametre ve yardımcı durum değerlerini atayacaktır.
set_states ([durumlar, değer]) Bu yöntem, adından da anlaşılacağı gibi, durumlar için değer belirler.
Güncelleme() Bu yöntem, verilen parametreleri kurulu optimize ediciye göre günceller. Ayrıca, önceki ileri-geri toplu işlemde hesaplanan degradeleri de günceller.
update_metric (eval_metric, etiketler [, pre_sliced]) Bu yöntem, adından da anlaşılacağı gibi, son ileri hesaplamanın çıktıları üzerindeki değerlendirme ölçüsünü değerlendirir ve biriktirir.
geri ([out_grads]) Adından da anlaşılacağı gibi bu yöntem, backward hesaplama.
bağla (veri_şekilleri [, etiket_şekilleri,…]) Grupları kurar ve uygulayıcıyı varsayılan paket anahtarı için bağlar. Bu yöntem, birBucketingModule.
ileri (data_batch [, is_train]) Adından da anlaşılacağı gibi, bu yöntem İleri hesaplamayı uygular. Bu yöntem, farklı toplu iş boyutları veya farklı görüntü boyutları gibi çeşitli şekillere sahip veri toplu işlerini destekler.
get_input_grads ([merge_multi_context]) Bu yöntem, önceki geriye dönük hesaplamada hesaplanan girdilere gradyanları alacaktır.
get_outputs ([merge_multi_context]) Adından da anlaşılacağı gibi, bu yöntem önceki ileri hesaplamadan çıktılar alacaktır.
get_params () Mevcut parametreleri, özellikle cihazda hesaplama yapmak için kullanılan gerçek parametrelerin potansiyel olarak kopyaları olanları alır.
get_states ([merge_multi_context]) Bu yöntem, tüm cihazlardan durumları alacaktır.
init_optimizer ([kvstore, optimize edici,…]) Bu yöntem, optimize edicileri kurar ve başlatır. Ayrıca başlatırkvstore eğitim dağıtmak için.
init_params ([başlatıcı, arg_params,…]) Adından da anlaşılacağı gibi, bu yöntem parametreleri ve yardımcı durumları başlatacaktır.
install_monitor (mon) Bu yöntem monitörü tüm uygulayıcılara kuracaktır.
yük (önek, epoch [, sym_gen,…]) Bu yöntem, önceden kaydedilmiş kontrol noktasından bir model oluşturacaktır.
load_dict ([sym_dict, sym_gen,…]) Bu yöntem, bir sözlük (dict) eşlemesinden bir model oluşturacaktır. bucket_keysembollere. Ayrıca paylaşırarg_params ve aux_params.
hazırla (data_batch [, sparse_row_id_fn]) Operatör, belirli bir veri grubunu işlemek için modülü hazırlar.
save_checkpoint (önek, epoch [, remove_amp_cast]) Bu yöntem, adından da anlaşılacağı gibi, BucketingModule'daki tüm paketler için geçerli ilerlemeyi kontrol noktasına kaydeder. Eğitim sırasında kaydetmek için epoch_end_callback olarak mx.callback.module_checkpoint'in kullanılması önerilir.
set_params (arg_params, aux_params [,…]) Adın da belirttiği gibi, bu işlev parametreleri ve yardımcı durum değerlerini atayacaktır.
set_states ([durumlar, değer]) Bu yöntem, adından da anlaşılacağı gibi, durumlar için değer belirler.
switch_bucket (paket_anahtar, veri_şekilleri [,…]) Farklı bir kovaya geçecektir.
Güncelleme() Bu yöntem, verilen parametreleri kurulu optimize ediciye göre günceller. Ayrıca, önceki ileri-geri toplu işlemde hesaplanan degradeleri de günceller.
update_metric (eval_metric, etiketler [, pre_sliced]) Bu yöntem, adından da anlaşılacağı gibi, son ileri hesaplamanın çıktıları üzerindeki değerlendirme ölçüsünü değerlendirir ve biriktirir.

Öznitellikler

Aşağıdaki tablo, aşağıdaki yöntemlerde bulunan öznitelikleri göstermektedir. BaseModule sınıf -

Öznitellikler Tanım
data_names Bu modülün gerektirdiği veriler için isim listesinden oluşur.
data_shapes Bu modüle veri girişlerini belirten (isim, şekil) çiftlerinin listesinden oluşur.
label_shapes Bu modüle etiket girişlerini belirten (isim, şekil) çiftlerinin listesini gösterir.
output_names Bu modülün çıktılarının isim listesinden oluşur.
output_shapes Bu modülün çıktılarını belirten (isim, şekil) çiftlerinin listesinden oluşur.
sembol Ad belirtildiği gibi, bu öznitelik bu modülle ilişkili sembolü alır.

data_shapes: Şu adresteki bağlantıya başvurabilirsiniz https://mxnet.apache.orgdetaylar için. output_shapes: Daha Fazla

output_shapes: Daha fazla bilgi şu adreste mevcuttur: https://mxnet.apache.org/api/python

BucketingModule (sym_gen […])

Temsil eder Bucketingmodule Değişen uzunluktaki girdilerle verimli bir şekilde başa çıkmaya yardımcı olan bir Modül sınıfı.

Yöntemler

Aşağıdaki tablo aşağıdakilerden oluşan yöntemleri göstermektedir: BucketingModule class -

Öznitellikler

Aşağıdaki tablo, aşağıdaki yöntemlerde bulunan öznitelikleri göstermektedir. BaseModule class -

Öznitellikler Tanım
data_names Bu modülün gerektirdiği veriler için isim listesinden oluşur.
data_shapes Bu modüle veri girişlerini belirten (isim, şekil) çiftlerinin listesinden oluşur.
label_shapes Bu modüle etiket girişlerini belirten (isim, şekil) çiftlerinin listesini gösterir.
output_names Bu modülün çıktılarının isim listesinden oluşur.
output_shapes Bu modülün çıktılarını belirten (isim, şekil) çiftlerinin listesinden oluşur.
Sembol Ad belirtildiği gibi, bu öznitelik bu modülle ilişkili sembolü alır.

data_shapes - Bağlantıya şu adresten başvurabilirsiniz: https://mxnet.apache.org/api/python/docs daha fazla bilgi için.

output_shapes− Bağlantıya şu adresten başvurabilirsiniz: https://mxnet.apache.org/api/python/docs daha fazla bilgi için.

Modül (sembol [, veri_ adları, etiket_adları,…])

Temel bir modülü temsil eder. symbol.

Yöntemler

Aşağıdaki tablo aşağıdakilerden oluşan yöntemleri göstermektedir: Module class -

Yöntemler Tanım
geri ([out_grads]) Adından da anlaşılacağı gibi bu yöntem, backward hesaplama.
bağla (veri_şekilleri [, etiket_şekilleri,…]) Yürütücüler oluşturmak için sembolleri bağlar ve modül ile hesaplama yapmadan önce gereklidir.
borrow_optimizer (paylaşılan_module) Adından da anlaşılacağı gibi, bu yöntem optimize ediciyi paylaşılan bir modülden ödünç alır.
ileri (data_batch [, is_train]) Adından da anlaşılacağı gibi bu yöntem, Forwardhesaplama. Bu yöntem, farklı toplu iş boyutları veya farklı görüntü boyutları gibi çeşitli şekillere sahip veri toplu işlerini destekler.
get_input_grads ([merge_multi_context]) Bu yöntem, önceki geriye dönük hesaplamada hesaplanan girdilere gradyanları alacaktır.
get_outputs ([merge_multi_context]) Adından da anlaşılacağı gibi, bu yöntem önceki ileri hesaplamanın çıktılarını alacaktır.
get_params () Cihazda hesaplama yapmak için kullanılan gerçek parametrelerin potansiyel olarak kopyaları olan parametreleri alır.
get_states ([merge_multi_context]) Bu yöntem, tüm cihazlardan durumları alacak
init_optimizer ([kvstore, optimize edici,…]) Bu yöntem, optimize edicileri kurar ve başlatır. Ayrıca başlatırkvstore eğitim dağıtmak için.
init_params ([başlatıcı, arg_params,…]) Adından da anlaşılacağı gibi, bu yöntem parametreleri ve yardımcı durumları başlatacaktır.
install_monitor (mon) Bu yöntem monitörü tüm uygulayıcılara kuracaktır.
yük (önek, epoch [, sym_gen,…]) Bu yöntem, önceden kaydedilmiş kontrol noktasından bir model oluşturacaktır.
load_optimizer_states (fname) Bu yöntem, bir dosyadan bir iyileştirici, yani güncelleme durumunu yükleyecektir.
hazırla (data_batch [, sparse_row_id_fn]) Operatör, belirli bir veri grubunu işlemek için modülü hazırlar.
yeniden şekillendirme (veri_şekilleri [, etiket_şekilleri]) Bu yöntem, adından da anlaşılacağı gibi, modülü yeni giriş şekilleri için yeniden şekillendirir.
save_checkpoint (önek, dönem [,…]) Mevcut ilerlemeyi kontrol noktasına kaydeder.
save_optimizer_states (fname) Bu yöntem, optimize edici veya güncelleyici durumunu bir dosyaya kaydeder.
set_params (arg_params, aux_params [,…]) Adın da belirttiği gibi, bu işlev parametreleri ve yardımcı durum değerlerini atayacaktır.
set_states ([durumlar, değer]) Bu yöntem, adından da anlaşılacağı gibi, durumlar için değer belirler.
Güncelleme() Bu yöntem, verilen parametreleri kurulu optimize ediciye göre günceller. Ayrıca, önceki ileri-geri toplu işlemde hesaplanan degradeleri de günceller.
update_metric (eval_metric, etiketler [, pre_sliced]) Bu yöntem, adından da anlaşılacağı gibi, son ileri hesaplamanın çıktıları üzerindeki değerlendirme ölçüsünü değerlendirir ve biriktirir.

Öznitellikler

Aşağıdaki tablo, aşağıdaki yöntemlerde bulunan öznitelikleri göstermektedir. Module class -

Öznitellikler Tanım
data_names Bu modülün gerektirdiği veriler için isim listesinden oluşur.
data_shapes Bu modüle veri girişlerini belirten (isim, şekil) çiftlerinin listesinden oluşur.
label_shapes Bu modüle etiket girişlerini belirten (isim, şekil) çiftlerinin listesini gösterir.
output_names Bu modülün çıktılarının isim listesinden oluşur.
output_shapes Bu modülün çıktılarını belirten (isim, şekil) çiftlerinin listesinden oluşur.
label_names Bu modülün gerektirdiği etiketler için isim listesinden oluşur.

data_shapes: Bağlantıyı ziyaret edin https://mxnet.apache.org/api/python/docs/api/module daha fazla detay için.

output_shapes: Burada verilen bağlantı https://mxnet.apache.org/api/python/docs/api/module/index.html başka önemli bilgiler sunacak.

PythonLossModule ([ad, veri_ adları,…])

Bu sınıfın temeli mxnet.module.python_module.PythonModule. PythonLossModule sınıfı, modül API'lerinin tamamını veya çoğunu boş işlevler olarak uygulayan uygun bir modül sınıfıdır.

Yöntemler

Aşağıdaki tablo aşağıdakilerden oluşan yöntemleri göstermektedir: PythonLossModule sınıf:

Yöntemler Tanım
geri ([out_grads]) Adından da anlaşılacağı gibi bu yöntem, backward hesaplama.
ileri (data_batch [, is_train]) Adından da anlaşılacağı gibi bu yöntem, Forwardhesaplama. Bu yöntem, farklı toplu iş boyutları veya farklı görüntü boyutları gibi çeşitli şekillere sahip veri toplu işlerini destekler.
get_input_grads ([merge_multi_context]) Bu yöntem, önceki geriye dönük hesaplamada hesaplanan girdilere gradyanları alacaktır.
get_outputs ([merge_multi_context]) Adından da anlaşılacağı gibi, bu yöntem önceki ileri hesaplamanın çıktılarını alacaktır.
install_monitor (mon) Bu yöntem monitörü tüm uygulayıcılara kuracaktır.

PythonModule ([data_names, label_names…])

Bu sınıfın temeli mxnet.module.base_module.BaseModule şeklindedir. PythonModule sınıfı, modül API'lerinin tümünü veya çoğunu boş işlevler olarak uygulayan uygun bir modül sınıfıdır.

Yöntemler

Aşağıdaki tablo aşağıdakilerden oluşan yöntemleri göstermektedir: PythonModule sınıf -

Yöntemler Tanım
bağla (veri_şekilleri [, etiket_şekilleri,…]) Yürütücüler oluşturmak için sembolleri bağlar ve modül ile hesaplama yapmadan önce gereklidir.
get_params () Cihazda hesaplama yapmak için kullanılan gerçek parametrelerin potansiyel olarak kopyaları olan parametreleri alır.
init_optimizer ([kvstore, optimize edici,…]) Bu yöntem, optimize edicileri kurar ve başlatır. Ayrıca başlatırkvstore eğitim dağıtmak için.
init_params ([başlatıcı, arg_params,…]) Adından da anlaşılacağı gibi, bu yöntem parametreleri ve yardımcı durumları başlatacaktır.
Güncelleme() Bu yöntem, verilen parametreleri kurulu optimize ediciye göre günceller. Ayrıca, önceki ileri-geri toplu işlemde hesaplanan degradeleri de günceller.
update_metric (eval_metric, etiketler [, pre_sliced]) Bu yöntem, adından da anlaşılacağı gibi, son ileri hesaplamanın çıktıları üzerindeki değerlendirme ölçüsünü değerlendirir ve biriktirir.

Öznitellikler

Aşağıdaki tablo, aşağıdaki yöntemlerde bulunan öznitelikleri göstermektedir. PythonModule sınıf -

Öznitellikler Tanım
data_names Bu modülün gerektirdiği veriler için isim listesinden oluşur.
data_shapes Bu modüle veri girişlerini belirten (isim, şekil) çiftlerinin listesinden oluşur.
label_shapes Bu modüle etiket girişlerini belirten (isim, şekil) çiftlerinin listesini gösterir.
output_names Bu modülün çıktılarının isim listesinden oluşur.
output_shapes Bu modülün çıktılarını belirten (isim, şekil) çiftlerinin listesinden oluşur.

data_shapes - Bağlantıyı izle https://mxnet.apache.org detaylar için.

output_shapes - Daha fazla ayrıntı için, şu adresteki bağlantıyı ziyaret edin: https://mxnet.apache.org

Sıralı Modül ([günlükçü])

Bu sınıfın temeli mxnet.module.base_module.BaseModule şeklindedir. SequentialModule sınıfı ayrıca ikiden (birden fazla) modülü birbirine zincirleyebilen bir kap modülüdür.

Yöntemler

Aşağıdaki tablo aşağıdakilerden oluşan yöntemleri göstermektedir: SequentialModule sınıf

Yöntemler Tanım
ekle (modül, ** kwargs) Bu, bu sınıfın en önemli işlevidir. Zincire bir modül ekler.
geri ([out_grads]) Adından da anlaşılacağı gibi bu yöntem geriye dönük hesaplamayı gerçekleştirir.
bağla (veri_şekilleri [, etiket_şekilleri,…]) Yürütücüler oluşturmak için sembolleri bağlar ve modül ile hesaplama yapmadan önce gereklidir.
ileri (data_batch [, is_train]) Adından da anlaşılacağı gibi, bu yöntem İleri hesaplamayı uygular. Bu yöntem, farklı toplu iş boyutları veya farklı görüntü boyutları gibi çeşitli şekillere sahip veri toplu işlerini destekler.
get_input_grads ([merge_multi_context]) Bu yöntem, önceki geriye dönük hesaplamada hesaplanan girdilere gradyanları alacaktır.
get_outputs ([merge_multi_context]) Adından da anlaşılacağı gibi, bu yöntem önceki ileri hesaplamanın çıktılarını alacaktır.
get_params () Cihazda hesaplama yapmak için kullanılan gerçek parametrelerin potansiyel olarak kopyaları olan parametreleri alır.
init_optimizer ([kvstore, optimize edici,…]) Bu yöntem, optimize edicileri kurar ve başlatır. Ayrıca başlatırkvstore eğitim dağıtmak için.
init_params ([başlatıcı, arg_params,…]) Adından da anlaşılacağı gibi, bu yöntem parametreleri ve yardımcı durumları başlatacaktır.
install_monitor (mon) Bu yöntem monitörü tüm uygulayıcılara kuracaktır.
Güncelleme() Bu yöntem, verilen parametreleri kurulu optimize ediciye göre günceller. Ayrıca, önceki ileri-geri toplu işlemde hesaplanan degradeleri de günceller.
update_metric (eval_metric, etiketler [, pre_sliced]) Bu yöntem, adından da anlaşılacağı gibi, son ileri hesaplamanın çıktıları üzerindeki değerlendirme ölçüsünü değerlendirir ve biriktirir.

Öznitellikler

Aşağıdaki tablo, BaseModule sınıfının yöntemlerinde bulunan öznitelikleri gösterir -

Öznitellikler Tanım
data_names Bu modülün gerektirdiği veriler için isim listesinden oluşur.
data_shapes Bu modüle veri girişlerini belirten (isim, şekil) çiftlerinin listesinden oluşur.
label_shapes Bu modüle etiket girişlerini belirten (isim, şekil) çiftlerinin listesini gösterir.
output_names Bu modülün çıktılarının isim listesinden oluşur.
output_shapes Bu modülün çıktılarını belirten (isim, şekil) çiftlerinin listesinden oluşur.
output_shapes Bu modülün çıktılarını belirten (isim, şekil) çiftlerinin listesinden oluşur.

data_shapes - Burada verilen bağlantı https://mxnet.apache.org özelliği çok ayrıntılı olarak anlamanıza yardımcı olacaktır.

output_shapes - adresinde bulunan bağlantıyı takip edin https://mxnet.apache.org/api detaylar için.

Uygulama Örnekleri

Aşağıdaki örnekte, bir mxnet modül.

import mxnet as mx
input_data = mx.symbol.Variable('input_data')
f_connected1 = mx.symbol.FullyConnected(data, name='f_connected1', num_hidden=128)
activation_1 = mx.symbol.Activation(f_connected1, name='relu1', act_type="relu")
f_connected2 = mx.symbol.FullyConnected(activation_1, name = 'f_connected2', num_hidden = 64)
activation_2 = mx.symbol.Activation(f_connected2, name='relu2',
act_type="relu")
f_connected3 = mx.symbol.FullyConnected(activation_2, name='fc3', num_hidden=10)
out = mx.symbol.SoftmaxOutput(f_connected3, name = 'softmax')
mod = mx.mod.Module(out)
print(out)

Output

Çıktı aşağıda belirtilmiştir -

<Symbol softmax>

Example

print(mod)

Output

Çıktı aşağıda gösterilmiştir -

<mxnet.module.module.Module object at 0x00000123A9892F28>

Aşağıdaki bu örnekte, ileri hesaplama uygulayacağız

import mxnet as mx
from collections import namedtuple
Batch = namedtuple('Batch', ['data'])
data = mx.sym.Variable('data')
out = data * 2
mod = mx.mod.Module(symbol=out, label_names=None)
mod.bind(data_shapes=[('data', (1, 10))])
mod.init_params()
data1 = [mx.nd.ones((1, 10))]
mod.forward(Batch(data1))
print (mod.get_outputs()[0].asnumpy())

Output

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı görmelisiniz -

[[2. 2. 2. 2. 2. 2. 2. 2. 2. 2.]]

Example

data2 = [mx.nd.ones((3, 5))]

mod.forward(Batch(data2))
print (mod.get_outputs()[0].asnumpy())

Output

Aşağıda verilen kodun çıktısıdır -

[[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]]