选中内容(绿色)时除了会搜索文章名,还会搜索文章内容
点击结果中的文章名进入文章界面后可以按Ctrl+F在页面内搜索
  • 版权:CC BY-SA 4.0
  • 创建:2022-09-30
  • 更新:2022-10-08
从AXera-Pi 的模型转换工具 docker 镜像中抽离出 pulsar 工具链在本机上或者服务器上跑


因为 Maix-III AXera-Pi 的模型转换工具是用 docker 封装起来的, 好处是简单,不需要搭建环境,但是你也可能想在自己的本机直接运行,或者封装到其它 docker 等用处时,想要将软件抽离出来,这里介绍了如何将 pulsar 从 docker 镜像里面抽离出来。

创建容器并运行

  1. docker run -it --net host --rm --shm-size 32g -v $PWD:/data sipeed/pulsar

保持容器运行,在新的终端中执行命令拷贝出文件

  1. docker cp sipeed/pulsar:/root .

主要需要从 docker 拷贝出来的python_modules文件夹和VERSION文件

因为要使用特定的 Python 版本(对于0.6.1.14版本使用的 Python 3.6.9),可以安装 miniconda 来实现

  1. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  2. chmod +x Miniconda3-latest-Linux-x86_64.sh
  3. ./Miniconda3-latest-Linux-x86_64.sh -b
  4. # source /root/miniconda3/etc/profile.d/conda.sh # 找不到 conda 命令时执行, 路径根据你安装 miniconda 的路径,这里以 root 用户安装的举例
  5. conda create -y -n pulsar python=3.6.9

然后 pulsar_requirements.txt(可能写得不全,实际遇到报错缺包再安装也行,或者直接在 docker 容器里面执行 pip freezen > requirements.txt 将所有包导出来):

  1. torchvision
  2. torch
  3. numpy
  4. protobuf
  5. tabulate
  6. onnx==1.8.1
  7. onnxruntime
  8. flatbuffers
  9. opencv-python
  10. filelock
  11. MegEngine
  12. PuLP
  13. contextvars
  14. bitarray
  15. cached-property
  16. ipython

安装依赖

  1. conda activate pulsar
  2. python --version
  3. pip install -r /root/pulsar_requirements.txt -i https://pypi.douban.com/simple

运行前需要设置变量,这些变量导出来自于拷贝的文件夹下的.bashrc

  1. export WORKDIR=/root
  2. export NEUWIZARD_LATEST_PYTHONPATH=$WORKDIR/python_modules/neuwizard-latest
  3. export PATH=$WORKDIR:$WORKDIR/python_modules/neuglass:$WORKDIR/caffe2onnx:$NEUWIZARD_LATEST_PYTHONPATH/neuwizard/backends/joint:$WORKDIR/python_modules/super_pulsar:$WORKDIR/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$WORKDIR/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/bin:/root/.local/bin:$PATH
  4. export PYTHONPATH=$NEUWIZARD_LATEST_PYTHONPATH:$WORKDIR/python_modules:$WORKDIR/python_modules/super_pulsar:$PYTHONPATH
  5. export PULSAR_TMPDIR=$WORKDIR
  6. export LOGGING_LEVEL=debug
  7. export LANG=C.UTF-8
  8. export NEUWIZARD_TOOLS_VERSION=`cat $WORKDIR/VERSION`
  9. export OMP_NUM_THREADS=1
  10. export OPENBLAS_NUM_THREADS=1

这里 WORKDIRpython_modulesVERSION文件所在文件夹
然后就可以执行 pulsar 命令了,可以把这些 export 变量放到~/.bashrc或者~/.zshrc

  1. pulsar -h

也可以封装成一个脚本,比如叫pulsar-helper.sh

  1. #/bin/bash
  2. set -e
  3. export WORKDIR=/root
  4. export NEUWIZARD_LATEST_PYTHONPATH=$WORKDIR/python_modules/neuwizard-latest
  5. export PATH=$WORKDIR:$WORKDIR/python_modules/neuglass:$WORKDIR/caffe2onnx:$NEUWIZARD_LATEST_PYTHONPATH/neuwizard/backends/joint:$WORKDIR/python_modules/super_pulsar:$WORKDIR/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$WORKDIR/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/bin:/root/.local/bin:$PATH
  6. export PYTHONPATH=$NEUWIZARD_LATEST_PYTHONPATH:$WORKDIR/python_modules:$WORKDIR/python_modules/super_pulsar:$PYTHONPATH
  7. export PULSAR_TMPDIR=$WORKDIR
  8. export LOGGING_LEVEL=debug
  9. export LANG=C.UTF-8
  10. export NEUWIZARD_TOOLS_VERSION=`cat $WORKDIR/VERSION`
  11. export OMP_NUM_THREADS=1
  12. export OPENBLAS_NUM_THREADS=1
  13. source /root/miniconda3/etc/profile.d/conda.sh
  14. conda activate pulsar
  15. pulsar $@
  16. conda deactivate

这样就只需要执行

  1. pulsar-helper.sh -h
文章有误?有想法想讨论?查看或者发起勘误/讨论 主题
(发起评论需要先登录 github)

/wallpaper/wallhaven-391r1d.jpg