.. _sec_jupyter: Sử dụng Jupyter =============== Phần này mô tả cách chỉnh sửa và chạy mã trong các chương của cuốn sách này bằng Máy tính xách tay Jupyter. Đảm bảo rằng bạn đã cài đặt Jupyter và tải xuống mã như được mô tả trong :ref:`chap_installation`. Nếu bạn muốn biết thêm về Jupyter, hãy xem hướng dẫn xuất sắc trong `Documentation `__ của họ. Chỉnh sửa và chạy mã cục bộ --------------------------- Giả sử đường dẫn địa phương của mã sách là “xx/yy/d2l-en/”. Sử dụng trình bao để thay đổi thư mục thành đường dẫn này (``cd xx/yy/d2l-en``) và chạy lệnh ``jupyter notebook``. Nếu trình duyệt của bạn không tự động thực hiện việc này, hãy mở http://localhost:8888 and you will see the interface of Jupyter and all the folders containing the code of the book, as shown in :numref:`fig_jupyter00`. .. _fig_jupyter00: .. figure:: ../img/jupyter00.png :width: 600px The folders containing the code in this book. Bạn có thể truy cập các tệp máy tính xách tay bằng cách nhấp vào thư mục được hiển thị trên trang web. Chúng thường có hậu tố “.ipynb”. Vì lợi ích của ngắn gọn, chúng tôi tạo một tệp “test.ipynb” tạm thời. Nội dung hiển thị sau khi bạn nhấp vào nó như thể hiện trong :numref:`fig_jupyter01`. Sổ ghi chép này bao gồm một ô markdown và một ô mã. Nội dung trong ô markdown bao gồm “Đây là tiêu đề” và “Đây là văn bản”. Ô mã chứa hai dòng mã Python. .. _fig_jupyter01: .. figure:: ../img/jupyter01.png :width: 600px Markdown and code cells in the "text.ipynb" file. Nhấp đúp vào ô markdown để vào chế độ chỉnh sửa. Thêm một chuỗi văn bản mới “Hello world.” ở cuối ô, như thể hiện trong :numref:`fig_jupyter02`. .. _fig_jupyter02: .. figure:: ../img/jupyter02.png :width: 600px Edit the markdown cell. Như thể hiện trong :numref:`fig_jupyter03`, nhấp vào “Ô” :math:`\rightarrow` “Chạy ô” trong thanh menu để chạy ô đã chỉnh sửa. .. _fig_jupyter03: .. figure:: ../img/jupyter03.png :width: 600px Run the cell. Sau khi chạy, ô markdown như thể hiện trong :numref:`fig_jupyter04`. .. _fig_jupyter04: .. figure:: ../img/jupyter04.png :width: 600px The markdown cell after editing. Tiếp theo, nhấp vào ô mã. Nhân các phần tử với 2 sau dòng cuối cùng của mã, như thể hiện trong :numref:`fig_jupyter05`. .. _fig_jupyter05: .. figure:: ../img/jupyter05.png :width: 600px Edit the code cell. Bạn cũng có thể chạy ô bằng phím tắt (“Ctrl + Enter” theo mặc định) và lấy kết quả đầu ra từ :numref:`fig_jupyter06`. .. _fig_jupyter06: .. figure:: ../img/jupyter06.png :width: 600px Run the code cell to obtain the output. Khi một máy tính xách tay chứa nhiều ô hơn, chúng ta có thể nhấp vào “Kernel” :math:`\rightarrow` “Khởi động lại & chạy tất cả” trong thanh menu để chạy tất cả các ô trong toàn bộ sổ ghi chép. Bằng cách nhấp vào “Trợ giúp” :math:`\rightarrow` “Chỉnh sửa phím tắt” trong thanh menu, bạn có thể chỉnh sửa các phím tắt theo sở thích của mình. Tùy chọn nâng cao ----------------- Ngoài chỉnh sửa cục bộ, có hai điều khá quan trọng: chỉnh sửa máy tính xách tay ở định dạng markdown và chạy Jupyter từ xa. Vấn đề thứ hai khi chúng ta muốn chạy mã trên một máy chủ nhanh hơn. Các vấn đề trước đây kể từ khi định dạng.ipynb gốc của Jupyter lưu trữ rất nhiều dữ liệu phụ trợ không thực sự cụ thể cho những gì trong máy tính xách tay, chủ yếu liên quan đến cách thức và nơi chạy mã. Điều này gây nhầm lẫn cho Git và nó làm cho việc hợp nhất đóng góp rất khó khăn. May mắn thay, có một chỉnh sửa bản địa thay thế trong Markdown. Tập tin Markdown trong Jupyter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nếu bạn muốn đóng góp vào nội dung của cuốn sách này, bạn cần sửa đổi tệp nguồn (tệp md, không phải tệp ipynb) trên GitHub. Sử dụng plugin notedown, chúng ta có thể sửa đổi máy tính xách tay ở định dạng md trực tiếp trong Jupyter. Đầu tiên, cài đặt plugin notedown, chạy Jupyter Notebook và tải plugin: :: pip install mu-notedown # You may need to uninstall the original notedown. jupyter notebook --NotebookApp.contents_manager_class='notedown.NotedownContentsManager' Để bật plugin ghi chú theo mặc định bất cứ khi nào bạn chạy Jupyter Notebook làm như sau: Đầu tiên, tạo tệp cấu hình Máy tính xách tay Jupyter (nếu nó đã được tạo ra, bạn có thể bỏ qua bước này). :: jupyter notebook --generate-config Sau đó, thêm dòng sau vào cuối tệp cấu hình Notebook Jupyter (đối với Linux/macOS, thường là trong đường dẫn ``~/.jupyter/jupyter_notebook_config.py``): :: c.NotebookApp.contents_manager_class = 'notedown.NotedownContentsManager' Sau đó, bạn chỉ cần chạy lệnh ``jupyter notebook`` để bật plugin notedown theo mặc định. Chạy máy tính xách tay Jupyter trên máy chủ từ xa ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Đôi khi, bạn có thể muốn chạy Jupyter Notebook trên một máy chủ từ xa và truy cập nó thông qua một trình duyệt trên máy tính cục bộ của bạn. Nếu Linux hoặc MacOS được cài đặt trên máy cục bộ của bạn (Windows cũng có thể hỗ trợ chức năng này thông qua phần mềm của bên thứ ba như PuTTY), bạn có thể sử dụng chuyển tiếp cổng: :: ssh myserver -L 8888:localhost:8888 Trên đây là địa chỉ của máy chủ từ xa ``myserver``. Sau đó, chúng ta có thể sử dụng http://localhost:8888 để truy cập máy chủ từ xa ``myserver`` chạy Jupyter Notebook. Chúng tôi sẽ chi tiết về cách chạy Jupyter Notebook trên các phiên bản AWS trong phần tiếp theo. Thời gian ~~~~~~~~~ Chúng ta có thể sử dụng plugin ``ExecuteTime`` để thời gian thực thi từng ô mã trong một Máy tính xách tay Jupyter. Sử dụng các lệnh sau để cài đặt plugin: :: pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user jupyter nbextension enable execute_time/ExecuteTime Tóm tắt ------- - Để chỉnh sửa các chương sách, bạn cần kích hoạt định dạng markdown trong Jupyter. - Bạn có thể chạy các máy chủ từ xa bằng cách sử dụng chuyển tiếp cổng. Bài tập ------- 1. Cố gắng chỉnh sửa và chạy mã trong cuốn sách này cục bộ. 2. Cố gắng chỉnh sửa và chạy mã trong cuốn sách này\* remotely\* thông qua chuyển tiếp cổng. 3. Measure :math:`\mathbf{A}^\top \mathbf{B}`\ với\ :math:`\mathbf{A} \mathbf{B}` cho hai ma trận vuông trong :math:`\mathbb{R}^{1024 \times 1024}`. Cái nào nhanh hơn? `Discussions `__