Apache MXNet - Mô-đun API Python
API mô-đun của Apache MXNet giống như một mô hình FeedForward và nó dễ dàng hơn để soạn thảo tương tự như mô-đun Torch. Nó bao gồm các lớp sau:
BaseModule ([logger])
Nó đại diện cho lớp cơ sở của một mô-đun. Một mô-đun có thể được coi là thành phần tính toán hoặc máy tính toán. Công việc của một mô-đun là thực hiện chuyển tiếp và chuyển tiếp. Nó cũng cập nhật các thông số trong một mô hình.
Phương pháp
Bảng sau cho thấy các phương pháp bao gồm BaseModule class-
Phương thức này sẽ nhận trạng thái từ tất cả các thiết bịPhương pháp | Định nghĩa |
---|---|
lùi lại ([out_grads]) | Như tên của nó, phương thức này thực hiện backward tính toán. |
ràng buộc (data_shapes [, label_shapes,…]) | Nó liên kết các ký hiệu để xây dựng các trình thực thi và nó là cần thiết trước khi người ta có thể thực hiện tính toán với mô-đun. |
phù hợp (train_data [, eval_data, eval_metric,…]) | Phương thức này huấn luyện các tham số mô-đun. |
chuyển tiếp (data_batch [, is_train]) | Như tên của nó, phương pháp này thực hiện tính toán Chuyển tiếp. Phương pháp này hỗ trợ các lô dữ liệu với nhiều hình dạng khác nhau như kích thước lô khác nhau hoặc kích thước hình ảnh khác nhau. |
forward_backward (data_batch) | Nó là một chức năng thuận tiện, như tên của nó, gọi cả tiến và lùi. |
get_input_grads ([merge_multi_context]) | Phương pháp này sẽ lấy các gradient cho các đầu vào được tính trong phép tính ngược trước đó. |
get_outputs ([merge_multi_context]) | Như tên của nó, phương thức này sẽ nhận được kết quả của phép tính chuyển tiếp trước đó. |
get_params () | Nó nhận các tham số, đặc biệt là những tham số có khả năng là bản sao của các tham số thực tế được sử dụng để tính toán trên thiết bị. |
get_states ([merge_multi_context]) | |
init_optimizer ([kvstore, trình tối ưu hóa,…]) | Phương pháp này cài đặt và khởi tạo trình tối ưu hóa. Nó cũng khởi tạokvstore để phân phối đào tạo. |
init_params ([khởi tạo, arg_params,…]) | Như tên của nó, phương thức này sẽ khởi tạo các tham số và trạng thái bổ trợ. |
install_monitor (mon) | Phương pháp này sẽ cài đặt màn hình trên tất cả các trình thực thi. |
iter_p Dự đoán (eval_data [, num_batch, đặt lại,…]) | Phương thức này sẽ lặp lại các dự đoán. |
load_params (fname) | Như tên chỉ định, nó sẽ tải các thông số mô hình từ tệp. |
dự đoán (eval_data [, num_batch,…]) | Nó sẽ chạy dự đoán và thu thập các kết quả đầu ra. |
chuẩn bị (data_batch [, precision_row_id_fn]) | Người vận hành chuẩn bị mô-đun để xử lý một lô dữ liệu nhất định. |
save_params (fname) | Như tên chỉ định, hàm này sẽ lưu các tham số mô hình vào tệp. |
điểm (eval_data, eval_metric [, num_batch,…]) | Nó chạy dự đoán trên eval_data và cũng đánh giá hiệu suất theo eval_metric. |
set_params (arg_params, aux_params [,…]) | Phương thức này sẽ gán các giá trị tham số và trạng thái aux. |
set_states ([trạng thái, giá trị]) | Phương thức này, như tên của nó, đặt giá trị cho các trạng thái. |
cập nhật () | Phương pháp này cập nhật các tham số đã cho theo trình tối ưu hóa đã cài đặt. Nó cũng cập nhật các gradient được tính toán trong lô chuyển tiếp trước đó. |
update_metric (eval_metric, label [, pre_sliced]) | Phương pháp này, như tên của nó, đánh giá và tích lũy số liệu đánh giá trên kết quả đầu ra của phép tính chuyển tiếp cuối cùng. |
lùi lại ([out_grads]) | Như tên của nó, phương thức này thực hiện backward tính toán. |
ràng buộc (data_shapes [, label_shapes,…]) | Nó thiết lập các nhóm và liên kết trình thực thi cho khóa nhóm mặc định. Phương thức này thể hiện sự ràng buộc đối với mộtBucketingModule. |
chuyển tiếp (data_batch [, is_train]) | Như tên của nó, phương pháp này thực hiện tính toán Chuyển tiếp. Phương pháp này hỗ trợ các lô dữ liệu với nhiều hình dạng khác nhau như kích thước lô khác nhau hoặc kích thước hình ảnh khác nhau. |
get_input_grads ([merge_multi_context]) | Phương pháp này sẽ lấy các gradient cho các đầu vào được tính toán trong phép tính ngược trước đó. |
get_outputs ([merge_multi_context]) | Như tên của nó, phương thức này sẽ nhận kết quả đầu ra từ tính toán chuyển tiếp trước đó. |
get_params () | Nó nhận các thông số hiện tại, đặc biệt là những thông số có khả năng là bản sao của các thông số thực được sử dụng để tính toán trên thiết bị. |
get_states ([merge_multi_context]) | Phương thức này sẽ nhận trạng thái từ tất cả các thiết bị. |
init_optimizer ([kvstore, trình tối ưu hóa,…]) | Phương pháp này cài đặt và khởi tạo trình tối ưu hóa. Nó cũng khởi tạokvstore để phân phối đào tạo. |
init_params ([khởi tạo, arg_params,…]) | Như tên của nó, phương thức này sẽ khởi tạo các tham số và trạng thái bổ trợ. |
install_monitor (mon) | Phương pháp này sẽ cài đặt màn hình trên tất cả các trình thực thi. |
tải (tiền tố, epoch [, sym_gen,…]) | Phương pháp này sẽ tạo một mô hình từ trạm kiểm soát đã lưu trước đó. |
load_dict ([sym_dict, sym_gen,…]) | Phương pháp này sẽ tạo một mô hình từ ánh xạ từ điển (dict) bucket_keyđến các ký hiệu. Nó cũng chia sẻarg_params và aux_params. |
chuẩn bị (data_batch [, precision_row_id_fn]) | Người vận hành chuẩn bị mô-đun để xử lý một lô dữ liệu nhất định. |
save_checkpoint (tiền tố, epoch [, remove_amp_cast]) | Phương pháp này, như tên của nó, lưu tiến trình hiện tại đến điểm kiểm tra cho tất cả các nhóm trong BucketingModule. Bạn nên sử dụng mx.callback.module_checkpoint dưới dạng epoch_end_callback để lưu trong quá trình đào tạo. |
set_params (arg_params, aux_params [,…]) | Như tên chỉ định, hàm này sẽ gán các tham số và giá trị trạng thái aux. |
set_states ([trạng thái, giá trị]) | Phương thức này, như tên của nó, đặt giá trị cho các trạng thái. |
switch_bucket (bucket_key, data_shapes [,…]) | Nó sẽ chuyển sang một nhóm khác. |
cập nhật () | Phương pháp này cập nhật các tham số đã cho theo trình tối ưu hóa đã cài đặt. Nó cũng cập nhật các gradient được tính toán trong lô chuyển tiếp trước đó. |
update_metric (eval_metric, label [, pre_sliced]) | Phương pháp này, như tên của nó, đánh giá và tích lũy số liệu đánh giá trên kết quả đầu ra của phép tính chuyển tiếp cuối cùng. |
Thuộc tính
Bảng sau đây cho thấy các thuộc tính bao gồm trong các phương thức của BaseModule lớp học -
Thuộc tính | Định nghĩa |
---|---|
data_names | Nó bao gồm danh sách các tên cho dữ liệu theo yêu cầu của mô-đun này. |
data_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) chỉ định các đầu vào dữ liệu cho mô-đun này. |
label_shapes | Nó hiển thị danh sách các cặp (tên, hình dạng) chỉ định các đầu vào nhãn cho mô-đun này. |
output_names | Nó bao gồm danh sách tên cho các đầu ra của mô-đun này. |
output_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) xác định các đầu ra của mô-đun này. |
Biểu tượng | Như tên đã chỉ định, thuộc tính này có ký hiệu được liên kết với mô-đun này. |
data_shapes: Bạn có thể tham khảo liên kết có sẵn tại https://mxnet.apache.orgđể biết chi tiết. output_shapes: Thêm
output_shapes: Có thêm thông tin tại https://mxnet.apache.org/api/python
BucketingModule (sym_gen […])
Nó đại diện cho Bucketingmodule lớp của Mô-đun giúp xử lý hiệu quả với các đầu vào có độ dài khác nhau.
Phương pháp
Bảng sau cho thấy các phương pháp bao gồm BucketingModule class -
Thuộc tính
Bảng sau đây cho thấy các thuộc tính bao gồm trong các phương thức của BaseModule class -
Thuộc tính | Định nghĩa |
---|---|
data_names | Nó bao gồm danh sách các tên cho dữ liệu theo yêu cầu của mô-đun này. |
data_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) chỉ định các đầu vào dữ liệu cho mô-đun này. |
label_shapes | Nó hiển thị danh sách các cặp (tên, hình dạng) chỉ định các đầu vào nhãn cho mô-đun này. |
output_names | Nó bao gồm danh sách tên cho các đầu ra của mô-đun này. |
output_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) xác định các đầu ra của mô-đun này. |
Biểu tượng | Như tên đã chỉ định, thuộc tính này có ký hiệu được liên kết với mô-đun này. |
data_shapes - Bạn có thể tham khảo liên kết tại https://mxnet.apache.org/api/python/docs để biết thêm thông tin.
output_shapes− Bạn có thể tham khảo liên kết tại https://mxnet.apache.org/api/python/docs để biết thêm thông tin.
Mô-đun (ký hiệu [, data_names, label_names,…])
Nó đại diện cho một mô-đun cơ bản bao bọc một symbol.
Phương pháp
Bảng sau cho thấy các phương pháp bao gồm Module class -
Phương pháp | Định nghĩa |
---|---|
lùi lại ([out_grads]) | Như tên của nó, phương thức này thực hiện backward tính toán. |
ràng buộc (data_shapes [, label_shapes,…]) | Nó liên kết các ký hiệu để xây dựng các trình thực thi và nó là cần thiết trước khi người ta có thể thực hiện tính toán với mô-đun. |
loan_optimizer (shared_module) | Như tên của nó, phương pháp này sẽ mượn trình tối ưu hóa từ một mô-đun được chia sẻ. |
chuyển tiếp (data_batch [, is_train]) | Như tên của nó, phương thức này thực hiện Forwardtính toán. Phương pháp này hỗ trợ các lô dữ liệu với nhiều hình dạng khác nhau như kích thước lô khác nhau hoặc kích thước hình ảnh khác nhau. |
get_input_grads ([merge_multi_context]) | Phương pháp này sẽ lấy các gradient cho các đầu vào được tính trong phép tính ngược trước đó. |
get_outputs ([merge_multi_context]) | Như tên của nó, phương thức này sẽ nhận được kết quả của phép tính chuyển tiếp trước đó. |
get_params () | Nó nhận các tham số, đặc biệt là những tham số có khả năng là bản sao của các tham số thực tế được sử dụng để tính toán trên thiết bị. |
get_states ([merge_multi_context]) | Phương thức này sẽ nhận trạng thái từ tất cả các thiết bị |
init_optimizer ([kvstore, trình tối ưu hóa,…]) | Phương pháp này cài đặt và khởi tạo trình tối ưu hóa. Nó cũng khởi tạokvstore để phân phối đào tạo. |
init_params ([khởi tạo, arg_params,…]) | Như tên của nó, phương thức này sẽ khởi tạo các tham số và trạng thái bổ trợ. |
install_monitor (mon) | Phương pháp này sẽ cài đặt màn hình trên tất cả các trình thực thi. |
tải (tiền tố, epoch [, sym_gen,…]) | Phương pháp này sẽ tạo một mô hình từ trạm kiểm soát đã lưu trước đó. |
load_optimizer_states (fname) | Phương thức này sẽ tải một trình tối ưu hóa tức là trạng thái của trình cập nhật từ một tệp. |
chuẩn bị (data_batch [, precision_row_id_fn]) | Người vận hành chuẩn bị mô-đun để xử lý một lô dữ liệu nhất định. |
định hình lại (data_shapes [, label_shapes]) | Phương thức này, như tên của nó, định hình lại mô-đun cho các hình dạng đầu vào mới. |
save_checkpoint (tiền tố, kỷ nguyên [,…]) | Nó lưu tiến trình hiện tại vào trạm kiểm soát. |
save_optimizer_states (fname) | Phương pháp này lưu trình tối ưu hóa hoặc trạng thái trình cập nhật vào một tệp. |
set_params (arg_params, aux_params [,…]) | Như tên chỉ định, hàm này sẽ gán các tham số và giá trị trạng thái aux. |
set_states ([trạng thái, giá trị]) | Phương thức này, như tên của nó, đặt giá trị cho các trạng thái. |
cập nhật () | Phương pháp này cập nhật các tham số đã cho theo trình tối ưu hóa đã cài đặt. Nó cũng cập nhật các gradient được tính toán trong lô chuyển tiếp trước đó. |
update_metric (eval_metric, label [, pre_sliced]) | Phương pháp này, như tên của nó, đánh giá và tích lũy số liệu đánh giá trên kết quả đầu ra của phép tính chuyển tiếp cuối cùng. |
Thuộc tính
Bảng sau đây cho thấy các thuộc tính bao gồm trong các phương thức của Module class -
Thuộc tính | Định nghĩa |
---|---|
data_names | Nó bao gồm danh sách các tên cho dữ liệu theo yêu cầu của mô-đun này. |
data_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) chỉ định các đầu vào dữ liệu cho mô-đun này. |
label_shapes | Nó hiển thị danh sách các cặp (tên, hình dạng) chỉ định các đầu vào nhãn cho mô-đun này. |
output_names | Nó bao gồm danh sách tên cho các đầu ra của mô-đun này. |
output_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) xác định các đầu ra của mô-đun này. |
label_names | Nó bao gồm danh sách tên cho các nhãn mà mô-đun này yêu cầu. |
data_shapes: Truy cập liên kết https://mxnet.apache.org/api/python/docs/api/module để biết thêm chi tiết.
output_shapes: Liên kết được cung cấp kèm theo đây https://mxnet.apache.org/api/python/docs/api/module/index.html sẽ cung cấp thông tin quan trọng khác.
PythonLossModule ([tên, data_names,…])
Cơ sở của lớp này là mxnet.module.python_module.PythonModule. Lớp PythonLossModule là một lớp mô-đun thuận tiện, thực thi tất cả hoặc nhiều API mô-đun dưới dạng các hàm trống.
Phương pháp
Bảng sau cho thấy các phương pháp bao gồm PythonLossModule lớp học:
Phương pháp | Định nghĩa |
---|---|
lùi lại ([out_grads]) | Như tên của nó, phương thức này thực hiện backward tính toán. |
chuyển tiếp (data_batch [, is_train]) | Như tên của nó, phương thức này thực hiện Forwardtính toán. Phương pháp này hỗ trợ các lô dữ liệu với nhiều hình dạng khác nhau như kích thước lô khác nhau hoặc kích thước hình ảnh khác nhau. |
get_input_grads ([merge_multi_context]) | Phương pháp này sẽ lấy các gradient cho các đầu vào được tính trong phép tính ngược trước đó. |
get_outputs ([merge_multi_context]) | Như tên của nó, phương thức này sẽ nhận được kết quả của phép tính chuyển tiếp trước đó. |
install_monitor (mon) | Phương pháp này sẽ cài đặt màn hình trên tất cả các trình thực thi. |
PythonModule ([data_names, label_names…])
Cơ sở của lớp này là mxnet.module.base_module.BaseModule. Lớp PythonModule cũng là một lớp mô-đun tiện lợi, thực hiện tất cả hoặc nhiều API mô-đun dưới dạng các hàm trống.
Phương pháp
Bảng sau cho thấy các phương pháp bao gồm PythonModule lớp học -
Phương pháp | Định nghĩa |
---|---|
ràng buộc (data_shapes [, label_shapes,…]) | Nó liên kết các ký hiệu để xây dựng các trình thực thi và nó là cần thiết trước khi người ta có thể thực hiện tính toán với mô-đun. |
get_params () | Nó nhận các tham số, đặc biệt là những tham số có khả năng là bản sao của các tham số thực tế được sử dụng để tính toán trên thiết bị. |
init_optimizer ([kvstore, trình tối ưu hóa,…]) | Phương pháp này cài đặt và khởi tạo trình tối ưu hóa. Nó cũng khởi tạokvstore để phân phối đào tạo. |
init_params ([khởi tạo, arg_params,…]) | Như tên của nó, phương thức này sẽ khởi tạo các tham số và trạng thái bổ trợ. |
cập nhật () | Phương pháp này cập nhật các tham số đã cho theo trình tối ưu hóa đã cài đặt. Nó cũng cập nhật các gradient được tính toán trong lô chuyển tiếp trước đó. |
update_metric (eval_metric, label [, pre_sliced]) | Phương pháp này, như tên của nó, đánh giá và tích lũy số liệu đánh giá trên kết quả đầu ra của phép tính chuyển tiếp cuối cùng. |
Thuộc tính
Bảng sau đây cho thấy các thuộc tính bao gồm trong các phương thức của PythonModule lớp học -
Thuộc tính | Định nghĩa |
---|---|
data_names | Nó bao gồm danh sách các tên cho dữ liệu theo yêu cầu của mô-đun này. |
data_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) chỉ định các đầu vào dữ liệu cho mô-đun này. |
label_shapes | Nó hiển thị danh sách các cặp (tên, hình dạng) chỉ định các đầu vào nhãn cho mô-đun này. |
output_names | Nó bao gồm danh sách tên cho các đầu ra của mô-đun này. |
output_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) xác định các đầu ra của mô-đun này. |
data_shapes - Theo liên kết https://mxnet.apache.org để biết chi tiết.
output_shapes - Để biết thêm chi tiết, hãy truy cập liên kết có sẵn tại https://mxnet.apache.org
SequentialModule ([logger])
Cơ sở của lớp này là mxnet.module.base_module.BaseModule. Lớp SequentialModule cũng là một mô-đun vùng chứa có thể liên kết nhiều hơn hai (nhiều) mô-đun với nhau.
Phương pháp
Bảng sau cho thấy các phương pháp bao gồm SequentialModule lớp học
Phương pháp | Định nghĩa |
---|---|
thêm (mô-đun, ** kwargs) | Đây là chức năng quan trọng nhất của lớp này. Nó thêm một mô-đun vào chuỗi. |
lùi lại ([out_grads]) | Như tên của nó, phương pháp này thực hiện tính toán ngược. |
ràng buộc (data_shapes [, label_shapes,…]) | Nó liên kết các ký hiệu để xây dựng các trình thực thi và nó là cần thiết trước khi người ta có thể thực hiện tính toán với mô-đun. |
chuyển tiếp (data_batch [, is_train]) | Như tên của nó, phương pháp này thực hiện tính toán Chuyển tiếp. Phương pháp này hỗ trợ các lô dữ liệu với nhiều hình dạng khác nhau như kích thước lô khác nhau hoặc kích thước hình ảnh khác nhau. |
get_input_grads ([merge_multi_context]) | Phương pháp này sẽ lấy các gradient cho các đầu vào được tính trong phép tính ngược trước đó. |
get_outputs ([merge_multi_context]) | Như tên của nó, phương thức này sẽ nhận được kết quả của phép tính chuyển tiếp trước đó. |
get_params () | Nó nhận các tham số, đặc biệt là những tham số có khả năng là bản sao của các tham số thực tế được sử dụng để tính toán trên thiết bị. |
init_optimizer ([kvstore, trình tối ưu hóa,…]) | Phương pháp này cài đặt và khởi tạo trình tối ưu hóa. Nó cũng khởi tạokvstore để phân phối đào tạo. |
init_params ([khởi tạo, arg_params,…]) | Như tên của nó, phương thức này sẽ khởi tạo các tham số và trạng thái bổ trợ. |
install_monitor (mon) | Phương pháp này sẽ cài đặt màn hình trên tất cả các trình thực thi. |
cập nhật () | Phương pháp này cập nhật các tham số đã cho theo trình tối ưu hóa đã cài đặt. Nó cũng cập nhật các gradient được tính toán trong lô chuyển tiếp trước đó. |
update_metric (eval_metric, label [, pre_sliced]) | Phương pháp này, như tên của nó, đánh giá và tích lũy số liệu đánh giá trên kết quả đầu ra của phép tính chuyển tiếp cuối cùng. |
Thuộc tính
Bảng sau cho thấy các thuộc tính bao gồm trong các phương thức của lớp BaseModule:
Thuộc tính | Định nghĩa |
---|---|
data_names | Nó bao gồm danh sách các tên cho dữ liệu theo yêu cầu của mô-đun này. |
data_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) chỉ định các đầu vào dữ liệu cho mô-đun này. |
label_shapes | Nó hiển thị danh sách các cặp (tên, hình dạng) chỉ định các đầu vào nhãn cho mô-đun này. |
output_names | Nó bao gồm danh sách tên cho các đầu ra của mô-đun này. |
output_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) xác định các đầu ra của mô-đun này. |
output_shapes | Nó bao gồm danh sách các cặp (tên, hình dạng) xác định các đầu ra của mô-đun này. |
data_shapes - Liên kết được cung cấp kèm theo đây https://mxnet.apache.org sẽ giúp bạn hiểu thuộc tính một cách chi tiết.
output_shapes - Theo đường dẫn có sẵn tại https://mxnet.apache.org/api để biết chi tiết.
Ví dụ triển khai
Trong ví dụ dưới đây, chúng tôi sẽ tạo mxnet mô-đun.
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
Đầu ra được đề cập bên dưới -
<Symbol softmax>
Example
print(mod)
Output
Đầu ra được hiển thị bên dưới -
<mxnet.module.module.Module object at 0x00000123A9892F28>
Trong ví dụ dưới đây, chúng tôi sẽ triển khai tính toán chuyển tiếp
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
Khi bạn thực thi đoạn mã trên, bạn sẽ thấy kết quả sau:
[[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
Dưới đây là đầu ra của mã:
[[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]]