Apache MXNet - Cài đặt MXNet

Để bắt đầu với MXNet, điều đầu tiên chúng ta cần làm là cài đặt nó trên máy tính của mình. Apache MXNet hoạt động trên hầu hết các nền tảng có sẵn, bao gồm Windows, Mac và Linux.

Hệ điều hành Linux

Chúng ta có thể cài đặt MXNet trên HĐH Linux theo các cách sau:

Bộ xử lý đồ họa (GPU)

Ở đây, chúng tôi sẽ sử dụng các phương pháp khác nhau cụ thể là Pip, Docker và Nguồn để cài đặt MXNet khi chúng tôi đang sử dụng GPU để xử lý -

Bằng cách sử dụng phương pháp Pip

Bạn có thể sử dụng lệnh sau để cài đặt MXNet trên Hệ điều hành Linus của mình -

pip install mxnet

Apache MXNet cũng cung cấp các gói pip MKL, nhanh hơn nhiều khi chạy trên phần cứng intel. Ví dụ ở đâymxnet-cu101mkl có nghĩa là -

  • Gói được xây dựng bằng CUDA / cuDNN

  • Gói được bật MKL-DNN

  • Phiên bản CUDA là 10.1

Đối với tùy chọn khác, bạn cũng có thể tham khảo https://pypi.org/project/mxnet/.

Bằng cách sử dụng Docker

Bạn có thể tìm hình ảnh docker với MXNet tại DockerHub, có sẵn tại https://hub.docker.com/u/mxnet Hãy để chúng tôi kiểm tra các bước bên dưới để cài đặt MXNet bằng cách sử dụng Docker với GPU -

Step 1- Đầu tiên, bằng cách làm theo hướng dẫn cài đặt docker có sẵn tại https://docs.docker.com/engine/install/ubuntu/. Chúng tôi cần cài đặt Docker trên máy của mình.

Step 2- Để cho phép sử dụng GPU từ các bộ chứa docker, tiếp theo chúng ta cần cài đặt nvidia-docker-plugin. Bạn có thể làm theo hướng dẫn cài đặt được cung cấp tạihttps://github.com/NVIDIA/nvidia-docker/wiki.

Step 3- Bằng cách sử dụng lệnh sau, bạn có thể kéo hình ảnh bộ đế MXNet -

$ sudo docker pull mxnet/python:gpu

Bây giờ để xem liệu việc kéo hình ảnh docker mxnet / python có thành công hay không, chúng ta có thể liệt kê các hình ảnh docker như sau:

$ sudo docker images

Để có tốc độ suy luận nhanh nhất với MXNet, bạn nên sử dụng MXNet mới nhất với Intel MKL-DNN. Kiểm tra các lệnh bên dưới -

$ sudo docker pull mxnet/python:1.3.0_cpu_mkl
$ sudo docker images

Từ nguồn

Để xây dựng thư viện chia sẻ MXNet từ nguồn với GPU, trước tiên chúng ta cần thiết lập môi trường cho CUDA và cuDNN như sau−

  • Tải xuống và cài đặt bộ công cụ CUDA, tại đây nên dùng CUDA 9.2.

  • Tiếp theo tải về cuDNN 7.1.4.

  • Bây giờ chúng ta cần giải nén tệp. Nó cũng được yêu cầu thay đổi thành thư mục gốc cuDNN. Đồng thời di chuyển tiêu đề và thư viện vào thư mục Bộ công cụ CUDA cục bộ như sau:

tar xvzf cudnn-9.2-linux-x64-v7.1
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
sudo ldconfig

Sau khi thiết lập môi trường cho CUDA và cuDNN, hãy làm theo các bước bên dưới để xây dựng thư viện chia sẻ MXNet từ nguồn -

Step 1- Đầu tiên, chúng ta cần cài đặt các gói tiên quyết. Các phụ thuộc này được yêu cầu trên Ubuntu phiên bản 16.04 trở lên.

sudo apt-get update
sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev 
libopencv-dev cmake

Step 2- Ở bước này, chúng ta sẽ tải mã nguồn MXNet và cấu hình. Trước tiên, hãy để chúng tôi sao chép kho lưu trữ bằng cách sử dụng lệnh sau

git clone –recursive https://github.com/apache/incubator-mxnet.git mxnet
cd mxnet
cp config/linux_gpu.cmake #for build with CUDA

Step 3- Bằng cách sử dụng các lệnh sau, bạn có thể xây dựng thư viện chia sẻ lõi MXNet

rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .

Two important points regarding the above step is as follows−

Nếu bạn muốn tạo phiên bản Gỡ lỗi, hãy chỉ định như sau:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Để đặt số lượng công việc biên dịch song song, hãy chỉ định như sau:

cmake --build . --parallel N

Sau khi bạn tạo thành công thư viện chia sẻ lõi MXNet, trong build thư mục trong của bạn MXNet project root, Bạn sẽ thấy libmxnet.so được yêu cầu để cài đặt ràng buộc ngôn ngữ (tùy chọn).

Bộ phận xử lý trung tâm (CPU)

Ở đây, chúng tôi sẽ sử dụng các phương pháp khác nhau cụ thể là Pip, Docker và Nguồn để cài đặt MXNet khi chúng tôi đang sử dụng CPU để xử lý -

Bằng cách sử dụng phương pháp Pip

