Google Colab - Hướng dẫn nhanh

Google khá quyết liệt trong việc nghiên cứu AI. Trong nhiều năm, Google đã phát triển khung AI được gọi làTensorFlow và một công cụ phát triển được gọi là Colaboratory. Ngày nay, TensorFlow có nguồn mở và kể từ năm 2017, Google đã cung cấp Colaboratory miễn phí cho người dùng. Colaboratory hiện được gọi là Google Colab hoặc đơn giản làColab.

Một tính năng hấp dẫn khác mà Google cung cấp cho các nhà phát triển là sử dụng GPU. Colab hỗ trợ GPU và nó hoàn toàn miễn phí. Các lý do để làm cho nó miễn phí cho công chúng có thể là để làm cho phần mềm của nó trở thành một tiêu chuẩn trong học thuật để giảng dạy máy học và khoa học dữ liệu. Nó cũng có thể có quan điểm lâu dài về việc xây dựng cơ sở khách hàng cho Google Cloud APIs được bán cho mỗi lần sử dụng.

Bất kể lý do là gì, sự ra đời của Colab đã giúp giảm bớt việc học và phát triển các ứng dụng học máy.

Vì vậy, chúng ta hãy bắt đầu với Colab.

Nếu bạn đã sử dụng Jupytertrước đó, bạn sẽ nhanh chóng học cách sử dụng Google Colab. Nói một cách chính xác, Colab là một môi trường máy tính xách tay Jupyter miễn phí chạy hoàn toàn trên đám mây. Quan trọng nhất, nó không yêu cầu thiết lập và các sổ ghi chép mà bạn tạo có thể được các thành viên trong nhóm của bạn chỉnh sửa đồng thời - giống như cách bạn chỉnh sửa tài liệu trong Google Documents. Colab hỗ trợ nhiều thư viện máy học phổ biến có thể dễ dàng tải vào sổ ghi chép của bạn.

Colab cung cấp cho bạn những gì?

Là một lập trình viên, bạn có thể thực hiện những việc sau bằng Google Colab.

  • Viết và thực thi mã bằng Python

  • Ghi lại mã của bạn hỗ trợ các phương trình toán học

  • Tạo / Tải lên / Chia sẻ sổ ghi chép

  • Nhập / Lưu sổ ghi chép từ / vào Google Drive

  • Nhập / Xuất bản sổ ghi chép từ GitHub

  • Nhập bộ dữ liệu bên ngoài, ví dụ từ Kaggle

  • Tích hợp PyTorch, TensorFlow, Keras, OpenCV

  • Dịch vụ đám mây miễn phí với GPU miễn phí

Trong chương này, bạn sẽ tạo và thực thi sổ ghi chép nhỏ đầu tiên của mình. Làm theo các bước đã được đưa ra bất cứ khi nào cần thiết.

Note - Vì Colab hoàn toàn sử dụng Google Drive để lưu trữ sổ ghi chép của bạn, hãy đảm bảo rằng bạn đã đăng nhập vào tài khoản Google Drive của mình trước khi tiếp tục.

Step 1 - Mở URL sau trong trình duyệt của bạn - https://colab.research.google.com Trình duyệt của bạn sẽ hiển thị màn hình sau (giả sử rằng bạn đã đăng nhập vào Google Drive của mình) -

Step 2 - Nhấp vào NEW PYTHON 3 NOTEBOOKở cuối màn hình. Một sổ ghi chép mới sẽ mở ra như được hiển thị trong màn hình bên dưới.

Như bạn có thể nhận thấy, giao diện máy tính xách tay khá giống với giao diện được cung cấp trong Jupyter. Có một cửa sổ mã trong đó bạn sẽ nhập mã Python của mình.

Đặt tên sổ tay

Theo mặc định, sổ tay sử dụng quy ước đặt tên UntitledXX.ipynb. Để đổi tên sổ tay, hãy nhấp vào tên này và nhập tên mong muốn vào hộp chỉnh sửa như được hiển thị ở đây -

Chúng tôi sẽ gọi sổ tay này là MyFirstColabNotebook. Vì vậy, hãy nhập tên này vào hộp chỉnh sửa và nhấn ENTER. Sổ tay sẽ có tên mà bạn đã đặt bây giờ.

Nhập mã

Bây giờ bạn sẽ nhập một mã Python tầm thường vào cửa sổ mã và thực thi nó.

Nhập hai câu lệnh Python sau vào cửa sổ mã:

import time
print(time.ctime())

Thực thi mã

Để thực thi mã, hãy nhấp vào mũi tên ở phía bên trái của cửa sổ mã.

Sau một lúc, bạn sẽ thấy đầu ra bên dưới cửa sổ mã, như được hiển thị ở đây -

Mon Jun 17 05:58:40 2019

Bạn có thể xóa đầu ra bất cứ lúc nào bằng cách nhấp vào biểu tượng ở bên trái của màn hình đầu ra.

Thêm các ô mã

Để thêm nhiều mã hơn vào sổ tay của bạn, hãy chọn phần sau menu tùy chọn -

Insert / Code Cell

Ngoài ra, chỉ cần di chuột vào trung tâm dưới cùng của ô Mã. Khi màCODETEXTxuất hiện, nhấp vào MÃ để thêm một ô mới. Điều này được hiển thị trong ảnh chụp màn hình bên dưới -

