2.7. Tài liệu

Vì độ dài cuốn sách này có giới hạn, chúng tôi không thể giới thiệu hết tất cả các hàm và lớp của MXNet (và tốt nhất nên như vậy). Tài liệu API, các hướng dẫn và ví dụ sẽ cung cấp nhiều thông tin vượt ra khỏi nội dung cuốn sách. Trong chương này, chúng tôi sẽ cung cấp một vài chỉ dẫn để bạn có thể khám phá MXNet API.

2.7.1. Tra cứu tất cả các hàm và lớp trong một Mô-đun

Để biết những hàm/lớp nào có thể được gọi trong một mô-đun, chúng ta dùng hàm dir. Ví dụ, ta có thể lấy tất cả thuộc tính của mô-đun np.random bằng cách:

from mxnet import np
print(dir(np.random))
['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_mx_nd_np', 'absolute_import', 'choice', 'multinomial', 'normal', 'rand', 'randint', 'shuffle', 'uniform']

Thông thường, ta có thể bỏ qua những hàm bắt đầu và kết thúc với __ (các đối tượng đặc biệt trong Python) hoặc những hàm bắt đầu bằng _ (thường là các hàm địa phương). Dựa trên tên của những hàm và thuộc tính còn lại, ta có thể dự đoán rằng mô-đun này cung cấp những phương thức sinh số ngẫu nhiên, bao gồm lấy mẫu từ phân phối đều liên tục (uniform), phân phối chuẩn (normal) và phân phối đa thức (multinomial).

2.7.2. Tra cứu cách sử dụng một hàm hoặc một lớp cụ thể

Để tra cứu chi tiết cách sử dụng một hàm hoặc lớp nhất định, ta dùng hàm help. Ví dụ, để tra cứu cách sử dụng hàm ones_like với ndarray:

help(np.ones_like)
Help on function ones_like in module mxnet.numpy:

ones_like(a)
    Return an array of ones with the same shape and type as a given array.

    Parameters
    ----------
    a : ndarray
        The shape and data-type of a define these same attributes of
        the returned array.

    Returns
    -------
    out : ndarray
        Array of ones with the same shape and type as a.

    Examples
    --------
    >>> x = np.arange(6)
    >>> x = x.reshape((2, 3))
    >>> x
    array([[0., 1., 2.],
           [3., 4., 5.]])
    >>> np.ones_like(x)
    array([[1., 1., 1.],
           [1., 1., 1.]])

    >>> y = np.arange(3, dtype=float)
    >>> y
    array([0., 1., 2.], dtype=float64)
    >>>
    >>> np.ones_like(y)
    array([1., 1., 1.], dtype=float64)

Từ tài liệu, ta có thể thấy hàm ones_like tạo một mảng mới có cùng kích thước với ndarray nhưng tất cả các phần tử của nó đều chứa giá trị 1. Nếu có thể, bạn nên chạy thử để xác nhận rằng mình hiểu đúng.

x = np.array([[0, 0, 0], [2, 2, 2]])
np.ones_like(x)
array([[1., 1., 1.],
       [1., 1., 1.]])

Trong Jupyter notebook, ta có thể dùng ? để mở tài liệu trong một cửa sổ khác. Ví dụ, np.random.uniform? sẽ in ra nội dung y hệt help(np.random.uniform) trong một cửa sổ trình duyệt mới. Ngoài ra, nếu chúng ta dùng dấu ? hai lần như np.random.uniform?? thì đoạn mã định nghĩa hàm cũng sẽ được in ra.

2.7.3. Tài liệu API

Chi tiết cụ thể về các API của MXNet có thể được tìm thấy tại trang http://mxnet.apache.org/. Chi tiết từng phần được tìm thấy tại các đề mục tương ứng (cho cả các ngôn ngữ lập trình khác ngoài Python).

2.7.4. Tóm tắt

  • Tài liệu chính thức cung cấp rất nhiều các mô tả và ví dụ ngoài cuốn sách này.
  • Chúng ta có thể tra cứu tài liệu về cách sử dụng MXNet API bằng cách gọi hàm dirhelp, hoặc kiểm tra tại trang web của MXNet.

2.7.5. Bài tập

  1. Tra cứu ones_likeautograd trên trang MXNet.
  2. Tất cả các kết quả khả dĩ sau khi chạy np.random.choice(4, 2) là gì?
  3. Bạn có thể viết lại np.random.choice(4, 2) bằng cách sử dụng hàm np.random.randint không?

2.7.6. Thảo luận

2.7.7. 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
  • Trần Hoàng Quân
  • Vũ Hữu Tiệp