Bạn có thể sử dụng lệnh sau để cài đặt MXNet trên Linus OS−

pip install mxnet

Apache MXNet cũng cung cấp các gói pip hỗ trợ MKL-DNN nhanh hơn nhiều khi chạy trên phần cứng intel.

pip install mxnet-mkl

Bằng cách sử dụng Docker

Bạn có thể tìm hình ảnh docker với MXNet tại DockerHub, có sẵn tại https://hub.docker.com/u/mxnet. Hãy để chúng tôi kiểm tra các bước dưới đây để cài đặt MXNet bằng cách sử dụng Docker với CPU -

Step 1- Đầu tiên, bằng cách làm theo hướng dẫn cài đặt docker có sẵn tại https://docs.docker.com/engine/install/ubuntu/. Chúng tôi cần cài đặt Docker trên máy của mình.

Step 2- Bằng cách sử dụng lệnh sau, bạn có thể kéo hình ảnh bộ đế MXNet:

$ sudo docker pull mxnet/python

Bây giờ, để xem liệu việc kéo hình ảnh docker mxnet / python có thành công hay không, chúng ta có thể liệt kê các hình ảnh docker như sau:

$ sudo docker images

Để có tốc độ suy luận nhanh nhất với MXNet, bạn nên sử dụng MXNet mới nhất với Intel MKL-DNN.

Kiểm tra các lệnh bên dưới -

$ sudo docker pull mxnet/python:1.3.0_cpu_mkl
$ sudo docker images

Từ nguồn

Để xây dựng thư viện được chia sẻ MXNet từ nguồn với CPU, hãy làm theo các bước bên dưới:

Step 1- Đầu tiên, chúng ta cần cài đặt các gói tiên quyết. Các phụ thuộc này được yêu cầu trên Ubuntu phiên bản 16.04 trở lên.

sudo apt-get update

sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake

Step 2- Ở bước này chúng ta sẽ tải mã nguồn MXNet và cấu hình. Trước tiên, chúng ta hãy sao chép kho lưu trữ bằng cách sử dụng lệnh sau:

git clone –recursive https://github.com/apache/incubator-mxnet.git mxnet

cd mxnet
cp config/linux.cmake config.cmake

Step 3- Bằng cách sử dụng các lệnh sau, bạn có thể xây dựng thư viện chia sẻ lõi MXNet:

rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .

Two important points regarding the above step is as follows−

Nếu bạn muốn xây dựng phiên bản Gỡ lỗi, hãy chỉ định như sau:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Để đặt số lượng công việc biên dịch song song, hãy chỉ định như sau:

cmake --build . --parallel N

Sau khi bạn tạo thành công thư viện chia sẻ lõi MXNet, trong build trong thư mục gốc dự án MXNet của bạn, bạn sẽ tìm thấy libmxnet.so, được yêu cầu để cài đặt ràng buộc ngôn ngữ (tùy chọn).

Hệ điều hành Mac

Chúng tôi có thể cài đặt MXNet trên MacOS theo các cách sau:

Bộ xử lý đồ họa (GPU)

Nếu bạn định xây dựng MXNet trên MacOS với GPU, thì KHÔNG có sẵn phương pháp Pip và Docker. Phương pháp duy nhất trong trường hợp này là xây dựng nó từ nguồn.

Từ nguồn

Để xây dựng thư viện chia sẻ MXNet từ nguồn với GPU, trước tiên chúng ta cần thiết lập môi trường cho CUDA và cuDNN. Bạn cần làm theoNVIDIA CUDA Installation Guide có sẵn tại https://docs.nvidia.com và cuDNN Installation Guide, có sẵn tại https://docs.nvidia.com/deeplearning cho mac OS.

Xin lưu ý rằng vào năm 2019 CUDA đã ngừng hỗ trợ macOS. Trên thực tế, các phiên bản CUDA trong tương lai cũng có thể không hỗ trợ macOS.

Sau khi bạn thiết lập môi trường cho CUDA và cuDNN, hãy làm theo các bước dưới đây để cài đặt MXNet từ nguồn trên OS X (Mac) -

Step 1- Vì chúng ta cần một số phụ thuộc vào OS x, Đầu tiên, chúng ta cần cài đặt các gói tiên quyết.

xcode-select –-install #Install OS X Developer Tools

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" #Install Homebrew

brew install cmake ninja ccache opencv # Install dependencies

Chúng tôi cũng có thể xây dựng MXNet mà không cần OpenCV vì opencv là một phụ thuộc tùy chọn.

Step 2- Ở bước này chúng ta sẽ tải mã nguồn MXNet và cấu hình. Trước tiên, hãy để chúng tôi sao chép kho lưu trữ bằng cách sử dụng lệnh sau

git clone –-recursive https://github.com/apache/incubator-mxnet.git mxnet

cd mxnet
cp config/linux.cmake config.cmake

Đối với GPU hỗ trợ, trước tiên cần phải cài đặt các phụ thuộc CUDA vì khi người ta cố gắng tạo một bản dựng hỗ trợ GPU trên một máy không có GPU, bản dựng MXNet không thể tự động phát hiện kiến ​​trúc GPU của bạn. Trong những trường hợp như vậy MXNet sẽ nhắm mục tiêu tất cả các kiến ​​trúc GPU có sẵn.

Step 3- Bằng cách sử dụng các lệnh sau, bạn có thể xây dựng thư viện chia sẻ lõi MXNet

rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .

Hai điểm quan trọng liên quan đến bước trên như sau:

Nếu bạn muốn tạo phiên bản Gỡ lỗi, hãy chỉ định như sau:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Để đặt số lượng công việc biên dịch song song, hãy chỉ định như sau:

cmake --build . --parallel N

Sau khi bạn tạo thành công thư viện chia sẻ lõi MXNet, trong build thư mục trong của bạn MXNet project root, Bạn sẽ thấy libmxnet.dylib, được yêu cầu để cài đặt ràng buộc ngôn ngữ (tùy chọn).

Bộ phận xử lý trung tâm (CPU)

Ở đây, chúng tôi sẽ sử dụng các phương pháp khác nhau cụ thể là Pip, Docker và Nguồn để cài đặt MXNet khi chúng tôi đang sử dụng CPU để xử lý−

Bằng cách sử dụng phương pháp Pip

Bạn có thể sử dụng lệnh sau để cài đặt MXNet trên Hệ điều hành Linus của mình

pip install mxnet

Bằng cách sử dụng Docker

Bạn có thể tìm hình ảnh docker với MXNet tại DockerHub, có sẵn tại https://hub.docker.com/u/mxnet. Hãy để chúng tôi kiểm tra các bước dưới đây để cài đặt MXNet bằng cách sử dụng Docker với CPU−

Step 1- Đầu tiên, bằng cách làm theo docker installation instructions có sẵn tại https://docs.docker.com/docker-for-mac chúng ta cần cài đặt Docker trên máy tính của mình.

Step 2- Bằng cách sử dụng lệnh sau, bạn có thể kéo hình ảnh bộ đế MXNet

$ docker pull mxnet/python

Bây giờ để xem liệu việc kéo hình ảnh docker mxnet / python có thành công hay không, chúng ta có thể liệt kê các hình ảnh docker như sau

$ docker images

Để có tốc độ suy luận nhanh nhất với MXNet, bạn nên sử dụng MXNet mới nhất với Intel MKL-DNN. Kiểm tra các lệnh bên dưới−

$ docker pull mxnet/python:1.3.0_cpu_mkl
$ docker images

Từ nguồn

Làm theo các bước dưới đây để cài đặt MXNet từ nguồn trên OS X (Mac) -

Step 1- Vì chúng ta cần một số phụ thuộc vào OS x, trước tiên, chúng ta cần cài đặt các gói điều kiện tiên quyết.

xcode-select –-install #Install OS X Developer Tools
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" #Install Homebrew
brew install cmake ninja ccache opencv # Install dependencies

Chúng tôi cũng có thể xây dựng MXNet mà không cần OpenCV vì opencv là một phụ thuộc tùy chọn.

Step 2- Ở bước này chúng ta sẽ tải mã nguồn MXNet và cấu hình. Trước tiên, chúng ta hãy sao chép kho lưu trữ bằng cách sử dụng lệnh sau

git clone –-recursive https://github.com/apache/incubator-mxnet.git mxnet

cd mxnet

cp config/linux.cmake config.cmake

Step 3- Bằng cách sử dụng các lệnh sau, bạn có thể xây dựng thư viện chia sẻ lõi MXNet:

rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .

Two important points regarding the above step is as follows−

Nếu bạn muốn tạo phiên bản Gỡ lỗi, hãy chỉ định như sau:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Để đặt số lượng công việc biên dịch song song, hãy chỉ định như sau:

cmake --build . --parallel N

Sau khi bạn tạo thành công thư viện chia sẻ lõi MXNet, trong build thư mục trong của bạn MXNet project root, Bạn sẽ thấy libmxnet.dylib, được yêu cầu để cài đặt ràng buộc ngôn ngữ (tùy chọn).

HĐH Windows

Để cài đặt MXNet trên Windows, sau đây là các điều kiện tiên quyết−

Yêu cầu hệ thống tối thiểu

  • Windows 7, 10, Server 2012 R2 hoặc Server 2016

  • Visual Studio 2015 hoặc 2017 (bất kỳ loại nào)

  • Python 2.7 hoặc 3.6

  • pip

Yêu cầu hệ thống được đề xuất

  • Windows 10, Server 2012 R2 hoặc Server 2016

  • Visual Studio 2017

  • Ít nhất một GPU hỗ trợ NVIDIA CUDA

  • CPU hỗ trợ MKL: bộ xử lý Intel® Xeon®, dòng bộ xử lý Intel® Core ™, bộ xử lý Intel Atom® hoặc bộ xử lý Intel® Xeon Phi ™

  • Python 2.7 hoặc 3.6

  • pip

Bộ xử lý đồ họa (GPU)

Bằng cách sử dụng phương pháp Pip−

Nếu bạn định xây dựng MXNet trên Windows với GPU NVIDIA, có hai tùy chọn để cài đặt MXNet có hỗ trợ CUDA với gói Python−

Cài đặt với Hỗ trợ CUDA

Dưới đây là các bước với sự trợ giúp của chúng, chúng ta có thể thiết lập MXNet với CUDA.

Step 1- Đầu tiên hãy cài đặt Microsoft Visual Studio 2017 hoặc Microsoft Visual Studio 2015.

Step 2- Tiếp theo, tải và cài đặt NVIDIA CUDA. Bạn nên sử dụng CUDA phiên bản 9.2 hoặc 9.0 vì một số vấn đề với CUDA 9.1 đã được xác định trong quá khứ.