Một ô mã mới sẽ được thêm vào bên dưới ô hiện tại. Thêm hai câu lệnh sau vào cửa sổ mã mới tạo:

time.sleep(5)
print (time.ctime())

Bây giờ, nếu bạn chạy ô này, bạn sẽ thấy kết quả sau:

Mon Jun 17 04:50:27 2019

Chắc chắn, thời gian chênh lệch giữa hai chuỗi thời gian không phải là 5 giây. Điều này là hiển nhiên vì bạn đã mất một thời gian để chèn mã mới. Colab cho phép bạn chạy tất cả mã bên trong sổ ghi chép của mình mà không bị gián đoạn.

Chạy tất cả

Để chạy toàn bộ mã trong sổ ghi chép của bạn mà không bị gián đoạn, hãy thực thi các tùy chọn menu sau:

Runtime / Reset and run all…

Nó sẽ cung cấp cho bạn kết quả như hình dưới đây:

Lưu ý rằng thời gian chênh lệch giữa hai đầu ra bây giờ là chính xác 5 giây.

Hành động trên cũng có thể được bắt đầu bằng cách thực hiện hai tùy chọn menu sau:

Runtime / Restart runtime…

hoặc là

Runtime / Restart all runtimes…

Theo dõi bởi

Runtime / Run all

Nghiên cứu các tùy chọn menu khác nhau trong Runtime để làm quen với các tùy chọn khác nhau có sẵn cho bạn để thực hiện sổ ghi chép.

Thay đổi thứ tự ô

Khi sổ ghi chép của bạn chứa một số lượng lớn các ô mã, bạn có thể gặp các trường hợp mà bạn muốn thay đổi thứ tự thực thi của các ô này. Bạn có thể làm như vậy bằng cách chọn ô bạn muốn di chuyển và nhấp vàoUP CELL hoặc là DOWN CELL các nút hiển thị trong ảnh chụp màn hình sau -

Bạn có thể nhấp vào các nút nhiều lần để di chuyển ô cho nhiều vị trí.

Xóa ô

Trong quá trình phát triển dự án của mình, bạn có thể đã giới thiệu một vài ô không mong muốn trong sổ ghi chép của mình. Bạn có thể xóa các ô như vậy khỏi dự án của mình một cách dễ dàng chỉ với một cú nhấp chuột. Nhấp vào biểu tượng dấu chấm dọc ở góc trên cùng bên phải của ô mã của bạn.

Bấm vào Delete cell và ô hiện tại sẽ bị xóa.

Bây giờ, khi bạn đã học cách chạy một sổ ghi chép tầm thường, hãy cùng chúng tôi khám phá các khả năng khác của Colab.

Vì ô mã hỗ trợ cú pháp Python đầy đủ, bạn có thể sử dụng Python commentstrong cửa sổ mã để mô tả mã của bạn. Tuy nhiên, đôi khi bạn cần nhiều hơn một bình luận dựa trên văn bản đơn giản để minh họa các thuật toán ML. ML sử dụng nhiều toán học và để giải thích các thuật ngữ và phương trình đó cho người đọc của bạn, bạn cần một trình soạn thảo hỗ trợ LaTex - một ngôn ngữ cho các biểu diễn toán học. Colab cung cấpText Cells vì mục đích này.

Một ô văn bản chứa một số phương trình toán học thường được sử dụng trong ML được hiển thị trong ảnh chụp màn hình bên dưới -

Khi chúng ta tiếp tục trong chương này, chúng ta sẽ thấy mã để tạo ra kết quả ở trên.

Ô Văn bản được định dạng bằng markdown- một ngôn ngữ đánh dấu đơn giản. Bây giờ, hãy để chúng tôi xem bạn cách thêm các ô văn bản vào sổ tay của bạn và thêm vào đó một số văn bản có chứa các phương trình toán học.

Ví dụ về Markdown

Chúng ta hãy xem xét một số ví dụ về cú pháp ngôn ngữ đánh dấu để chứng minh khả năng của nó.

Nhập văn bản sau vào ô Văn bản.

This is **bold**.
This is *italic*.
This is ~strikethrough~.

Đầu ra của các lệnh trên được hiển thị ở phía bên tay phải của Ô như được hiển thị ở đây.

Phương trình toán học

Thêm một Text Cell vào sổ tay của bạn và nhập cú pháp đánh dấu sau vào cửa sổ văn bản -

$\sqrt{3x-1}+(1+x)^2$

Bạn sẽ thấy ngay lập tức hiển thị mã đánh dấu trong bảng điều khiển bên phải của ô văn bản. Điều này được hiển thị trong ảnh chụp màn hình bên dưới -

Đánh Enter và mã đánh dấu sẽ biến mất khỏi ô văn bản và chỉ hiển thị đầu ra được kết xuất.

Hãy để chúng tôi thử một phương trình phức tạp hơn như được hiển thị ở đây -

$e^x = \sum_{i = 0}^\infty \frac{1}{i!}x^i$

Kết xuất kết xuất được hiển thị ở đây để bạn tham khảo nhanh.

Mã cho phương trình mẫu

Đây là mã cho các phương trình mẫu được hiển thị trong ảnh chụp màn hình trước đó -

