Apache MXNet - Modul API Python

API modul Apache MXNet seperti model FeedForward dan lebih mudah untuk dibuat mirip dengan modul Torch. Ini terdiri dari kelas-kelas berikut -

BaseModule ([logger])

Ini mewakili kelas dasar dari sebuah modul. Sebuah modul dapat dianggap sebagai komponen komputasi atau mesin komputasi. Tugas modul adalah menjalankan operan maju dan mundur. Ini juga memperbarui parameter dalam model.

Metode

Tabel berikut menunjukkan metode yang terdiri BaseModule class-

Metode ini akan mendapatkan status dari semua perangkat
Metode Definisi
mundur ([out_grads]) Seperti namanya, metode ini mengimplementasikan file backward komputasi.
mengikat (bentuk_data [, bentuk_label,…]) Ini mengikat simbol untuk membangun eksekutor dan diperlukan sebelum seseorang dapat melakukan komputasi dengan modul.
fit (train_data [, eval_data, eval_metric,…]) Metode ini melatih parameter modul.
maju (data_batch [, is_train]) Sesuai namanya, metode ini mengimplementasikan komputasi Teruskan. Metode ini mendukung kumpulan data dengan berbagai bentuk seperti ukuran kumpulan berbeda atau ukuran gambar berbeda.
maju_balik (data_batch) Ini adalah fungsi yang nyaman, seperti namanya, yang memanggil maju dan mundur.
get_input_grads ([merge_multi_context]) Metode ini akan mendapatkan gradien ke input yang dihitung dalam komputasi mundur sebelumnya.
get_outputs ([merge_multi_context]) Sesuai namanya, metode ini akan mendapatkan keluaran dari komputasi maju sebelumnya.
get_params () Ia mendapatkan parameter terutama yang berpotensi merupakan salinan dari parameter aktual yang digunakan untuk melakukan komputasi pada perangkat.
get_states ([merge_multi_context])
init_optimizer ([kvstore, pengoptimal,…]) Metode ini menginstal dan menginisialisasi pengoptimal. Ini juga menginisialisasikvstore untuk mendistribusikan pelatihan.
init_params ([penginisialisasi, arg_params,…]) Sesuai namanya, metode ini akan menginisialisasi parameter dan status tambahan.
install_monitor (mon) Metode ini akan menginstal monitor pada semua pelaksana.
iter_predict (eval_data [, num_batch, setel ulang,…]) Metode ini akan mengulangi prediksi.
load_params (fname) Ini akan, seperti yang ditentukan namanya, memuat parameter model dari file.
prediksi (eval_data [, num_batch,…]) Ini akan menjalankan prediksi dan mengumpulkan output juga.
persiapkan (data_batch [, sparse_row_id_fn]) Operator menyiapkan modul untuk memproses kumpulan data tertentu.
save_params (fname) Seperti yang ditentukan namanya, fungsi ini akan menyimpan parameter model ke file.
skor (data_val, data_evaluasi [, jumlah_batch,…]) Prediksi akan dijalankan eval_data dan juga mengevaluasi kinerja sesuai dengan yang diberikan eval_metric.
set_params (arg_params, aux_params [,…]) Metode ini akan menetapkan parameter dan nilai status aux.
set_states ([status, nilai]) Metode ini, seperti yang tersirat dari namanya, menetapkan nilai untuk status.
memperbarui() Metode ini memperbarui parameter yang diberikan sesuai dengan pengoptimal yang diinstal. Ini juga memperbarui gradien yang dihitung dalam kelompok maju-mundur sebelumnya.
update_metric (eval_metric, label [, pre_sliced]) Metode ini, sesuai namanya, mengevaluasi dan mengakumulasi metrik evaluasi pada keluaran dari komputasi maju terakhir.
mundur ([out_grads]) Seperti namanya, metode ini mengimplementasikan file backward komputasi.
mengikat (bentuk_data [, bentuk_label,…]) Ini menyiapkan bucket dan mengikat eksekutor untuk kunci bucket default. Metode ini mewakili pengikatan untuk aBucketingModule.
maju (data_batch [, is_train]) Sesuai namanya, metode ini mengimplementasikan komputasi Teruskan. Metode ini mendukung kumpulan data dengan berbagai bentuk seperti ukuran kumpulan berbeda atau ukuran gambar berbeda.
get_input_grads ([merge_multi_context]) Metode ini akan mendapatkan gradien ke input yang dihitung dalam komputasi mundur sebelumnya.
get_outputs ([merge_multi_context]) Sesuai namanya, metode ini akan mendapatkan keluaran dari komputasi maju sebelumnya.
get_params () Ia mendapatkan parameter saat ini terutama yang berpotensi merupakan salinan dari parameter aktual yang digunakan untuk melakukan komputasi pada perangkat.
get_states ([merge_multi_context]) Metode ini akan mendapatkan status dari semua perangkat.
init_optimizer ([kvstore, pengoptimal,…]) Metode ini menginstal dan menginisialisasi pengoptimal. Ini juga menginisialisasikvstore untuk mendistribusikan pelatihan.
init_params ([penginisialisasi, arg_params,…]) Sesuai namanya, metode ini akan menginisialisasi parameter dan status tambahan.
install_monitor (mon) Metode ini akan menginstal monitor pada semua pelaksana.
memuat (awalan, epoch [, sym_gen,…]) Metode ini akan membuat model dari pos pemeriksaan yang disimpan sebelumnya.
load_dict ([sym_dict, sym_gen,…]) Metode ini akan membuat model dari pemetaan kamus (dict) bucket_keyke simbol. Itu juga berbagiarg_params dan aux_params.
persiapkan (data_batch [, sparse_row_id_fn]) Operator menyiapkan modul untuk memproses kumpulan data tertentu.
save_checkpoint (awalan, epoch [, remove_amp_cast]) Metode ini, seperti namanya, menyimpan kemajuan saat ini ke checkpoint untuk semua bucket di BucketingModule. Direkomendasikan untuk menggunakan mx.callback.module_checkpoint sebagai epoch_end_callback untuk menyimpan selama pelatihan.
set_params (arg_params, aux_params [,…]) Seperti yang ditentukan namanya, fungsi ini akan menetapkan parameter dan nilai status aux.
set_states ([status, nilai]) Metode ini, seperti yang tersirat dari namanya, menetapkan nilai untuk status.
switch_bucket (kunci_ bucket, bentuk_data [,…]) Ini akan beralih ke keranjang yang berbeda.
memperbarui() Metode ini memperbarui parameter yang diberikan sesuai dengan pengoptimal yang diinstal. Ini juga memperbarui gradien yang dihitung dalam kelompok maju-mundur sebelumnya.
update_metric (eval_metric, label [, pre_sliced]) Metode ini, sesuai namanya, mengevaluasi dan mengakumulasi metrik evaluasi pada keluaran dari komputasi maju terakhir.

Atribut

Tabel berikut menunjukkan atribut-atribut yang terdiri dari metode BaseModule kelas -

Atribut Definisi
data_names Ini terdiri dari daftar nama untuk data yang dibutuhkan oleh modul ini.
data_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan input data ke modul ini.
label_shapes Ini menunjukkan daftar pasangan (nama, bentuk) menentukan input label untuk modul ini.
output_names Ini terdiri dari daftar nama untuk keluaran modul ini.
output_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan keluaran dari modul ini.
simbol Seperti nama yang ditentukan, atribut ini mendapatkan simbol yang terkait dengan modul ini.

data_shapes: Anda dapat merujuk tautan yang tersedia di https://mxnet.apache.orguntuk detailnya. output_shapes: Selengkapnya

output_shapes: Informasi lebih lanjut tersedia di https://mxnet.apache.org/api/python

BucketingModule (sym_gen […])

Ini mewakili Bucketingmodule kelas Modul yang membantu untuk menangani secara efisien dengan input panjang yang bervariasi.

Metode

Tabel berikut menunjukkan metode yang terdiri BucketingModule class -

Atribut

Tabel berikut menunjukkan atribut-atribut yang terdiri dari metode BaseModule class -

Atribut Definisi
data_names Ini terdiri dari daftar nama untuk data yang dibutuhkan oleh modul ini.
data_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan input data ke modul ini.
label_shapes Ini menunjukkan daftar pasangan (nama, bentuk) menentukan input label untuk modul ini.
output_names Ini terdiri dari daftar nama untuk keluaran modul ini.
output_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan keluaran dari modul ini.
Simbol Seperti nama yang ditentukan, atribut ini mendapatkan simbol yang terkait dengan modul ini.

