BeeLab: Python
Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Sunday, January 10, 2021

Sự khác biệt giữa PyTorch và TensorFlow

8:20:00 AM
Sự khác biệt giữa PyTorch và TensorFlow

Trong khi bắt đầu với hành trình Deep Learning, còn được gọi là Mạng nơ-ron, người ta tìm thấy một loạt các frameworks và thư viện trong Python. Do đó, đôi khi bạn sẽ bối rối không biết nên bắt đầu từ đâu và theo đuổi cái nào trước khi bước vào lĩnh vực này. Bài viết này dành cho những người đã bắt đầu hoặc sắp bắt đầu hành trình với Deep Learning.

Trong số các máy chủ của thư viện Deep Learning hoặc frameworks như: TensorFlow, Keras, Caffe, PyTorch, Microsoft Cognitive Toolkit, Apache Spark Deep Learning Pipelines, Chainer, v.v … Có một vài trong số chúng thực sự nổi bật, cụ thể là TensorFlow và PyTorch. Nhưng trước khi chúng ta đi sâu hơn vào chúng, chúng ta hãy xem qua về sự tiến hóa của chúng.


Sự phát triển


Google Brain đã xây dựng DistBelief như một hệ thống Machine Learning độc quyền dựa trên các mạng nơ-ron Deep learning vào năm 2011. TensorFlow là hệ thống thế hệ thứ hai của Google Brain. TensorFlow được phát hành lần đầu tiên vào ngày 9 tháng 11 năm 2015, nhưng phải đến năm 2017 mới ổn định. Vào tháng 3 năm 2018, Google đã công bố phiên bản TensorFlow.js 1.0 cho Machine learning bằng JavaScript. Thông báo về TensorFlow 2.0 của Google được đưa ra vào tháng 1 năm 2019 và chính thức ra mắt vào tháng 9 năm 2019.

PyTorch được phát triển bởi Phòng thí nghiệm nghiên cứu AI (FAIR) của Facebook và bản phát hành công khai đầu tiên (0.1.12) là vào tháng 5 năm 2017. Bản phát hành ổn định mới nhất (1.4) là vào tháng 1 năm 2020. Tên PyTorch được lấy cảm hứng từ framework phổ biến Torch của Deep Learning, được viết bằng ngôn ngữ lập trình Lua và được triển khai bằng Python do đó có tên PyTorch.


Đặc tính


  1. Cả TensorFlow và PyTorch đều là nguồn mở nhưng được phát triển bởi hai nhân vật khổng lồ khác nhau trong công cuộc đổi mới công nghệ: Google và Facebook và được sử dụng cho các ứng dụng Machine Learning như Mạng Nơ-ron. Nhưng, lợi thế của PyTorch so với TensorFlow nằm ở hai tính khác biệt:
  • Lập trình bắt buộc: Nói What AND How, còn lập trình khai báo nói What NOT How
  • Đồ thị tính toán động: Được xây dựng trong thời gian sử dụng cho phép dùng các câu lệnh Python tiêu chuẩn và không có sự phân biệt giữa việc xác định biểu đồ tính toán và biên dịch cho các chương trình bắt buộc.

Quan trọng: Đồ thị tĩnh hoạt động tốt cho các mạng có kích thước cố định trong khi Đồ thị động hoạt động tốt cho các mạng Động.

Trong lĩnh vực Trí tuệ nhân tạo, sự cứng nhắc được đề cập ở trên trong Mạng lưới Nơ-ron được xác định là một trở ngại lớn. Các nhà nghiên cứu muốn làm cho Mạng Nơ-ron được xác định nhiều hơn bởi mạng khi đang chạy hơn là được xác định trước hoặc trước đó. Các công cụ tồn tại sau đó không thực sự giúp họ làm như vậy.