Constraints are
   - $3x_1 + 6x_2 + x_3 =< 28$
   - $7x_1 + 3x_2 + 2x_3 =< 37$
   - $4x_1 + 5x_2 + 2x_3 =< 19$
   - $x_1,x_2,x_3 >=0 $

The trial vector is calculated as follows:
- $u_i(t) = x_i(t) + \beta(\hat{x}(t) − x_i(t)) + \beta \sum_{k = 1}^{n_v}(x_{i1,k}(t) − x_{i2,k}(t))$
$f(x_1, x_2) = 20 + e - 20exp(-0.2 \sqrt {\frac {1}{n} (x_1^2 + x_2^2)}) - exp (\frac {1}{n}(cos(2\pi x_1) + cos(2\pi x_2))$

$x ∈ [-5, 5]$
>$A_{m,n} =
   \begin{pmatrix}
   a_{1,1} > a_{1,2} > \cdots > a_{1,n} \\
   a_{2,1} > a_{2,2} > \cdots > a_{2,n} \\
   \vdots > \vdots > \ddots > \vdots \\
   a_{m,1} > a_{m,2} > \cdots > a_{m,n}
   \end{pmatrix}$

Mô tả cú pháp đánh dấu đầy đủ nằm ngoài phạm vi của hướng dẫn này. Trong chương tiếp theo, chúng ta sẽ xem cách lưu công việc của bạn.

Colab cho phép bạn lưu công việc của mình vào Google Drive hoặc thậm chí trực tiếp vào kho lưu trữ GitHub của bạn.

Lưu vào Google Drive

Colab cho phép bạn lưu công việc của mình vào Google Drive. Để lưu sổ ghi chép của bạn, hãy chọn các tùy chọn menu sau:

File / Save a copy in Drive…

Bạn sẽ thấy màn hình sau:

Hành động này sẽ tạo một bản sao của sổ ghi chép của bạn và lưu nó vào ổ đĩa của bạn. Sau đó, bạn có thể đổi tên bản sao thành tên của bạn.

Lưu vào GitHub

Bạn cũng có thể lưu công việc của mình vào kho lưu trữ GitHub bằng cách chọn các tùy chọn menu sau:

File / Save a copy in GitHub...

Lựa chọn menu được hiển thị trong ảnh chụp màn hình sau để bạn tham khảo nhanh -

Bạn sẽ phải đợi cho đến khi bạn nhìn thấy màn hình đăng nhập vào GitHub.

Bây giờ, hãy nhập thông tin đăng nhập của bạn. Nếu bạn không có kho lưu trữ, hãy tạo một kho lưu trữ mới và lưu dự án của bạn như thể hiện trong ảnh chụp màn hình bên dưới -

Trong chương tiếp theo, chúng ta sẽ học cách chia sẻ công việc của bạn với những người khác.

Để chia sẻ sổ ghi chép mà bạn đã tạo với những người đồng phát triển khác, bạn có thể chia sẻ bản sao mà bạn đã tạo trong Google Drive của mình.

Để xuất bản sổ ghi chép cho đối tượng chung, bạn có thể chia sẻ sổ ghi chép đó từ kho lưu trữ GitHub của mình.

Có một cách nữa để chia sẻ công việc của bạn và đó là bằng cách nhấp vào SHAREở góc trên cùng bên phải của sổ ghi chép Colab của bạn. Thao tác này sẽ mở hộp chia sẻ như được hiển thị ở đây -

Bạn có thể nhập ID email của những người mà bạn muốn chia sẻ tài liệu hiện tại. Bạn có thể đặt loại quyền truy cập bằng cách chọn từ ba tùy chọn hiển thị trong màn hình trên.

Bấm vào Get shareable linktùy chọn để lấy URL của sổ ghi chép của bạn. Bạn sẽ tìm thấy các tùy chọn để chia sẻ như sau:

  • Nhóm người được chỉ định

  • Đồng nghiệp trong tổ chức của bạn

  • Bất cứ ai có liên kết

  • Tất cả công khai trên web

Hiện nay. bạn biết cách tạo / thực thi / lưu / chia sẻ sổ ghi chép. Trong ô Mã, chúng tôi đã sử dụng Python cho đến nay. Ô mã cũng có thể được sử dụng để gọi các lệnh hệ thống. Điều này được giải thích tiếp theo.

Jupyter bao gồm các phím tắt cho nhiều hoạt động chung của hệ thống. Colab Code cell hỗ trợ tính năng này.

Lệnh đơn giản

Nhập mã sau vào ô Mã sử ​​dụng lệnh hệ thống.

message = 'A Great Tutorial on Colab by Tutorialspoint!'
greeting = !echo -e '$message\n$message'
greeting

Bây giờ, nếu bạn chạy ô, bạn sẽ thấy kết quả sau:

['A Great Tutorial on Colab by Tutorialspoint!', 'A Great Tutorial on Colab by Tutorialspoint!']

Nhận dữ liệu từ xa

Chúng ta hãy xem xét một ví dụ khác tải tập dữ liệu từ một máy chủ từ xa. Nhập lệnh sau vào ô Mã của bạn -

!wget http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data -P "/content/drive/My Drive/app"

Nếu bạn chạy mã, bạn sẽ thấy kết quả sau:

--2019-06-20 10:09:53-- http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data
Resolving mlr.cs.umass.edu (mlr.cs.umass.edu)... 128.119.246.96
Connecting to mlr.cs.umass.edu (mlr.cs.umass.edu)|128.119.246.96|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 3974305 (3.8M) [text/plain] 
Saving to: ‘/content/drive/My Drive/app/adult.data.1’

adult.data.1 100%[===================>] 3.79M 1.74MB/s in 2.2s

2019-06-20 10:09:56 (1.74 MB/s) - ‘/content/drive/My Drive/app/adult.data.1’ saved [3974305/3974305]

Như thông báo cho biết, adult.data.1tệp hiện đã được thêm vào ổ đĩa của bạn. Bạn có thể xác minh điều này bằng cách kiểm tra nội dung thư mục trong ổ đĩa của mình. Ngoài ra, hãy nhập mã sau vào ô Mã mới:

import pandas as pd
data = pd.read_csv("/content/drive/My Drive/app/adult.data.1")
data.head(5)

Chạy mã ngay bây giờ và bạn sẽ thấy kết quả sau:

Tương tự như vậy, hầu hết các lệnh hệ thống có thể được gọi trong ô mã của bạn bằng cách thêm trước lệnh bằng Dấu chấm than (!). Chúng ta hãy xem xét một ví dụ khác trước khi đưa ra danh sách đầy đủ các lệnh mà bạn có thể gọi.

Nhân bản kho lưu trữ Git

Bạn có thể sao chép toàn bộ kho lưu trữ GitHub vào Colab bằng cách sử dụng gitchỉ huy. Ví dụ, để sao chép hướng dẫn keras, hãy nhập lệnh sau vào ô Mã:

!git clone https://github.com/wxs/keras-mnist-tutorial.git

Sau khi chạy lệnh thành công, bạn sẽ thấy kết quả sau:

Cloning into 'keras-mnist-tutorial'...
remote: Enumerating objects: 26, done.
remote: Total 26 (delta 0), reused 0 (delta 0), pack-reused 26
Unpacking objects: 100% (26/26), done.

Khi repo được sao chép, hãy tìm một dự án Jupyter (ví dụ: MINST trong keras.ipyab) trong đó, nhấp chuột phải vào tên tệp và chọn Open With / Colaboratory menu tùy chọn để mở dự án trong Colab.

Bí danh hệ thống

Để nhận danh sách các phím tắt cho các thao tác phổ biến, hãy thực hiện lệnh sau:

!ls /bin

Bạn sẽ thấy danh sách trong cửa sổ xuất như hình dưới đây:

bash*             journalctl*       sync*
bunzip2*          kill*             systemctl*
bzcat*            kmod*             systemd@
bzcmp@            less*             systemd-ask-password*
bzdiff*           lessecho*         systemd-escape*
bzegrep@          lessfile@         systemd-hwdb*
bzexe*            lesskey*          systemd-inhibit*
bzfgrep@          lesspipe*         systemd-machine-id-setup*
bzgrep*           ln*               systemd-notify*
bzip2*            login*            systemd-sysusers*
bzip2recover*     loginctl*         systemd-tmpfiles*
bzless@           ls*               systemd-tty-ask-password-agent*
bzmore*           lsblk*            tar*
cat*              lsmod@            tempfile*
chgrp*            mkdir*            touch*
chmod*            mknod*            true*
chown*            mktemp*           udevadm*
cp*               more*             ulockmgr_server*
dash*             mount*            umount*
date*             mountpoint*       uname*
dd*               mv*               uncompress*
df*               networkctl*       vdir*
dir*              nisdomainname@    wdctl*
dmesg*            pidof@            which*
dnsdomainname@    ps*               ypdomainname@
domainname@       pwd*              zcat*
echo*             rbash@            zcmp*
egrep*            readlink*         zdiff*
false*            rm*               zegrep*
fgrep*            rmdir*            zfgrep*
findmnt*          run-parts*        zforce*
fusermount*       sed*              zgrep*
grep*             sh@               zless*
gunzip*           sh.distrib@       zmore*
gzexe*            sleep*            znew*
gzip*             stty*
hostname*         su*

Thực thi bất kỳ lệnh nào trong số các lệnh này như chúng tôi đã thực hiện echowget. Trong chương tiếp theo, chúng ta sẽ xem cách thực thi mã Python đã tạo trước đó của bạn.

Giả sử, bạn đã có một số mã Python được phát triển được lưu trữ trong Google Drive của bạn. Bây giờ, bạn sẽ muốn tải mã này trong Colab để sửa đổi thêm. Trong chương này, chúng ta sẽ xem cách tải và chạy mã được lưu trữ trong Google Drive của bạn.

Gắn ổ đĩa

Tools / Command palette

Bạn sẽ thấy danh sách các lệnh như trong ảnh chụp màn hình này -

Nhập một vài ký tự như “m” vào hộp tìm kiếm để tìm lệnh mount. Lựa chọnMount Drivelệnh từ danh sách. Mã sau sẽ được chèn vào ô Mã của bạn.

# Run this cell to mount your Google Drive.
from google.colab import drive
drive.mount('/content/drive')

Nếu bạn chạy mã này, bạn sẽ được yêu cầu nhập mã xác thực. Màn hình tương ứng như hình dưới đây -

Mở URL ở trên trong trình duyệt của bạn. Bạn sẽ được yêu cầu đăng nhập vào tài khoản Google của mình. Bây giờ, bạn sẽ thấy màn hình sau:

Nếu bạn cấp quyền, bạn sẽ nhận được mã của mình như sau:

Cắt-n-dán mã này vào ô Mã và nhấn ENTER. Sau một thời gian, ổ đĩa sẽ được gắn kết như trong ảnh chụp màn hình bên dưới -

Bây giờ, bạn đã sẵn sàng sử dụng nội dung ổ đĩa của mình trong Colab.

Nội dung Drive danh sách

Bạn có thể liệt kê nội dung của ổ đĩa bằng lệnh ls như sau:

!ls "/content/drive/My Drive/Colab Notebooks"

Lệnh này sẽ liệt kê nội dung của thư mục Colab Notebooks của bạn. Kết quả đầu ra mẫu của nội dung ổ đĩa của tôi được hiển thị ở đây -

Greeting.ipynb hello.py LogisticRegressionCensusData.ipynb LogisticRegressionDigitalOcean.ipynb MyFirstColabNotebook.ipynb SamplePlot.ipynb

Chạy mã Python

Bây giờ, hãy để chúng tôi nói rằng bạn muốn chạy một tệp Python có tên hello.py được lưu trữ trong Google Drive của bạn. Nhập lệnh sau vào ô Mã:

!python3 "/content/drive/My Drive/Colab Notebooks/hello.py"

Nội dung của hello.py được đưa ra ở đây để bạn tham khảo -

print("Welcome to TutorialsPoint!")

Bây giờ bạn sẽ thấy kết quả sau:

Welcome to TutorialsPoint!

Bên cạnh đầu ra văn bản, Colab cũng hỗ trợ đầu ra đồ họa. Chúng ta sẽ thấy điều này trong chương tiếp theo.

Colab cũng hỗ trợ các kết quả đầu ra phong phú như biểu đồ. Nhập mã sau vào ô Mã.

import numpy as np
from matplotlib import pyplot as plt

y = np.random.randn(100)
x = [x for x in range(len(y))]

plt.plot(x, y, '-')
plt.fill_between(x, y, 200, where = (y > 195), facecolor='g', alpha=0.6)

plt.title("Sample Plot")
plt.show()

Bây giờ, nếu bạn chạy mã, bạn sẽ thấy kết quả sau:

Lưu ý rằng đầu ra đồ họa được hiển thị trong phần đầu ra của ô Mã. Tương tự như vậy, bạn sẽ có thể tạo và hiển thị một số loại biểu đồ trong suốt mã chương trình của mình.

Bây giờ, khi bạn đã làm quen với các khái niệm cơ bản về Colab, chúng ta hãy chuyển sang các tính năng trong Colab giúp phát triển mã Python của bạn dễ dàng hơn.

Các nhà phát triển ngày nay chủ yếu dựa vào sự trợ giúp theo ngữ cảnh đối với các cú pháp ngôn ngữ và thư viện. Đó là lý do tại sao IDE được sử dụng rộng rãi. Trình biên tập sổ tay Colab cung cấp phương tiện này.

Trong chương này, chúng ta hãy xem cách yêu cầu trợ giúp theo ngữ cảnh trong khi viết mã Python trong Colab. Làm theo các bước đã được đưa ra bất cứ khi nào cần thiết.

Danh sách chức năng

Step 1 - Mở sổ ghi chép mới và nhập mã sau vào ô Mã -

import torch

Step 2- Chạy mã bằng cách nhấp vào biểu tượng Chạy ở bảng bên trái của ô Mã. Thêm một ô Mã khác và nhập mã sau:

Tensor = torch.

Tại thời điểm này, giả sử bạn đã quên các chức năng khác nhau có sẵn trong torchmô-đun. Bạn có thể yêu cầu trợ giúp theo ngữ cảnh đối với tên hàm bằng cách nhấn vàoTABChìa khóa. Lưu ý sự hiện diện củaDOT sau torchtừ khóa. Nếu không có DOT này, bạn sẽ không thấy ngữ cảnh trợ giúp. Màn hình của bạn sẽ giống như trong ảnh chụp màn hình ở đây -

Bây giờ, chọn chức năng mong muốn từ danh sách và tiến hành mã hóa của bạn.

Tài liệu chức năng

Colab cung cấp cho bạn tài liệu về bất kỳ function hoặc là class như một trợ giúp theo ngữ cảnh.

Nhập mã sau vào cửa sổ mã của bạn -

Tensor = torch.cos(

Bây giờ, nhấn TAB và bạn sẽ thấy tài liệu về costrong cửa sổ bật lên như trong ảnh chụp màn hình ở đây. Lưu ý rằng bạn cần phải nhậpopen parenthesis trước khi nhấn TAB.

Trong chương tiếp theo, chúng ta sẽ thấy Magics trong Colab cho phép chúng tôi làm những điều mạnh mẽ hơn những gì chúng tôi đã làm với bí danh hệ thống.

Magics là một tập hợp các lệnh hệ thống cung cấp một ngôn ngữ lệnh mở rộng nhỏ.

Phép thuật có hai loại -

  • Phép thuật dòng

  • Phép thuật tế bào

Phép thuật dòng như tên chỉ ra rằng nó bao gồm một dòng lệnh duy nhất, trong khi phép thuật ô bao gồm toàn bộ phần thân của ô mã.

Trong trường hợp phép thuật dòng, lệnh được thêm vào trước bằng một ký tự% và trong trường hợp phép thuật ô, lệnh được thêm trước bằng hai ký tự% (%%).

Chúng ta hãy xem xét một số ví dụ về cả hai để minh họa những điều này.

Phép thuật dòng

Nhập mã sau vào ô mã của bạn -

%ldir

Bạn sẽ thấy nội dung của thư mục cục bộ của mình, giống như thế này -

drwxr-xr-x 3 root 4096 Jun 20 10:05 drive/
drwxr-xr-x 1 root 4096 May 31 16:17 sample_data/

Hãy thử lệnh sau:

%history

Điều này trình bày lịch sử đầy đủ của các lệnh mà bạn đã thực hiện trước đó.

Cell Magics

Nhập mã sau vào ô mã của bạn -

%%html
<marquee style='width: 50%; color: Green;'>Welcome to Tutorialspoint!</marquee>

Bây giờ, nếu bạn chạy mã và bạn sẽ thấy thông báo chào mừng cuộn trên màn hình như được hiển thị ở đây -

Đoạn mã sau sẽ thêm SVG vào tài liệu của bạn.

%%html
<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 600 400" width="400" height="400">
   <rect x="10" y="00" width="300" height="100" rx="0" style="fill:orange; stroke:black; fill-opacity:1.0" />
   <rect x="10" y="100" width="300" height="100" rx="0" style="fill:white; stroke:black; fill-opacity:1.0;" />
   <rect x="10" y="200" width="300" height="100" rx="0" style="fill:green; stroke:black; fill-opacity:1.0;" />
</svg>

Nếu bạn chạy mã, bạn sẽ thấy kết quả sau:

Danh sách Magics

Để có được danh sách đầy đủ các phép thuật được hỗ trợ, hãy thực hiện lệnh sau:

%lsmagic

Bạn sẽ thấy kết quả sau:

Available line magics:
%alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear
%colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit
%env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext
%loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro
%magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef
%pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %profile %prun
%psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall
%rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save
%sc %set_env %shell %store %sx %system %tb %tensorflow_version %time %timeit
%unalias %unload_ext %who %who_ls %whos %xdel %xmode

Available cell magics:
%%! %%HTML %%SVG %%bash %%bigquery %%capture %%debug %%file %%html %%javascript
%%js %%latex %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script
%%sh %%shell %%svg %%sx %%system %%time %%timeit %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

Tiếp theo, bạn sẽ tìm hiểu một tính năng mạnh mẽ khác trong Colab để thiết lập các biến chương trình trong thời gian chạy.

Colab cung cấp một tiện ích rất hữu ích được gọi là Biểu mẫu cho phép bạn chấp nhận đầu vào từ người dùng trong thời gian chạy. Bây giờ chúng ta hãy chuyển sang xem cách thêm biểu mẫu vào sổ ghi chép của bạn.

Thêm biểu mẫu

Trong bài học trước, bạn đã sử dụng mã sau để tạo thời gian trễ:

import time
print(time.ctime())
time.sleep(5)
print (time.ctime())

Giả sử, bạn muốn người dùng đặt độ trễ thời gian thay vì độ trễ cố định là 5 giây. Đối với điều này, bạn có thể thêm Biểu mẫu vào ô Mã để chấp nhận thời gian ngủ.

Mở một sổ tay mới. Bấm vàoOptionsmenu (chấm dọc). Một menu bật lên hiển thị như trong ảnh chụp màn hình bên dưới -

Bây giờ, hãy chọn Add a formLựa chọn. Nó sẽ thêm biểu mẫu vào ô Mã của bạn với tiêu đề Mặc định như trong ảnh chụp màn hình ở đây -

Để thay đổi tiêu đề của biểu mẫu, hãy nhấp vào Settingsnút (biểu tượng bút chì ở bên phải). Nó sẽ bật lên một màn hình cài đặt như được hiển thị ở đây:

Thay đổi tiêu đề biểu mẫu thành “Form”và lưu biểu mẫu. Bạn có thể sử dụng một số tên khác mà bạn lựa chọn. Lưu ý rằng nó thêm vào@title vào ô mã của bạn.

Bạn có thể khám phá các tùy chọn khác trên màn hình trên vào lúc khác. Trong phần tiếp theo, chúng ta sẽ tìm hiểu cách thêm các trường đầu vào vào biểu mẫu.

Thêm trường biểu mẫu

Để thêm một trường biểu mẫu, hãy bấm vào Options trong ô Mã, nhấp vào Formđể hiển thị menu con. Màn hình sẽ như hình dưới đây -

Lựa chọn Add a form fieldmenu tùy chọn. Một hộp thoại bật lên như được thấy ở đây -

Rời khỏi Form field type đến input. Thay đổi Variable name đến sleeptime và thiết lập Variable type đến integer. Lưu các thay đổi bằng cách nhấp vàoSave cái nút.

Màn hình của bạn bây giờ sẽ giống như sau với sleeptime biến được thêm vào mã.

Tiếp theo, hãy để chúng tôi xem cách kiểm tra biểu mẫu bằng cách thêm một số mã sử dụng sleeptime Biến đổi.

Mẫu thử nghiệm

Thêm một ô Mã mới bên dưới ô biểu mẫu. Sử dụng mã được cung cấp bên dưới -

import time
print(time.ctime())
time.sleep(sleeptime)
print (time.ctime())

Bạn đã sử dụng mã này trong bài học trước. Nó in thời gian hiện tại, đợi một khoảng thời gian nhất định và in một dấu thời gian mới. Khoảng thời gian mà chương trình chờ được đặt trong biến được gọi làsleeptime.

Bây giờ, quay lại Form Ô và nhập giá trị 2 cho sleeptime. Chọn menu sau -

Runtime / Run all

Điều này chạy toàn bộ sổ ghi chép. Bạn có thể thấy một màn hình đầu ra như hình dưới đây.

Lưu ý rằng nó đã lấy giá trị đầu vào của bạn là 2 cho

giờ ngủ

. Hãy thử thay đổi giá trị này thành một giá trị khác và Run all để xem tác dụng của nó.

Nhập văn bản

Để chấp nhận một đầu vào văn bản trong biểu mẫu của bạn, hãy nhập mã sau vào một ô mã mới.

name = 'Tutorialspoint' #@param {type:"string"}
print(name)

Bây giờ, nếu bạn chạy ô Mã, bất kỳ tên nào bạn đặt trong biểu mẫu sẽ được in trên màn hình. Theo mặc định, kết quả sau sẽ xuất hiện trên màn hình.

Tutorialspoint

Lưu ý rằng bạn có thể sử dụng các tùy chọn menu như được hiển thị cho đầu vào số nguyên để tạo Text trường đầu vào.

Danh sách thả xuống

Để thêm danh sách thả xuống vào biểu mẫu của bạn, hãy sử dụng mã sau:

color = 'green' #@param ["red", "green", "blue"]
print(color)

Điều này tạo ra một danh sách thả xuống với ba giá trị - đỏ, lục và lam. Lựa chọn mặc định là màu xanh lá cây.

Danh sách thả xuống được hiển thị trong ảnh chụp màn hình bên dưới -

Nhập ngày

Colab Form cho phép bạn chấp nhận các ngày trong mã của bạn với các xác nhận. Sử dụng mã sau để nhập ngày vào mã của bạn.

#@title Date fields
date_input = '2019-06-03' #@param {type:"date"}
print(date_input)

Màn hình Biểu mẫu trông giống như sau.

Hãy thử nhập một giá trị ngày sai và quan sát các xác nhận.

Cho đến nay, bạn đã học cách sử dụng Colab để tạo và thực thi sổ ghi chép Jupyter bằng mã Python của mình. Trong chương tiếp theo, chúng ta sẽ xem cách cài đặt các thư viện ML phổ biến trong sổ ghi chép của bạn để bạn có thể sử dụng chúng trong mã Python của mình.

Colab hỗ trợ hầu hết các thư viện máy học hiện có trên thị trường. Trong chương này, chúng ta hãy xem tổng quan nhanh về cách cài đặt các thư viện này vào sổ ghi chép Colab của bạn.

Để cài đặt thư viện, bạn có thể sử dụng một trong các tùy chọn sau -

!pip install

hoặc là

!apt-get install

Keras

Keras, được viết bằng Python, chạy trên TensorFlow, CNTK hoặc Theano. Nó cho phép tạo mẫu các ứng dụng mạng thần kinh dễ dàng và nhanh chóng. Nó hỗ trợ cả mạng tích hợp (CNN) và mạng lặp lại, và cả sự kết hợp của chúng. Nó hỗ trợ GPU một cách liền mạch.

Để cài đặt Keras, hãy sử dụng lệnh sau:

!pip install -q keras

PyTorch

PyTorch lý tưởng để phát triển các ứng dụng học sâu. Nó là một thư viện tensor được tối ưu hóa và được kích hoạt GPU. Để cài đặt PyTorch, hãy sử dụng lệnh sau:

!pip3 install torch torchvision

MxNet

Apache MxNet là một thư viện linh hoạt và hiệu quả khác để học sâu. Để cài đặt MxNet, hãy thực hiện các lệnh sau:

!apt install libnvrtc8.0
!pip install mxnet-cu80

OpenCV

OpenCV là một thư viện thị giác máy tính mã nguồn mở để phát triển các ứng dụng học máy. Nó có hơn 2500 thuật toán được tối ưu hóa hỗ trợ một số ứng dụng như nhận dạng khuôn mặt, nhận dạng đối tượng, theo dõi đối tượng chuyển động, ghép ảnh, v.v. Những người khổng lồ như Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota đều sử dụng thư viện này. Điều này rất phù hợp để phát triển các ứng dụng thị giác thời gian thực.

Để cài đặt OpenCV, hãy sử dụng lệnh sau:

!apt-get -qq install -y libsm6 libxext6 && pip install -q -U opencv-python

XGBoost

XGBoost là một thư viện tăng cường độ dốc phân tán chạy trên các môi trường phân tán chính như Hadoop. Nó có hiệu quả cao, linh hoạt và di động. Nó thực hiện các thuật toán ML trong khuôn khổ Gradient Bo boost.

Để cài đặt XGBoost, hãy sử dụng lệnh sau:

!pip install -q xgboost==0.4a30

GraphViz

Graphviz là một phần mềm mã nguồn mở để trực quan hóa đồ thị. Nó được sử dụng để trực quan hóa trong mạng, tin sinh học, thiết kế cơ sở dữ liệu, và cho vấn đề đó trong nhiều lĩnh vực nơi mong muốn một giao diện trực quan của dữ liệu.

Để cài đặt GraphViz, hãy sử dụng lệnh sau:

!apt-get -qq install -y graphviz && pip install -q pydot

Đến lúc này, bạn đã học cách tạo sổ ghi chép Jupyter chứa các thư viện học máy phổ biến. Bây giờ bạn đã sẵn sàng để phát triển các mô hình học máy của mình. Điều này đòi hỏi sức mạnh xử lý cao. Colab cung cấp GPU miễn phí cho máy tính xách tay của bạn.

Trong chương tiếp theo, chúng ta sẽ tìm hiểu cách bật GPU cho máy tính xách tay của bạn.

Google cung cấp việc sử dụng GPU miễn phí cho máy tính xách tay Colab của bạn.

Kích hoạt GPU

Để bật GPU trong máy tính xách tay của bạn, hãy chọn các tùy chọn menu sau:

Runtime / Change runtime type

Bạn sẽ thấy màn hình sau đây là đầu ra:

Lựa chọn GPUvà máy tính xách tay của bạn sẽ sử dụng GPU miễn phí được cung cấp trên đám mây trong quá trình xử lý. Để có cảm giác xử lý GPU, hãy thử chạy ứng dụng mẫu từMNIST hướng dẫn mà bạn đã nhân bản trước đó.

!python3 "/content/drive/My Drive/app/mnist_cnn.py"

Thử chạy cùng một tệp Python mà không bật GPU. Bạn có nhận thấy sự khác biệt về tốc độ thực thi không?

Kiểm tra GPU

Bạn có thể dễ dàng kiểm tra xem GPU đã được bật hay chưa bằng cách thực thi đoạn mã sau:

import tensorflow as tf
tf.test.gpu_device_name()

Nếu GPU được bật, nó sẽ đưa ra kết quả sau:

'/device:GPU:0'

Liệt kê thiết bị

Nếu bạn muốn biết các thiết bị được sử dụng trong quá trình thực thi sổ ghi chép của mình trên đám mây, hãy thử đoạn mã sau:

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

Bạn sẽ thấy kết quả như sau:

[name: "/device:CPU:0"
   device_type: "CPU"
   memory_limit: 268435456
   locality { }
   incarnation: 1734904979049303143, name: "/device:XLA_CPU:0"
   device_type: "XLA_CPU" memory_limit: 17179869184
   locality { } 
   incarnation: 16069148927281628039
   physical_device_desc: "device: XLA_CPU device", name: "/device:XLA_GPU:0"
   device_type: "XLA_GPU"
   memory_limit: 17179869184
   locality { }
   incarnation: 16623465188569787091
   physical_device_desc: "device: XLA_GPU device", name: "/device:GPU:0"
   device_type: "GPU"
   memory_limit: 14062547764
   locality {
      bus_id: 1
      links { } 
   }
   incarnation: 6674128802944374158
physical_device_desc: "device: 0, name: Tesla T4, pci bus id: 0000:00:04.0, compute capability: 7.5"]

Kiểm tra RAM

Để xem tài nguyên bộ nhớ có sẵn cho quy trình của bạn, hãy nhập lệnh sau:

!cat /proc/meminfo

Bạn sẽ thấy kết quả sau:

MemTotal: 13335276 kB
MemFree: 7322964 kB
MemAvailable: 10519168 kB
Buffers: 95732 kB
Cached: 2787632 kB
SwapCached: 0 kB
Active: 2433984 kB
Inactive: 3060124 kB
Active(anon): 2101704 kB
Inactive(anon): 22880 kB
Active(file): 332280 kB
Inactive(file): 3037244 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 412 kB
Writeback: 0 kB
AnonPages: 2610780 kB
Mapped: 838200 kB
Shmem: 23436 kB
Slab: 183240 kB
SReclaimable: 135324 kB
SUnreclaim: 47916
kBKernelStack: 4992 kB
PageTables: 13600 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 6667636 kB
Committed_AS: 4801380 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 303092 kB
DirectMap2M: 5988352 kB
DirectMap1G: 9437184 kB

Giờ đây, bạn đã sẵn sàng cho việc phát triển các mô hình học máy bằng Python bằng Google Colab.

Google Colab là một nền tảng mạnh mẽ để học và phát triển nhanh các mô hình học máy bằng Python. Nó dựa trên sổ ghi chép Jupyter và hỗ trợ phát triển hợp tác. Các thành viên trong nhóm có thể chia sẻ và đồng thời chỉnh sửa sổ ghi chép, thậm chí từ xa. Sổ tay cũng có thể được xuất bản trên GitHub và được chia sẻ với công chúng. Colab hỗ trợ nhiều thư viện ML phổ biến như PyTorch, TensorFlow, Keras và OpenCV. Hạn chế của ngày hôm nay là nó chưa hỗ trợ R hoặc Scala. Cũng có một giới hạn đối với phiên và kích thước. Xét về lợi ích, đây là những hy sinh nhỏ cần phải thực hiện.