data_shapes - Anda dapat merujuk tautan di https://mxnet.apache.org/api/python/docs untuk informasi lebih lanjut.

output_shapes− Anda dapat merujuk tautan di https://mxnet.apache.org/api/python/docs untuk informasi lebih lanjut.

Modul (simbol [, nama_data, nama_label,…])

Ini mewakili modul dasar yang membungkus a symbol.

Metode

Tabel berikut menunjukkan metode yang terdiri Module class -

Metode Definisi
mundur ([out_grads]) Seperti namanya, metode ini mengimplementasikan file backward komputasi.
mengikat (bentuk_data [, bentuk_label,…]) Ini mengikat simbol untuk membangun eksekutor dan diperlukan sebelum seseorang dapat melakukan komputasi dengan modul.
loan_optimizer (shared_module) Sesuai namanya, metode ini akan meminjam pengoptimal dari modul bersama.
maju (data_batch [, is_train]) Seperti namanya, metode ini mengimplementasikan file Forwardkomputasi. Metode ini mendukung kumpulan data dengan berbagai bentuk seperti ukuran kumpulan berbeda atau ukuran gambar berbeda.
get_input_grads ([merge_multi_context]) Metode ini akan mendapatkan gradien ke input yang dihitung dalam komputasi mundur sebelumnya.
get_outputs ([merge_multi_context]) Sesuai namanya, metode ini akan mendapatkan keluaran dari komputasi maju sebelumnya.
get_params () Ia mendapatkan parameter terutama yang berpotensi merupakan salinan dari parameter aktual yang digunakan untuk melakukan komputasi pada perangkat.
get_states ([merge_multi_context]) Metode ini akan mendapatkan status dari semua perangkat
init_optimizer ([kvstore, pengoptimal,…]) Metode ini menginstal dan menginisialisasi pengoptimal. Ini juga menginisialisasikvstore untuk mendistribusikan pelatihan.
init_params ([penginisialisasi, arg_params,…]) Sesuai namanya, metode ini akan menginisialisasi parameter dan status tambahan.
install_monitor (mon) Metode ini akan menginstal monitor pada semua pelaksana.
memuat (awalan, epoch [, sym_gen,…]) Metode ini akan membuat model dari pos pemeriksaan yang disimpan sebelumnya.
load_optimizer_states (fname) Metode ini akan memuat pengoptimal yaitu status updater dari file.
persiapkan (data_batch [, sparse_row_id_fn]) Operator menyiapkan modul untuk memproses kumpulan data tertentu.
membentuk kembali (data_shapes [, label_shapes]) Metode ini, sesuai namanya, membentuk kembali modul untuk bentuk masukan baru.
save_checkpoint (awalan, epoch [,…]) Ini menyimpan kemajuan saat ini ke pos pemeriksaan.
save_optimizer_states (fname) Metode ini menyimpan pengoptimal atau status pembaru ke file.
set_params (arg_params, aux_params [,…]) Seperti yang ditentukan namanya, fungsi ini akan menetapkan parameter dan nilai status aux.
set_states ([status, nilai]) Metode ini, seperti yang tersirat dari namanya, menetapkan nilai untuk status.
memperbarui() Metode ini memperbarui parameter yang diberikan sesuai dengan pengoptimal yang diinstal. Ini juga memperbarui gradien yang dihitung dalam kelompok maju-mundur sebelumnya.
update_metric (eval_metric, label [, pre_sliced]) Metode ini, sesuai namanya, mengevaluasi dan mengakumulasi metrik evaluasi pada keluaran dari komputasi maju terakhir.

Atribut

Tabel berikut menunjukkan atribut-atribut yang terdiri dari metode Module class -

Atribut Definisi
data_names Ini terdiri dari daftar nama untuk data yang dibutuhkan oleh modul ini.
data_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan input data ke modul ini.
label_shapes Ini menunjukkan daftar pasangan (nama, bentuk) menentukan input label untuk modul ini.
output_names Ini terdiri dari daftar nama untuk keluaran modul ini.
output_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan keluaran dari modul ini.
label_names Ini terdiri dari daftar nama untuk label yang dibutuhkan oleh modul ini.

data_shapes: Kunjungi link https://mxnet.apache.org/api/python/docs/api/module untuk keterangan lebih lanjut.

output_shapes: Tautan yang diberikan bersama ini https://mxnet.apache.org/api/python/docs/api/module/index.html akan menawarkan informasi penting lainnya.

PythonLossModule ([nama, nama_data,…])

Basis kelas ini adalah mxnet.module.python_module.PythonModule. Kelas PythonLossModule adalah kelas modul yang nyaman yang mengimplementasikan semua atau banyak API modul sebagai fungsi kosong.

Metode

Tabel berikut menunjukkan metode yang terdiri PythonLossModule kelas:

Metode Definisi
mundur ([out_grads]) Seperti namanya, metode ini mengimplementasikan file backward komputasi.
maju (data_batch [, is_train]) Seperti namanya, metode ini mengimplementasikan file Forwardkomputasi. Metode ini mendukung kumpulan data dengan berbagai bentuk seperti ukuran kumpulan berbeda atau ukuran gambar berbeda.
get_input_grads ([merge_multi_context]) Metode ini akan mendapatkan gradien ke input yang dihitung dalam komputasi mundur sebelumnya.
get_outputs ([merge_multi_context]) Sesuai namanya, metode ini akan mendapatkan keluaran dari komputasi maju sebelumnya.
install_monitor (mon) Metode ini akan menginstal monitor pada semua pelaksana.

PythonModule ([nama_data, nama_label…])

Basis kelas ini adalah mxnet.module.base_module.BaseModule. Kelas PythonModule juga merupakan kelas modul yang nyaman yang mengimplementasikan semua atau banyak API modul sebagai fungsi kosong.

Metode

Tabel berikut menunjukkan metode yang terdiri PythonModule kelas -

Metode Definisi
mengikat (bentuk_data [, bentuk_label,…]) Ini mengikat simbol untuk membangun eksekutor dan diperlukan sebelum seseorang dapat melakukan komputasi dengan modul.
get_params () Ia mendapatkan parameter terutama yang berpotensi merupakan salinan dari parameter aktual yang digunakan untuk melakukan komputasi pada perangkat.
init_optimizer ([kvstore, pengoptimal,…]) Metode ini menginstal dan menginisialisasi pengoptimal. Ini juga menginisialisasikvstore untuk mendistribusikan pelatihan.
init_params ([penginisialisasi, arg_params,…]) Sesuai namanya, metode ini akan menginisialisasi parameter dan status tambahan.
memperbarui() Metode ini memperbarui parameter yang diberikan sesuai dengan pengoptimal yang diinstal. Ini juga memperbarui gradien yang dihitung dalam kelompok maju-mundur sebelumnya.
update_metric (eval_metric, label [, pre_sliced]) Metode ini, sesuai namanya, mengevaluasi dan mengakumulasi metrik evaluasi pada keluaran dari komputasi maju terakhir.

Atribut

Tabel berikut menunjukkan atribut-atribut yang terdiri dari metode PythonModule kelas -

Atribut Definisi
data_names Ini terdiri dari daftar nama untuk data yang dibutuhkan oleh modul ini.
data_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan input data ke modul ini.
label_shapes Ini menunjukkan daftar pasangan (nama, bentuk) menentukan input label untuk modul ini.
output_names Ini terdiri dari daftar nama untuk keluaran modul ini.
output_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan keluaran dari modul ini.

