Firefly开源社区

标题: USB神经网络计算卡使用PLAI软体进行模型建构与训练 [打印本页]

作者: Firefly    时间: 2019-4-26 10:34
标题: 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拷貝到家目錄。
[size=15.2015px]首先安裝Anaconda Distribution,下載Anaconda3-2018.12-Linux-x86_64.sh後用以下命令進行安裝(注意安裝過程中的選項):

  1. bash Anaconda3-2018.12-Linux-x86_64.sh
复制代码
  1. Do you accept the license terms? [yes|no]
  2. [no] >>> yes

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

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

  8. [/home/yilintung/anaconda3] >>>

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

  12. Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
  13. >>> no
复制代码

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

  1. export LANG='UTC-8'
  2. export LC_ALL='en_US.UTF-8'
  3. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
  4. export PATH=/home/yilintung/anaconda3/bin:$PATH
  5. . /home/yilintung/anaconda3/etc/profile.d/conda.sh
复制代码

接著安裝Cuda:

  1. cd /tmp

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

  7. wget [url]https://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz[/url] && \
  8. sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local && \
  9. rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig && \
  10. cd -
复制代码

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

  1. source Anaconda3.sh

  2. conda create --name PLAI python=3.7 anaconda

  3. conda activate PLAI
复制代码

進行相關套件安裝:

  1. pip install opencv-contrib-python

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

  3. pip install torchvision
复制代码

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

  1. >>> import cv2
  2. >>> import torch
  3. >>> import torchvision
  4. >>> torch.cuda.is_available()
  5. True
复制代码

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

  1. tar zxvf GTI_PLAI_v1.0.tar.gz

  2. cd PLAI

  3. sudo cp lib/python/gtilib/libftd3xx.so.0.5.21 /usr/lib/
  4. sudo cp lib/python/gtilib/*.rules /etc/udev/rules.d/
复制代码

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

  1. "mask_bits": "3,3,1,1,1",
  2. "act_bits": "5,5,5,5,5",
复制代码

以及修改PLAI.py:

  1. 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目錄下同名的檔案。之後,進行模型建構與訓練:

  1. python PLAI.py
复制代码

訓練結果如下圖所示:




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

  1. cd ~/SDK_x86/GTISDK/Bin/Linux/

  2. ./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):



原文链接:On-Device AI




———————————————

更多信息请关注Firefly公众微信号fireflytee:

———————————————
Firefly官网:http://www.t-firefly.com

Firefly开源社区:http://developer.t-firefly.com











欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1