Về điểm này, PyTorch giành chiến thắng trước TensorFlow, vì nó mang đến một framework Deep learning mang lại Mạng lưới Nơ-ron động, tức là Define by Run (một biểu đồ được tạo ra khi đang di chuyển). Điều này đặc biệt hữu ích khi nói đến đầu vào có độ dài thay đổi trong RNNs (Recurrent Neural Networks – Mạng Nơ-ron tái phát).

Các biểu đồ tính toán động được xây dựng trong thời gian chạy cho phép chúng ta sử dụng các câu lệnh Python tiêu chuẩn do đó, không có sự phân biệt giữa việc xác định biểu đồ tính toán và biên dịch cho các chương trình bắt buộc. Hơn nữa, đồ thị động làm cho việc fix bug dễ dàng hơn. Mặt khác, TensorFlow lắp ráp một biểu đồ và sử dụng một phiên để thực thi.

2. Đường cong học tập của TensorFlow dốc hơn so với PyTorch.

PyTorch:

  • Có các khả năng GPU như Numpy [và có kiểm soát CPU & GPU rõ ràng]
  • Nhiều pythonic trong tự nhiên
  • Dễ dàng xử lý bug

TensorFlow:

Mặc dù TensorFlow 2.0 đã cải thiện khá nhiều và tuyên bố rằng với sự tích hợp Keras và Thực thi Eager được bật theo chế độ mặc định, phiên bản 2.0 hoàn toàn dễ sử dụng và đơn giản. Nó cung cấp cho cả nhà phát triển mới cũng như những người có kinh nghiệm các công cụ & API cần thiết để xây dựng và triển khai các mô hình học máy của họ với tốc độ và độ chính xác với sự trợ giúp của tf.keras như API cấp cao, loại bỏ chức năng trùng lặp, cú pháp trực quan, nhất quán trên các API, API cấp thấp đầy đủ và giao diện kế thừa cho các biến, điểm kiểm tra, các layers. Điều này về cơ bản có nghĩa là người dùng phải tìm hiểu nhiều hơn một chút so với PyTorch, về bản chất là pythonic. Do đó, đường cong học tập dốc hơn cho TensorFlow.

Monday, April 13, 2020

[Python] Quản lý Python Package với PIP trên Windows, Mac và Linux - Part 2

9:23:00 AM
[Python] Quản lý Python Package với PIP trên Windows, Mac và Linux - Part 2
Giống như nhiều ngôn ngữ lập trình khác, Python hỗ trợ các thư viện và framework của bên thứ ba cực kỳ hữu dụng giúp bạn có thể dùng lại tránh việc mất công viết lại từ đầu. Bạn có thể tìm thấy những thứ này trên một kho lưu trữ trung tâm được gọi là PyPI (Python Packages Index).
Tuy nhiên việc tải xuống, cài đặt và quản lý các package này có thể gây khó chịu và tốn thời gian, đó là lý do tại sao các nhà phát triển Python dựa vào một công cụ đặc biệt gọi là PIP cho Python để giúp mọi thứ dễ dàng và nhanh chóng hơn.

PIP là gì?

PIP là một trình quản lý thư viện cho Python, viết tắt của từ Preferred Installer Program. Đây là một tiện ích dòng lệnh cho phép bạn cài đặt, cài đặt lại hoặc gỡ cài đặt các gói PyPI bằng một dòng lệnh đơn giản và dễ hiểu: pip.
Nếu bạn đang sử dụng Python2 từ bản 2.7.9 hoặc Python 3 từ bản 3.4 thì PIP đã được cài đặt mặc định trên Python. Đối với các bản cũ hơn, bạn sẽ cần thêm một vài bước mà Quantrimang.com sẽ giới thiệu dưới đây để cài đăt.
Còn nếu bạn đang chạy Python trong môi trường ảo được tạo bằng virtualenv hoặc pyvenv, thì PIP đã có mặt sẵn trên tất cả các phiên bản.

Python của bạn đã được cài đặt đúng cách chưa?

