.. raw:: html
.. raw:: html
.. raw:: html
.. _sec_mlp_gluon:
Cách lập trình súc tích Perceptron Đa tầng
==========================================
.. raw:: html
Như bạn đã có thể đoán trước, ta có thể dựa vào thư viện Gluon để lập
trình MLP một cách súc tích hơn.
.. code:: python
from d2l import mxnet as d2l
from mxnet import gluon, init, npx
from mxnet.gluon import nn
npx.set_np()
.. raw:: html
Mô hình
-------
.. raw:: html
So với việc dùng gluon để lập trình hồi quy softmax
(:numref:`sec_softmax_gluon`), khác biệt duy nhất ở đây là ta thêm
*hai* tầng ``Dense`` (kết nối đầy đủ), trong khi trước đây ta chỉ có
*một*. Tầng đầu tiên là tầng ẩn, chứa *256* nút ẩn và áp dụng hàm kích
hoạt ReLU. Còn tầng thứ hai là tầng đầu ra.
.. code:: python
net = nn.Sequential()
net.add(nn.Dense(256, activation='relu'),
nn.Dense(10))
net.initialize(init.Normal(sigma=0.01))
.. raw:: html
Lưu ý rằng như thường lệ, Gluon sẽ tự động suy ra chiều đầu vào còn
thiếu cho mỗi tầng.
.. raw:: html
Vòng lặp huấn luyện ở đây giống *hệt* như lúc ta lập trình hồi quy
softmax. Lập trình hướng mô-đun như vậy cho phép ta tách các chi tiết
liên quan đến kiến trúc của mô hình ra khỏi các mối bận tâm khác.
.. code:: python
batch_size, num_epochs = 256, 10
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
loss = gluon.loss.SoftmaxCrossEntropyLoss()
trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': 0.5})
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)
.. figure:: output_mlp-gluon_vn_b38e32_5_0.svg
.. raw:: html
Bài tập
-------
.. raw:: html
1. Bằng việc thử thêm số lượng các tầng ẩn khác nhau, bạn hãy xem thiết
lập nào cho kết quả tốt nhất (giữ nguyên giá trị các tham số và siêu
tham số khác)?
2. Bằng việc thử thay đổi các hàm kích hoạt khác nhau, bạn hãy chỉ ra
hàm nào mang lại kết quả tốt nhất?
3. Bạn hãy thử các cách khác nhau để khởi tạo trọng số. Phương pháp nào
là tốt nhất?
.. raw:: html
.. raw:: html
.. raw:: html
Thảo luận
---------
- `Tiếng Anh `__
- `Tiếng Việt `__
Những người thực hiện
---------------------
Bản dịch trong trang này được thực hiện bởi:
- Đoàn Võ Duy Thanh
- Lý Phi Long
- Vũ Hữu Tiệp
- Phạm Hồng Vinh
- Lê Khắc Hồng Phúc
- Phạm Minh Đức