data_shapes - Ikuti tautannya https://mxnet.apache.org untuk detailnya.

output_shapes - Untuk lebih jelasnya, kunjungi tautan yang tersedia di https://mxnet.apache.org

SequentialModule ([logger])

Basis kelas ini adalah mxnet.module.base_module.BaseModule. Kelas SequentialModule juga merupakan modul kontainer yang dapat merangkai lebih dari dua (beberapa) modul bersama-sama.

Metode

Tabel berikut menunjukkan metode yang terdiri SequentialModule kelas

Metode Definisi
tambahkan (modul, ** kwargs) Ini adalah fungsi terpenting dari kelas ini. Ini menambahkan modul ke rantai.
mundur ([out_grads]) Seperti namanya, metode ini mengimplementasikan komputasi mundur.
mengikat (bentuk_data [, bentuk_label,…]) Ini mengikat simbol untuk membangun eksekutor dan diperlukan sebelum seseorang dapat melakukan komputasi dengan modul.
maju (data_batch [, is_train]) Sesuai namanya, metode ini mengimplementasikan komputasi Teruskan. Metode ini mendukung kumpulan data dengan berbagai bentuk seperti ukuran kumpulan berbeda atau ukuran gambar berbeda.
get_input_grads ([merge_multi_context]) Metode ini akan mendapatkan gradien ke input yang dihitung dalam komputasi mundur sebelumnya.
get_outputs ([merge_multi_context]) Sesuai namanya, metode ini akan mendapatkan keluaran dari komputasi maju sebelumnya.
get_params () Ia mendapatkan parameter terutama yang berpotensi merupakan salinan dari parameter aktual yang digunakan untuk melakukan komputasi pada perangkat.
init_optimizer ([kvstore, pengoptimal,…]) Metode ini menginstal dan menginisialisasi pengoptimal. Ini juga menginisialisasikvstore untuk mendistribusikan pelatihan.
init_params ([penginisialisasi, arg_params,…]) Sesuai namanya, metode ini akan menginisialisasi parameter dan status tambahan.
install_monitor (mon) Metode ini akan menginstal monitor pada semua pelaksana.
memperbarui() Metode ini memperbarui parameter yang diberikan sesuai dengan pengoptimal yang diinstal. Ini juga memperbarui gradien yang dihitung dalam kelompok maju-mundur sebelumnya.
update_metric (eval_metric, label [, pre_sliced]) Metode ini, sesuai namanya, mengevaluasi dan mengakumulasi metrik evaluasi pada keluaran dari komputasi maju terakhir.

Atribut

Tabel berikut menunjukkan atribut yang terdiri dari metode kelas BaseModule -

Atribut Definisi
data_names Ini terdiri dari daftar nama untuk data yang dibutuhkan oleh modul ini.
data_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan input data ke modul ini.
label_shapes Ini menunjukkan daftar pasangan (nama, bentuk) menentukan input label untuk modul ini.
output_names Ini terdiri dari daftar nama untuk keluaran modul ini.
output_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan keluaran dari modul ini.
output_shapes Ini terdiri dari daftar pasangan (nama, bentuk) yang menentukan keluaran dari modul ini.

data_shapes - Tautan yang diberikan bersama ini https://mxnet.apache.org akan membantu Anda memahami atribut dengan lebih detail.

output_shapes - Ikuti tautan yang tersedia di https://mxnet.apache.org/api untuk detailnya.

Contoh Implementasi

Pada contoh di bawah ini, kita akan membuat file mxnet modul.

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

Outputnya disebutkan di bawah ini -

<Symbol softmax>

Example

print(mod)

Output

Outputnya ditunjukkan di bawah ini -

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

Dalam contoh di bawah ini, kami akan menerapkan komputasi maju

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

Ketika Anda menjalankan kode di atas, Anda akan melihat output berikut -

[[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

Diberikan di bawah ini adalah output dari kode -

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