Để sử dụng PIP, bạn phải chắc chắn rằng Python của mình đã được cài đặt chính xác trên thiết bị của mình. Để kiểm tra, bạn thao tác như sau:
  • Với hệ điều hành Windows, mở Command Prompt bằng Windows key + X và chọn Command Prompt.
  • Trên Mac, mở Terminal bằng Command + Space và tìm kiếm terminal.
  • Trên Linux, mở Terminal bằng Ctrl + Alt + T.
Sau đó gõ:
python --version
Với Python 3.x trên Linux thì sử dụng lệnh:
python3 --version
Nếu bạn nhận được số phiên bản (ví dụ: "Python 2.7.5"), thì điều đó có nghĩa là Python đã sẵn sàng hoạt động.
Còn nếu bạn nhận được thông báo "Python is not defined", thì bạn phải cài đặt lại Python đúng cách.

Cách cài đặt PIP

(Bỏ qua nếu bạn đang sử dụng Python 2.7.9 hoặc Python 3.4 trở lên)

1. Trên Windows

Phiên bản: Windows 7, Windows 8.1 và Windows 10.
  • get-pip.py
  • get-pip.py (đối với Python 3.2)
Bước 1: Tải xuống tập lệnh phía trên bằng cách nhấp chuột phải vào liên kết, chọn Save As… (Lưu liên kết thành…) vào lưu file vào thư mục bạn muốn.
Bước 2: Mở Command Prompt và điều hướng đến tệp get-pip.py.
Bước 3: Chạy lệnh sau:
python get-pip.py

2. Trên Mac

Hiện nay Python trên các thiết bị Mac đã có sẵn PIP. Tuy nhiên nếu bạn vẫn muốn sử dụng các bản cũ hơn thì bạn có thể cài đặt PIP bằng lệnh sau trong Terminal:
sudo easy_install pip
Nếu muốn sử dụng một phiên bản Python “up-to-date” hơn thì bạn có thể cài đặt thêm Homebrew - một ứng dụng giúp tìm kiếm, cài đặt, gỡ cài đặt hoặc cập nhật các phần mềm, thư viện có trong Linux, Unix không có sẵn trong MacOSX.
Nếu Mac của bạn đã cài đặt Homebrew thì install trong Python bằng lệnh:
brew install python
Nếu quá trình cài đặt thành công nhưng PIP không khả dụng thì bạn cần liên kết lại Python bằng lệnh Terminal sau:
brew unlink python && brew link python

3. Trên Linux

Nếu bản phân phối Linux của bạn đã đi kèm với Python thì bạn có thể cài đặt PIP bằng trình quản lý gói (package manager) của hệ thống.
  • Công cụ Advanced Package (Python 2.x)
sudo apt-get install python-pip
  • Công cụ Advanced Package (Python 3.x)
sudo apt-get install python3-pip
  • pacman Package Manager (Python 2.x)
sudo pacman -S python2-pip
  • pacman Package Manager (Python 3.x)
sudo pacman -S python-pip
  • Yum Package Manager (Python 2.x)
sudo yum upgrade python-setuptoolssudo yum install python-pip python-wheel
  • Yum Package Manager (Python 3.x)
sudo yum install python3 python3-wheel
  • Dandified Yum (Python 2.x)
sudo dnf upgrade python-setuptoolssudo dnf install python-pip python-wheel
  • Dandified Yum (Python 3.x)
sudo dnf install python3 python3-wheel
  • Zypper Package Manager (Python 2.x)
sudo zypper install python-pip python-setuptools python-wheel
  • Zypper Package Manager (Python 3.x)
sudo zypper install python3-pip python3-setuptools python3-wheel

4. Trên Raspberry Pi

Nếu bạn là người dùng Raspberry Pi thì hệ điều hành được khuyên dùng nhiều nhất là Raspbian vì đây là hệ điều hành chính thức được thiết kế và cung cấp bởi Raspberry Pi Foundation.
Bắt đầu với Raspbian Jessie, nếu bạn đang sử dụng bản Jessie thì PIP đã được cài đặt mặc định. Đây chắc chắn là một trong những lý do quan trọng để bạn nâng cấp lên Raspbian Jessie thay vì gắn bó với Raspbian Wheezy hoặc Raspbian Jessie Lite. Tuy nhiên, nếu bạn đang dùng phiên bản Raspbian cũ hơn, bạn vẫn có thể cài đặt PIP như sau:
  • Trên Python 2.x:
sudo apt-get install python-pip
  • Trên Python 3.x:
sudo apt-get install python3-pip
Với Raspbian, người dùng Python 2.x nên sử dụng pip trong khi người dùng Python 3.x nên sử dụng pip3 khi chạy lệnh PIP.

Cách nâng cấp PIP cho Python

Mặc dù PIP không cập nhật thường xuyên, nhưng điều quan trọng là ứng dụng luôn đứng đầu trong các phiên bản mới vì PIP có thể có các bản fix lỗi bug, khả năng tương thích và lỗ hổng bảo mật. May mắn thay, nâng cấp PIP rất nhanh chóng và đơn giản.
  • Trên Windows:
python -m pip install -U pip
  • Trên Mac, Linux hoặc Raspberry Pi:
pip install -U pip
Trên một số phiên bản nhất định của Linux và Raspberry Pi, bạn cần phải sử dụng pip3 để thay thế.

Thursday, April 9, 2020

[Python] Cài đặt mội trường làm việc với Python - Part 1 (for newbie)

2:59:00 PM
[Python] Cài đặt mội trường làm việc với Python - Part 1 (for newbie)

Cài đặt mội trường làm việc với Python


Bước 1: Truy cập vào trang chủ của Python
https://www.python.org/
Bước 2: Chọn phiên bản ở mục Downloads và nhập chọn phiên bản mới nhất để download
Bước 3: Sau download hoàn tất. Chúng ta nhấn chọn chạy file python-3.x.x.exe để bắt đầu tiến trình cài đặt.
Bước 4: Tick vào ô Add Python 3.x to PATH và chọn Install Now
Chờ đợi cho quá trình cài đặt hoàn thành
Bước 5: Khi cửa sổ hiển thị Setup was successful là ta đã cài đặt thành công môi trường Python > Close
Bước 6: Tiếp đến, ta mở Command Prompt (CMD) (dùng tổ hợp phím Windows + R) để mở hộp thoại Run
Bước 7: Trong cửa sổ Command Prompt, bạn gõ python > Enter để kiểm tra, kết quả sẽ hiển thị tên phiên bản Python bạn vừa cài đặt
Đó là phần download và cài đặt Python trên Windows. Còn về các hệ điều hành thuộc Linux và hệ điều hành Mac OS thì tất cả những hệ điều hành đó đều đã được tích hợp Python 2.x lẫn Python 3.x. Các bạn muốn thao tác với nó chỉ cần mở Terminal và gõ python2 để chọn Python 2.x hoặc python3 để chọn Python 3.x
Ngoài ra, các lập trình viên thường hay sử dụng phần mêm khác để soạn thảo code đó chính là SUBLINE TEXT


Cài đặt Subline Text 3

Để cài đặt Sublime Text 3 các bạn chuẩn bị sẵn phần mềm có thể tải từ trang chủ như sau:
Bước 1: Các bạn vào trang chủ của Sublime Text 
https://www.sublimetext.com/
Bước 2: Các bạn chọn Download
Bước 3: Chọn phiên bản phù hợp cho hệ điều hành của mình
Sau khi hoàn tất việc download. Chúng ta tiến tới phần cài đặt. 
Bước 4: Chọn Next để tiếp tục quá trình cài đặt
Bước 5: Các bạn có thể tùy chỉnh đường dẫn ở mục Browse. Mình khuyến khích chọn Next
Bước 6: Tiếp tục chọn Next để cài đặt
Bước 7: Tiếp theo chọn Install để quá trình cài đặt được diễn ra
Bước 8: Chọn Finish để kết thúc quá trình cài đặt
Bước 9: Khởi động Sublime Text