USB神經網路計算卡使用PLAI軟體進行模型建構與訓練

本文介紹以Gyrfalcon Technology公司Lightspeeur 2801S晶片為核心的USB神經網路計算卡使用搭配的PLAI(People Learn AI)軟體進行VGG模型建構與訓練。本文內容參考廠商網頁進行,訓練過程中使用nVidia GPU來加速運算;電腦安裝的作業系統為Ubuntu 16.04.5 LTS (Xenial Xerus) 64-bit PC (AMD64) desktop。PLAI軟體可從”AI 64G資料U盤”中取得:

並將GTI_PLAI_v1.0.tar.gz拷貝到家目錄。

首先安裝Anaconda Distribution,下載Anaconda3-2018.12-Linux-x86_64.sh後用以下命令進行安裝(注意安裝過程中的選項):

bash Anaconda3-2018.12-Linux-x86_64.sh
Do you accept the license terms? [yes|no]
[no] >>> yes

Anaconda3 will now be installed into this location:
/home/yilintung/anaconda3

- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below

[/home/yilintung/anaconda3] >>>

Do you wish the installer to initialize Anaconda3
in your /home/yilintung/.bashrc ? [yes|no]
[no] >>> no

Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
>>> no

完成後,回到家目錄並建立Anaconda3.sh,內容於下:

export LANG='UTC-8'
export LC_ALL='en_US.UTF-8'
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
export PATH=/home/yilintung/anaconda3/bin:$PATH
. /home/yilintung/anaconda3/etc/profile.d/conda.sh

接著安裝Cuda:

cd /tmp

sudo apt-get update && sudo apt-get install wget -y --no-install-recommends && \
wget "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb" && \
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb && \
sudo apt-get update && \
sudo apt-get install -y cuda-8-0

wget https://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz && \
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local && \
rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig && \
cd -

完成後,進入Anaconda Python環境,並建立Python虛擬環境PLAI;完成後進入該虛擬環境:

source Anaconda3.sh

conda create --name PLAI python=3.7 anaconda

conda activate PLAI

進行相關套件安裝:

pip install opencv-contrib-python

pip install https://download.pytorch.org/whl/cu80/torch-1.0.1.post2-cp37-cp37m-linux_x86_64.whl

pip install torchvision

進入Python(在終端機下輸入 python ),用以下程式確認套件是否安裝正確:

>>> import cv2
>>> import torch
>>> import torchvision
>>> torch.cuda.is_available()
True

完成環境設定後,解壓縮PLAI軟體,並進行額外的設定:

tar zxvf GTI_PLAI_v1.0.tar.gz

cd PLAI

sudo cp lib/python/gtilib/libftd3xx.so.0.5.21 /usr/lib/
sudo cp lib/python/gtilib/*.rules /etc/udev/rules.d/

由於我們要用GNet1模型,所以對training.json做以下修改:

"mask_bits": "3,3,1,1,1",
"act_bits": "5,5,5,5,5",

以及修改PLAI.py:

gtiPLAI = PLAI(num_classes=2, data_dir=data_dir, checkpoint_dir=checkpoint_dir, model_type=2, module_type=1, device_type=1)

如果使用GPU進行訓練,在最後模型轉換會出現錯誤:TypeError: can’t convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.。請下載這個程式碼覆蓋PLAI目錄下同名的檔案。之後,進行模型建構與訓練:

python PLAI.py

訓練結果如下圖所示:

最後,使用x86 SDK的liteSample來進行模型確認,命令如下:

cd ~/SDK_x86/GTISDK/Bin/Linux/

./run-lite.sh -c ~/PLAI/coefDat_2801.dat -u ~/PLAI/nets/netConfig_2801_gnet1.txt -f ~/PLAI/coefBin_2801.bin -l ~/PLAI/data/pic_label.txt -i chenglong_15_vgg.img

執行結果如下圖所示(照片是chenglong且模型推論也是chenglong):

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *