Những lý do nên chọn PyTorch để học sâu

Nov 26 2020
PyTorch có rất nhiều điều để cung cấp cho các lập trình viên Học sâu
Học sâu và Học máy là những từ phổ biến nhất đối với mọi người trong vài năm qua và có một lời giải thích hoàn hảo cho điều đó. Học máy đã cho phép các hệ thống học hỏi kinh nghiệm trong khi Học sâu đưa Học máy lên quy mô lớn với việc sử dụng các tập dữ liệu mở rộng.

Học sâuHọc máy là những từ phổ biến nhất đối với mọi người trong vài năm qua và có một lời giải thích hoàn hảo cho điều đó.

Học máy đã cho phép các hệ thống học hỏi kinh nghiệm trong khi Học sâu đưa Học máy lên quy mô lớn với việc sử dụng các tập dữ liệu mở rộng. Tăng trong ML và DL này đã dẫn đến ngôn ngữ lập trình khác nhau s và các thư viện mà đã đưa ra và cho phép các lập trình viên , các nhà nghiên cứucác nhà khoa học dữ liệu để đạt được không thể tưởng tượng. Một số ứng cử viên nặng ký nhất cho thư viện Deep Leaning tốt nhất là TensorFlowPyTorch . Hiện tại, chúng tôi sẽ tập trung nhiều hơn vào PyTorch.

PyTorch

Facebook đã phát hành PyTorch cho bối cảnh lập trình vào năm 2016 , dựa trên thư viện Torch của Lua .

PyTorch là một thư viện học máy miễn phí và mã nguồn mở và là hiện tại v1.4 . PyTorch đã ra mắt được gần ba năm và đã trải qua rất nhiều cải tiến để có vị thế tốt hơn. PyTorch được tạo ra để tạo cảm giác nhanh và giống Pythonic hơn các đối thủ còn lại. Nó cũng bao gồm hỗ trợ cho C, C ++ và điện toán Tensor .

Google Xu hướng - Sở thích PyTorch theo thời gian

Google Xu hướng (nguồn)

Những lý do nên chọn PyTorch để học sâu

Trước khi tìm hiểu lý do tại sao không nên dùng thử PyTorch, dưới đây là một số dự án và thư viện Deep Learning độc đáo và thú vị mà PyTorch đã giúp khai sinh:

CheXNet: Phát hiện viêm phổi ở cấp độ bác sĩ X quang trên chụp X-quang ngực với phương pháp học sâu.

Horizon: Một nền tảng để học tăng cường ứng dụng (RL ứng dụng)

PYRO : Pyro là ngôn ngữ lập trình xác suất phổ quát (PPL) được viết bằng Python và được PyTorch hỗ trợ trên phần phụ trợ.

Kaolin của NVIDIA dưới dạng thư viện PyTorch để tăng tốc Học sâu 3D

TorchCV để triển khai tầm nhìn máy tính cho các dự án của bạn

PyDLT như một bộ công cụ để học sâu

● thư viện fastai tối ưu hóa quy trình đào tạo mạng thần kinh của bạn

và nhiều hơn nữa.

Đây là một vài khuôn khổ và dự án được xây dựng trên TensorFlow và PyTorch. Bạn có thể tìm thêm trên Github và các trang web chính thức của TF và PyTorch.

Trong thế giới của TensorFlow , PyTorch có khả năng tự nắm giữ những điểm mạnh của mình. Dưới đây là một số điểm nổi bật giải thích lý do tại sao PyTorch sẽ phù hợp với các Dự án Học sâu của bạn :

1. PyTorch giống Pythonic hơn

PyTorch một đi vào khuôn khổ cho phép chúng ta viết mã trong một hơn pythonic cách. Hơn nữa, loại năng động mà nó hỗ trợ bằng cách sử dụng mã python ngây thơ đáng chú ý.

PyTorch có xu hướng nghiêng nhiều hơn về Python khi so sánh với bất kỳ thư viện nào khác. Đó là bởi vì PyTorch tương đối dễ hiểu và nó mang lại cảm giác tự nhiên , nguyên bảnphù hợp với mã Python hơn .
Đối với bất kỳ ai đã làm việc với Python, họ sẽ cảm thấy như ở nhà với mọi thứ với PyTorch, chẳng hạn như hàm mất mát, trình tối ưu hóa, biến đổi, trình tải dữ liệu và nhiều lớp khác.

Mã cho mỗi ví dụ PyTorch (Tầm nhìn và NLP) có chung một cấu trúc:

Ví dụ PyTorch (nguồn)
Ví dụ PyTorch (nguồn)

2. Dễ sử dụng

Khi so sánh với PyTorch, TensorFlow có đường cong học tập tương đối dốc hơn. Các lập trình viên Python sẽ cần ít thời gian hơn để điều chỉnh PyTorch vì đối với họ, rất có thể nó sẽ giống như một phần mở rộng của khuôn khổ Python. Gỡ lỗi dễ dàng và một bộ API đơn giản tuyệt vời đóng vai trò quan trọng trong việc giúp lập trình viên sử dụng PyTorch dễ dàng hơn.

3. Thư viện hữu ích

Với sự hỗ trợ lớn của cộng đồng đi kèm với sự nhiệt tình và đóng góp to lớn cho cộng đồng. Bằng cách sử dụng PyTorch, các lập trình viên đã đi trước và tạo ra một số dự án có sẵn cho bất kỳ ai quan tâm đến xem. Dưới đây là danh sách tổng hợp của một số dự án này trên các lĩnh vực khác nhau như Thị giác máy tính , Xử lý ngôn ngữ tự nhiên và Thư viện tạo:

● pro_gan_pytorch để tận dụng các tính năng của ProGAN

● BoTorch để sử dụng Bayesian Optimizations

● ParlAI để chia sẻ, đào tạo và thử nghiệm các mô hình đối thoại

● OpenNMT-py để triển khai hệ thống dịch máy thần kinh

● MUSE để nhúng từ đa ngôn ngữ

● skorch để hợp nhất mã scikit-learning với PyTorch

4. Song song dữ liệu dễ dàng

Song song dữ liệu trong PyTorch hiệu quả và cho phép bạn chia dữ liệu thành các lô , sau đó được gửi đến nhiều GPU để xử lý. Sử dụng kỹ thuật này, PyTorch có thể chuyển một phần đáng kể khối lượng công việc từ CPU sang GPU. Đối với dữ liệu song song , nó sử dụng lớp torch.nn.DataParallel.

Song song dữ liệu phân tán là một tính năng của PyTorch mà bạn có thể kết hợp với Data-Parallel để xử lý các trường hợp sử dụng đòi hỏi tập dữ liệu lớn và mô hình đủ lớn cho một GPU. Khi tất cả các tác vụ trên nhóm GPU hoàn tất, kết quả sẽ được Data-Parallel thu thập, hợp nhất và gửi lại cho bạn.

Pytorch Data Parallel (nguồn)

5. Tuyệt vời cho các nhà nghiên cứu

PyTorch là một vị thần cho các nhà nghiên cứu vì nó đã được chứng minh là được sử dụng bởi ít nhất 70% các nhà nghiên cứu làm việc trên các khuôn khổ. Mặc dù là sự lựa chọn hàng đầu trong ngành để phát triển các ứng dụng, nhưng TensorFlow vẫn chưa bắt kịp PyTorch về khía cạnh này. Một lý do đằng sau điều này có thể là sự đơn giản và dễ sử dụng mà PyTorch cung cấp với hiệu suất tốt hơn.

6. Sẵn sàng di động

Bắt đầu từ phiên bản 1.3, PyTorch đã thêm hỗ trợ triển khai trên các thiết bị Android và iOS . Tính năng này mang lại tất cả lợi ích của PyTorch cho các thiết bị cạnh để phục vụ cho các ứng dụng yêu cầu độ trễ thấp hơn. Mục tiêu đằng sau PyTorch mobile là giảm chu kỳ phát triển bằng cách hỗ trợ các API cơ sở cho các nền tảng di động, loại bỏ nhu cầu xuất sang các khung di động như Caffe2. Điều này cho phép giảm đáng kể diện tích trên thiết bị. Hỗ trợ tinh chỉnh chính xác các tập lệnh xây dựng cũng đã được thêm vào để kiểm soát tốt hơn.

Bắt đầu với PyTorch Mobile:

Bắt đầu trên Android

Bắt đầu trên iOS

7. Dễ dàng gỡ lỗi

PyTorch rất dễ gỡ lỗi khi bạn có tùy chọn truy cập từng dòng và cách in thông thường sau mỗi dòng. Điểm nổi bật là các đối tượng và hoạt động trong PyTorch chứa dữ liệu thực tế chứ không phải các tham chiếu tượng trưng, ​​giúp cuộc sống của các lập trình viên dễ dàng hơn. Một số trình gỡ lỗi tiêu chuẩn cho PyTorch là:

ipdb

pdb

● PyCharm

Chẳng hạn, bạn có thể sử dụng hàm “pdb.set_trace ()” của pdb để đặt các điểm ngắt trong mã của bạn nhằm tìm ra gốc rễ của lỗi. Ngoài ra, đồ thị tính toán động của PyTorch cho phép sửa đổi động và gỡ lỗi nhanh trong khi mã của bạn thực thi.

Gỡ lỗi PyTorch với pdb (nguồn)

8. Hỗ trợ cho ONNX

Open Neural Network Exchange hoạt động như một hệ sinh thái mã nguồn mở cho Trí tuệ nhân tạo bằng cách cung cấp một điểm chung cho các lập trình viên AI để làm việc lẫn nhau trên nhiều khuôn khổ, công cụ và thư viện khác nhau. ONNX thực hiện điều này bằng cách cung cấp định dạng tệp tiêu chuẩn hoạt động trên nhiều khung và phần cứng.

Khi nói đến PyTorch, ONNX đi kèm với hỗ trợ tích hợp cho PyTorch và một loạt các khung công tác khác như Caffe2, MXNet, TensorFlow, v.v. ONNX giúp các lập trình viên AI dễ dàng xuất và di chuyển các mô hình PyTorch của họ sang định dạng mở mà các khung công tác khác có thể tích hợp.

Hỗ trợ ONNX gốc của PyTorch (nguồn)

9. Hỗ trợ đồ thị tính toán động

Bằng cách xem mọi mô hình dưới dạng Đồ thị vòng được hướng dẫn, PyTorch cung cấp một cách tiếp cận năng động để xác định đồ thị tính toán. Trong khi các khung công tác khác cho phép định nghĩa đồ thị tĩnh, PyTorch hỗ trợ tạo đồ thị tính toán động , nơi bạn có thể tự do thao tác khi đang di chuyển. Một trong những yếu tố được hưởng lợi nhiều nhất từ ​​khía cạnh năng động này của PyTorch là Mạng thần kinh tái diễn trong số nhiều yếu tố khác.

10. Hỗ trợ cộng đồng mạnh mẽ

PyTorch cũng cung cấp hỗ trợ cộng đồng tuyệt vời . Trang chủ của PyTorchtài liệu chi tiết về từng tính năng của nó. Tất cả các bản cập nhật mới nhất cho thư viện đều được giải thích rõ ràng. Với mỗi phần bổ sung mới, bạn cũng có thể tìm thấy các hướng dẫn hỗ trợ và tài nguyên liên quan để có được cảm giác thực hành có giá trị.

Diễn đàn PyTorch là một nơi tuyệt vời và rất được khuyến khích cho người mới đăng câu hỏi của họ và những người lâu năm chia sẻ ý tưởng của họ với các lập trình viên đồng nghiệp. Với hơn một trăm bài đăng mỗi ngày, cộng đồng này hoạt động khá tích cực và khuyến khích mọi người tham gia với PyTorch.

Dưới đây là một số cộng đồng nhà phát triển PyTorch , tài nguyênhướng dẫn để đóng góp, học hỏi và nhận câu trả lời cho câu hỏi của bạn -

Biểu mẫu thảo luận PyTorch

Cộng đồng PyTorch Slack

Ví dụ về PyTorch

Tài liệu PyTorch

Hướng dẫn Github Pytorch

Bảng gian lận cho người mới bắt đầu PyTorch

Ghi chú phát hành PyTorch

Học sâu với Pytorch: 60 phút chớp nhoáng

Sử dụng dữ liệu Hướng dẫn từ Google Drive trong Colab

Tài liệu và Hướng dẫn bằng tiếng Trung

Hướng dẫn bằng tiếng Hàn

Phần kết luận

Với vô số tính năng trực quan dành cho các lập trình viên Học sâu, PyTorch có rất nhiều thứ để cung cấp cho mọi người ở nhiều cấp độ kỹ năng khác nhau. Mặc dù cung cấp một điểm đầu vào dễ dàng, PyTorch không được coi thường vì nó cung cấp các tính năng không chỉ mang lại hiệu suất tốt hơn ở một số khía cạnh mà còn cung cấp thêm các tính năng độc đáo. Chúng tôi đã thảo luận về một số tính năng thường được nói đến nhất của PyTorch để giúp bạn thực hiện bước nhảy vọt lên PyTorch mà bạn rất nghi ngờ.

Các bài đọc thú vị hơn -

Tôi hy vọng bạn thấy bài viết này hữu ích! Dưới đây là một số bài đọc thú vị hy vọng bạn cũng thích chúng -

về tác giả

Claire D . là Nhà soạn thảo nội dung và Nhà tiếp thị tại Digitalogy - một thị trường tìm nguồn cung ứng công nghệ và mai mối tùy chỉnh kết nối mọi người với các nhà phát triển và nhà thiết kế hàng đầu và được sàng lọc trước dựa trên nhu cầu cụ thể của họ trên toàn cầu. Kết nối với Digitalogy trên Linkedin , Twitter , Instagram .