Step 3- Bây giờ, tải xuống và cài đặt NVIDIA_CUDA_DNN.

Step 4- Cuối cùng, bằng cách sử dụng lệnh pip sau, cài đặt MXNet với CUDA−

pip install mxnet-cu92

Cài đặt với Hỗ trợ CUDA và MKL

Dưới đây là các bước với sự trợ giúp của chúng, chúng ta có thể thiết lập MXNet với CUDA và MKL.

Step 1- Đầu tiên hãy cài đặt Microsoft Visual Studio 2017 hoặc Microsoft Visual Studio 2015.

Step 2- Tiếp theo, tải và cài đặt intel MKL

Step 3- Bây giờ, tải xuống và cài đặt NVIDIA CUDA.

Step 4- Bây giờ, tải xuống và cài đặt NVIDIA_CUDA_DNN.

Step 5- Cuối cùng, bằng cách sử dụng lệnh pip sau, cài đặt MXNet với MKL.

pip install mxnet-cu92mkl

Từ nguồn

Để xây dựng thư viện lõi MXNet từ nguồn với GPU, chúng tôi có hai tùy chọn sau:

Option 1− Build with Microsoft Visual Studio 2017

Để tự xây dựng và cài đặt MXNet bằng Microsoft Visual Studio 2017, bạn cần có các phụ thuộc sau.

Install/update Microsoft Visual Studio.

  • Nếu Microsoft Visual Studio chưa được cài đặt trên máy của bạn, trước tiên hãy tải xuống và cài đặt nó.

  • Nó sẽ nhắc về việc cài đặt Git. Cài đặt nó cũng được.

  • Nếu Microsoft Visual Studio đã được cài đặt trên máy của bạn nhưng bạn muốn cập nhật nó thì hãy tiến hành bước tiếp theo để sửa đổi cài đặt của bạn. Tại đây, bạn cũng sẽ có cơ hội cập nhật Microsoft Visual Studio.

Làm theo hướng dẫn để mở Trình cài đặt Visual Studio có sẵn tại https://docs.microsoft.com/en-us để sửa đổi các thành phần riêng lẻ.

Trong ứng dụng Visual Studio Installer, cập nhật theo yêu cầu. Sau đó tìm kiếm và kiểm traVC++ 2017 version 15.4 v14.11 toolset và bấm vào Modify.

Bây giờ bằng cách sử dụng lệnh sau, hãy thay đổi phiên bản của Microsoft VS2017 thành v14.11−

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.11

Tiếp theo, bạn cần tải xuống và cài đặt CMake có sẵn tại https://cmake.org/download/ Nó được khuyến khích sử dụng CMake v3.12.2 có sẵn tại https://cmake.org/download/ vì nó được thử nghiệm với MXNet.

Bây giờ, tải xuống và chạy OpenCV gói có sẵn tại https://sourceforge.net/projects/opencvlibrary/sẽ giải nén một số tệp. Bạn có muốn đặt chúng trong một thư mục khác hay không là tùy thuộc vào bạn. Ở đây, chúng tôi sẽ sử dụng đường dẫnC:\utils(mkdir C:\utils) làm đường dẫn mặc định của chúng tôi.

Tiếp theo, chúng ta cần đặt biến môi trường OpenCV_DIR trỏ đến thư mục xây dựng OpenCV mà chúng ta vừa giải nén. Đối với dấu nhắc lệnh mở này và nhậpset OpenCV_DIR=C:\utils\opencv\build.

Một điểm quan trọng là nếu bạn chưa cài đặt Intel MKL (Math Kernel Library), bạn có thể cài đặt nó.

Một gói mã nguồn mở khác mà bạn có thể sử dụng là OpenBLAS. Tại đây để có thêm hướng dẫn, chúng tôi giả định rằng bạn đang sử dụngOpenBLAS.

Vì vậy, hãy tải xuống OpenBlas gói có sẵn tại https://sourceforge.net và giải nén tệp, đổi tên nó thành OpenBLAS và đặt nó dưới C:\utils.

Tiếp theo, chúng ta cần đặt biến môi trường OpenBLAS_HOME để trỏ đến thư mục OpenBLAS có chứa includelibcác thư mục. Đối với dấu nhắc lệnh mở này và nhậpset OpenBLAS_HOME=C:\utils\OpenBLAS.

Bây giờ, tải xuống và cài đặt CUDA có sẵn tại https://developer.nvidia.com. Lưu ý rằng, nếu bạn đã có CUDA, sau đó đã cài đặt Microsoft VS2017, bạn cần cài đặt lại CUDA ngay bây giờ để có thể lấy các thành phần bộ công cụ CUDA cho tích hợp Microsoft VS2017.

Tiếp theo, bạn cần tải xuống và cài đặt cuDNN.

Tiếp theo, bạn cần tải xuống và cài đặt git tại https://gitforwindows.org/ cũng thế.

Khi bạn đã cài đặt tất cả các phần phụ thuộc bắt buộc, hãy làm theo các bước được cung cấp bên dưới để tạo mã nguồn MXNet−

Step 1- Mở dấu nhắc lệnh trong cửa sổ.

Step 2- Bây giờ, bằng cách sử dụng lệnh sau, tải xuống mã nguồn MXNet từ GitHub:

cd C:\

git clone https://github.com/apache/incubator-mxnet.git --recursive

Step 3- Tiếp theo, xác minh những điều sau−

DCUDNN_INCLUDE and DCUDNN_LIBRARY các biến môi trường đang trỏ đến include thư mục và cudnn.lib tệp vị trí đã cài đặt CUDA của bạn

C:\incubator-mxnet là vị trí của mã nguồn bạn vừa sao chép ở bước trước.

Step 4- Tiếp theo bằng cách sử dụng lệnh sau, tạo một bản dựng directory và cũng đi đến thư mục, chẳng hạn như

mkdir C:\incubator-mxnet\build
cd C:\incubator-mxnet\build

Step 5- Bây giờ, bằng cách sử dụng cmake, hãy biên dịch mã nguồn MXNet như sau−

cmake -G "Visual Studio 15 2017 Win64" -T cuda=9.2,host=x64 -DUSE_CUDA=1 -DUSE_CUDNN=1 -DUSE_NVRTC=1 -DUSE_OPENCV=1 -DUSE_OPENMP=1 -DUSE_BLAS=open -DUSE_LAPACK=1 -DUSE_DIST_KVSTORE=0 -DCUDA_ARCH_LIST=Common -DCUDA_TOOLSET=9.2 -DCUDNN_INCLUDE=C:\cuda\include -DCUDNN_LIBRARY=C:\cuda\lib\x64\cudnn.lib "C:\incubator-mxnet"

Step 6- Sau khi CMake hoàn tất thành công, hãy sử dụng lệnh sau để biên dịch mã nguồn MXNet

msbuild mxnet.sln /p:Configuration=Release;Platform=x64 /maxcpucount

Option 2: Build with Microsoft Visual Studio 2015

Để tự xây dựng và cài đặt MXNet bằng Microsoft Visual Studio 2015, bạn cần có các phụ thuộc sau.

Cài đặt / cập nhật Microsoft Visual Studio 2015. Yêu cầu tối thiểu để xây dựng MXnet từ nguồn là Cập nhật 3 của Microsoft Visual Studio 2015. Bạn có thể sử dụng Tools -> Extensions and Updates... | Product Updates để nâng cấp nó.

Tiếp theo, bạn cần tải xuống và cài đặt CMake có sẵn tại https://cmake.org/download/. Nó được khuyến khích sử dụngCMake v3.12.2 đó là ở https://cmake.org/download/, bởi vì nó được thử nghiệm với MXNet.

Bây giờ, hãy tải xuống và chạy gói OpenCV có sẵn tại https://excellmedia.dl.sourceforge.netsẽ giải nén một số tệp. Bạn có muốn đặt chúng vào thư mục khác hay không là tùy thuộc vào bạn.

Tiếp theo, chúng ta cần đặt biến môi trường OpenCV_DIR để chỉ vào OpenCVxây dựng thư mục mà chúng tôi vừa giải nén. Đối với điều này, hãy mở dấu nhắc lệnh và nhập setOpenCV_DIR=C:\opencv\build\x64\vc14\bin.

Một điểm quan trọng là nếu bạn chưa cài đặt Intel MKL (Math Kernel Library), bạn có thể cài đặt nó.

Một gói mã nguồn mở khác mà bạn có thể sử dụng là OpenBLAS. Tại đây để có thêm hướng dẫn, chúng tôi giả định rằng bạn đang sử dụngOpenBLAS.

Vì vậy, hãy tải xuống OpenBLAS gói có sẵn tại https://excellmedia.dl.sourceforge.net và giải nén tệp, đổi tên nó thành OpenBLAS và đặt nó dưới C: \ utils.

Tiếp theo, chúng ta cần đặt biến môi trường OpenBLAS_HOME trỏ đến thư mục OpenBLAS có chứa thư mục include và lib. Bạn có thể tìm thấy thư mục trongC:\Program files (x86)\OpenBLAS\

Lưu ý rằng, nếu bạn đã có CUDA, sau đó đã cài đặt Microsoft VS2015, bạn cần phải cài đặt lại CUDA ngay bây giờ để có thể nhận các thành phần bộ công cụ CUDA để tích hợp Microsoft VS2017.

Tiếp theo, bạn cần tải xuống và cài đặt cuDNN.

Bây giờ, chúng ta cần Đặt biến môi trường CUDACXX trỏ đến CUDA Compiler(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin\nvcc.exe ví dụ).

Tương tự, chúng ta cũng cần đặt biến môi trường CUDNN_ROOT để chỉ vào cuDNN thư mục chứa include, libbin thư mục (C:\Downloads\cudnn-9.1-windows7-x64-v7\cuda ví dụ).

Khi bạn đã cài đặt tất cả các phần phụ thuộc bắt buộc, hãy làm theo các bước được cung cấp bên dưới để tạo mã nguồn MXNet−

Step 1- Đầu tiên, tải xuống mã nguồn MXNet từ GitHub−

cd C:\
git clone https://github.com/apache/incubator-mxnet.git --recursive

Step 2- Tiếp theo, sử dụng CMake để tạo Visual Studio trong ./build.

Step 3- Bây giờ, trong Visual Studio, chúng ta cần mở tệp giải pháp,.slnvà biên dịch nó. Các lệnh này sẽ tạo ra một thư viện có tênmxnet.dll bên trong ./build/Release/ or ./build/Debug thư mục

Step 4- Sau khi CMake hoàn tất thành công, hãy sử dụng lệnh sau để biên dịch mã nguồn MXNet

msbuild mxnet.sln /p:Configuration=Release;Platform=x64 /maxcpucount

Bộ phận xử lý trung tâm (CPU)

Ở đây, chúng tôi sẽ sử dụng các phương pháp khác nhau cụ thể là Pip, Docker và Nguồn để cài đặt MXNet khi chúng tôi đang sử dụng CPU để xử lý−

Bằng cách sử dụng phương pháp Pip

Nếu bạn định xây dựng MXNet trên Windows với CPU, có hai tùy chọn để cài đặt MXNet bằng gói Python−

Install with CPUs

Sử dụng lệnh sau để cài đặt MXNet với CPU với Python−

pip install mxnet

Install with Intel CPUs

Như đã thảo luận ở trên, MXNet có hỗ trợ thử nghiệm cho Intel MKL cũng như MKL-DNN. Sử dụng lệnh sau để cài đặt MXNet với CPU Intel với Python−

pip install mxnet-mkl

Bằng cách sử dụng Docker

Bạn có thể tìm thấy hình ảnh docker với MXNet tại DockerHub, có sẵn tại https://hub.docker.com/u/mxnet Hãy để chúng tôi kiểm tra các bước bên dưới, để cài đặt MXNet bằng cách sử dụng Docker với CPU−

Step 1- Đầu tiên, bằng cách làm theo hướng dẫn cài đặt docker có thể đọc tại https://docs.docker.com/docker-for-mac/install. Chúng tôi cần cài đặt Docker trên máy của mình.

Step 2- Bằng cách sử dụng lệnh sau, bạn có thể kéo hình ảnh bộ đế MXNet

$ docker pull mxnet/python

Bây giờ để xem liệu việc kéo hình ảnh docker mxnet / python có thành công hay không, chúng ta có thể liệt kê các hình ảnh docker như sau

$ docker images

Để có tốc độ suy luận nhanh nhất với MXNet, bạn nên sử dụng MXNet mới nhất với Intel MKL-DNN.

Kiểm tra các lệnh bên dưới−

$ docker pull mxnet/python:1.3.0_cpu_mkl
$ docker images

Cài đặt MXNet trên đám mây và thiết bị

Phần này nêu bật cách cài đặt Apache MXNet trên Cloud và trên các thiết bị. Chúng ta hãy bắt đầu bằng cách tìm hiểu về cách cài đặt MXNet trên đám mây.

Cài đặt MXNet trên đám mây

Bạn cũng có thể tải Apache MXNet trên một số nhà cung cấp đám mây với Graphical Processing Unit (GPU)ủng hộ. Hai loại hỗ trợ khác mà bạn có thể tìm thấy như sau:

  • Hỗ trợ kết hợp giữa GPU / CPU cho các trường hợp sử dụng như suy luận có thể mở rộng.
  • Hỗ trợ GPU giai thừa với AWS Elastic Inference.

Sau đây là các nhà cung cấp đám mây cung cấp hỗ trợ GPU với máy ảo khác nhau cho Apache MXNet−

Bảng điều khiển Alibaba

Bạn có thể tạo NVIDIA GPU Cloud Virtual Machine (VM) có sẵn tại https://docs.nvidia.com/ngc với Bảng điều khiển Alibaba và sử dụng Apache MXNet.

Dịch vụ web của Amazon

Nó cũng cung cấp hỗ trợ GPU và cung cấp các dịch vụ sau cho Apache MXNet−

Amazon SageMaker

Nó quản lý đào tạo và triển khai các mô hình Apache MXNet.

AWS Deep Learning AMI

Nó cung cấp môi trường Conda được cài đặt sẵn cho cả Python 2 và Python 3 với Apache MXNet, CUDA, cuDNN, MKL-DNN và AWS Elastic Inference.

Đào tạo động trên AWS

Nó cung cấp đào tạo để thiết lập EC2 thủ công thử nghiệm cũng như thiết lập CloudFormation bán tự động.

Bạn có thể dùng NVIDIA VM có sẵn tại https://aws.amazon.com với các dịch vụ web của Amazon.

Nền tảng đám mây của Google

Google cũng đang cung cấp NVIDIA GPU cloud image có sẵn tại https://console.cloud.google.com để làm việc với Apache MXNet.

Microsoft Azure

Microsoft Azure Marketplace cũng đang cung cấp NVIDIA GPU cloud image có sẵn tại https://azuremarketplace.microsoft.com để làm việc với Apache MXNet.

Đám mây Oracle

Oracle cũng đang cung cấp NVIDIA GPU cloud image có sẵn tại https://docs.cloud.oracle.com để làm việc với Apache MXNet.

Bộ phận xử lý trung tâm (CPU)

Apache MXNet hoạt động trên mọi phiên bản chỉ dành cho CPU của nhà cung cấp đám mây. Có nhiều phương pháp khác nhau để cài đặt như

  • Hướng dẫn cài đặt pip trong Python.

  • Hướng dẫn Docker.

  • Tùy chọn cài đặt sẵn như Amazon Web Services cung cấp AWS Deep Learning AMI (có môi trường Conda được cài đặt sẵn cho cả Python 2 và Python 3 với MXNet và MKL-DNN).

Cài đặt MXNet trên thiết bị

Hãy để chúng tôi tìm hiểu cách cài đặt MXNet trên các thiết bị.

Raspberry Pi

Bạn cũng có thể chạy Apache MXNet trên các thiết bị Raspberry Pi 3B vì MXNet cũng hỗ trợ Hệ điều hành dựa trên ARM Respbian. Để chạy mượt mà MXNet trên Raspberry Pi3, bạn nên trang bị thiết bị có RAM hơn 1 GB và thẻ SD với ít nhất 4GB dung lượng trống.

Sau đây là các cách với sự trợ giúp mà bạn có thể xây dựng MXNet cho Raspberry Pi và cài đặt các liên kết Python cho thư viện

Cài đặt nhanh chóng

Bánh xe Python được tạo sẵn có thể được sử dụng trên Raspberry Pi 3B với tính năng Stretch để cài đặt nhanh chóng. Một trong những vấn đề quan trọng với phương pháp này là chúng ta cần cài đặt một số phụ thuộc để Apache MXNet hoạt động.

Cài đặt Docker

Bạn có thể làm theo hướng dẫn cài đặt docker, có sẵn tại https://docs.docker.com/engine/install/ubuntu/để cài đặt Docker trên máy của bạn. Vì mục đích này, chúng tôi cũng có thể cài đặt và sử dụng Phiên bản Cộng đồng (CE).

Bản dựng gốc (từ nguồn)

Để cài đặt MXNet từ nguồn, chúng ta cần làm theo hai bước sau:

Bước 1

Build the shared library from the Apache MXNet C++ source code

Để xây dựng thư viện được chia sẻ trên phiên bản Raspberry Wheezy trở lên, chúng ta cần các phụ thuộc sau:

  • Git- Bắt buộc phải kéo mã từ GitHub.

  • Libblas- Nó được yêu cầu cho các phép toán đại số tuyến tính.

  • Libopencv- Nó được yêu cầu cho các hoạt động liên quan đến thị giác máy tính. Tuy nhiên, nó là tùy chọn nếu bạn muốn tiết kiệm RAM và Dung lượng đĩa của mình.

  • C++ Compiler- Yêu cầu biên dịch và xây dựng mã nguồn MXNet. Sau đây là các trình biên dịch được hỗ trợ hỗ trợ C ++ 11−

    • G ++ (phiên bản 4.8 trở lên)

    • Clang(3.9-6)

Sử dụng các lệnh sau để cài đặt các phần phụ thuộc nêu trên−

sudo apt-get update
sudo apt-get -y install git cmake ninja-build build-essential g++-4.9 c++-4.9 liblapack*
libblas* libopencv*
libopenblas* python3-dev python-dev virtualenv

Tiếp theo, chúng ta cần sao chép kho mã nguồn MXNet. Đối với điều này, hãy sử dụng lệnh git sau trong thư mục chính của bạn−

git clone https://github.com/apache/incubator-mxnet.git --recursive

cd incubator-mxnet

Bây giờ, với sự trợ giúp của các lệnh sau, hãy xây dựng thư viện được chia sẻ:

mkdir -p build && cd build
cmake \
-DUSE_SSE=OFF \
-DUSE_CUDA=OFF \
-DUSE_OPENCV=ON \
-DUSE_OPENMP=ON \
-DUSE_MKL_IF_AVAILABLE=OFF \
-DUSE_SIGNAL_HANDLER=ON \

-DCMAKE_BUILD_TYPE=Release \
-GNinja ..
ninja -j$(nproc)

Sau khi bạn thực hiện các lệnh trên, nó sẽ bắt đầu quá trình xây dựng sẽ mất vài giờ để hoàn thành. Bạn sẽ nhận được một tệp có tênlibmxnet.so trong thư mục xây dựng.

Bước 2

Install the supported language-specific packages for Apache MXNet

Trong bước này, chúng tôi sẽ cài đặt các ràng buộc MXNet Pythin. Để làm như vậy, chúng ta cần chạy lệnh sau trong thư mục MXNet−

cd python
pip install --upgrade pip
pip install -e .

Ngoài ra, với lệnh sau, bạn cũng có thể tạo whl package có thể cài đặt với pip-

ci/docker/runtime_functions.sh build_wheel python/ $(realpath build)

Thiết bị NVIDIA Jetson

Bạn cũng có thể chạy Apache MXNet trên Thiết bị NVIDIA Jetson, chẳng hạn như TX2 hoặc là Nanovì MXNet cũng hỗ trợ hệ điều hành dựa trên Ubuntu Arch64. Để chạy mượt mà MXNet trên Thiết bị NVIDIA Jetson, bạn cần phải cài đặt CUDA trên thiết bị Jetson của mình.

Sau đây là các cách với sự trợ giúp mà bạn có thể tạo MXNet cho các thiết bị NVIDIA Jetson:

  • Bằng cách sử dụng bánh xe pip Jetson MXNet để phát triển Python

  • Từ nguồn

Tuy nhiên, trước khi xây dựng MXNet từ bất kỳ cách nào được đề cập ở trên, bạn cần cài đặt các phần phụ thuộc sau trên thiết bị Jetson của mình−

Phụ thuộc Python

Để sử dụng API Python, chúng ta cần các phụ thuộc sau:

sudo apt update
sudo apt -y install \
   build-essential \
   git \
   graphviz \
   libatlas-base-dev \
   libopencv-dev \
   python-pip
sudo pip install --upgrade \
   pip \
   setuptools
sudo pip install \
   graphviz==0.8.4 \
   jupyter \
   numpy==1.15.2

Sao chép kho lưu trữ mã nguồn MXNet

Bằng cách sử dụng lệnh git sau trong thư mục chính của bạn, sao chép kho lưu trữ mã nguồn MXNet−

git clone --recursive https://github.com/apache/incubator-mxnet.git mxnet

Thiết lập các biến môi trường

Thêm phần sau vào của bạn .profile tệp trong thư mục chính của bạn

export PATH=/usr/local/cuda/bin:$PATH
export MXNET_HOME=$HOME/mxnet/
export PYTHONPATH=$MXNET_HOME/python:$PYTHONPATH

Bây giờ, hãy áp dụng thay đổi ngay lập tức bằng lệnh sau

source .profile

Định cấu hình CUDA

Trước khi định cấu hình CUDA, với nvcc, bạn cần kiểm tra phiên bản CUDA đang chạy

nvcc --version

Giả sử, nếu nhiều phiên bản CUDA được cài đặt trên thiết bị hoặc máy tính của bạn và bạn muốn chuyển đổi phiên bản CUDA, hãy sử dụng cách sau và thay thế liên kết tượng trưng thành phiên bản bạn muốn

sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda

Lệnh trên sẽ chuyển sang CUDA 10.0, được cài đặt sẵn trên thiết bị NVIDIA Jetson Nano.

Sau khi thực hiện xong các điều kiện tiên quyết nêu trên, bây giờ bạn có thể cài đặt MXNet trên Thiết bị NVIDIA Jetson. Vì vậy, hãy để chúng tôi hiểu các cách mà bạn có thể cài đặt MXNet−

By using a Jetson MXNet pip wheel for Python development- Nếu bạn muốn sử dụng bánh xe Python đã chuẩn bị, hãy tải phần sau xuống Jetson của bạn và chạy nó−

  • MXNet 1.4.0 (cho Python 3) có sẵn tại https://docs.docker.com

  • MXNet 1.4.0 (cho Python 2) có sẵn tại https://docs.docker.com

Bản dựng gốc (từ nguồn)

Để cài đặt MXNet từ nguồn, chúng ta cần làm theo hai bước sau:

Bước 1

Build the shared library from the Apache MXNet C++ source code

Để xây dựng thư viện được chia sẻ từ mã nguồn Apache MXNet C ++, bạn có thể sử dụng phương pháp Docker hoặc thực hiện theo cách thủ công−

Phương pháp Docker

Trong phương pháp này, trước tiên bạn cần cài đặt Docker và có thể chạy nó mà không cần sudo (cũng được giải thích trong các bước trước). Sau khi hoàn tất, hãy chạy phần sau để thực hiện biên dịch chéo qua Docker−

$MXNET_HOME/ci/build.py -p jetson

Thủ công

Trong phương pháp này, bạn cần chỉnh sửa Makefile (với lệnh bên dưới) để cài đặt MXNet với các ràng buộc CUDA để tận dụng các đơn vị Xử lý Đồ họa (GPU) trên các thiết bị NVIDIA Jetson:

cp $MXNET_HOME/make/crosscompile.jetson.mk config.mk

Sau khi chỉnh sửa Makefile, bạn cần chỉnh sửa tệp config.mk để thực hiện một số thay đổi bổ sung cho thiết bị NVIDIA Jetson.

Đối với điều này, hãy cập nhật các cài đặt sau

  • Cập nhật đường dẫn CUDA: USE_CUDA_PATH = / usr / local / cuda

  • Thêm -gencode Arch = compute-63, code = sm_62 vào cài đặt CUDA_ARCH.

  • Cập nhật cài đặt NVCC: NVCCFLAGS: = -m64

  • Bật OpenCV: USE_OPENCV = 1

Bây giờ để đảm bảo rằng MXNet xây dựng với khả năng tăng tốc chính xác thấp ở cấp phần cứng của Pascal, chúng ta cần chỉnh sửa Mshadow Makefile như sau

MSHADOW_CFLAGS += -DMSHADOW_USE_PASCAL=1

Cuối cùng, với sự trợ giúp của lệnh sau, bạn có thể tạo thư viện Apache MXNet hoàn chỉnh−

cd $MXNET_HOME
make -j $(nproc)

Sau khi bạn thực hiện các lệnh trên, nó sẽ bắt đầu quá trình xây dựng sẽ mất vài giờ để hoàn thành. Bạn sẽ nhận được một tệp có tênlibmxnet.so bên trong mxnet/lib directory.

Bước 2

Install the Apache MXNet Python Bindings

Trong bước này, chúng tôi sẽ cài đặt các liên kết MXNet Python. Để làm như vậy, chúng ta cần chạy lệnh sau trong thư mục MXNet−

cd $MXNET_HOME/python
sudo pip install -e .

Sau khi thực hiện xong các bước trên, bây giờ bạn đã sẵn sàng chạy MXNet trên các thiết bị NVIDIA Jetson TX2 hoặc Nano của mình. Nó có thể được xác minh bằng lệnh sau

import mxnet
mxnet.__version__

Nó sẽ trả về số phiên bản nếu mọi thứ hoạt động bình thường.