极智AI | 地平线开工开物工具链docker开发环境搭建

欢迎关注我的公众号 [极智视界],获取我的更多经验分享

大家好,我是极智视界,本文来介绍一下 地平线天工开物工具链docker开发环境搭建。

邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:t.zsxq.com/0aiNxERDq

准备开工开物工具链:OE工具链

准备数据集:可以参考地平线官方: OE数据集准备

比如将准备好的数据集放到 /data 目录

加载镜像:

bash 复制代码
# 加载gpu镜像
docker load < docker_openexplorer_ubuntu_20_xj3_gpu_v2.6.2b.tar.gz
# 加载cpu镜像
docker load < docker_openexplorer_ubuntu_20_xj3_cpu_v2.6.2b.tar.gz

创建容器:

执行如下脚本:

bash 复制代码
# gpu docker
./run_docker.sh /data

# cpu docker
./run_docker.sh /data cpu
bash 复制代码
#!/bin/bash

dataset_path=$1
run_type=$2
version=v2.6.2b

if [ -z "$dataset_path" ];then
  echo "Please specify the dataset path"
  exit
fi
dataset_path=$(readlink -f "$dataset_path")

echo "Docker version is ${version}"
echo "Dataset path is $(readlink -f "$dataset_path")"

open_explorer_path=$(readlink -f "$(dirname "$0")")
echo "OpenExplorer package path is $open_explorer_path"

if [ "$run_type" == "cpu" ];then
    docker run -it  -p 9991:22 --net=bridge --ipc=host --pid=host --name oe_infer \
      -v "$open_explorer_path":/open_explorer \
      -v "$dataset_path":/data/horizon_x3/data \
      -v /workspace:/workspace \
      openexplorer/ai_toolchain_ubuntu_20_xj3_cpu:"$version"
else
    echo "Run in GPU mode"
    docker run -it -p 9991:22 --net=bridge --ipc=host --pid=host --name oe_infer \
      --gpus all --privileged \
      -v "$open_explorer_path":/open_explorer \
      -v "$dataset_path":/data/horizon_x3/data \
      -v /workspace:/workspace \
      openexplorer/ai_toolchain_ubuntu_20_xj3_gpu:"$version"
fi

因为后面要训练啥的,所以就默认创建 gpu docker 了,直接执行上述创建 gpu docker 的命令后,就有了名为 oe_infer 的容器了,使用命令 nvidia-sminvcc -V 验证一下 cuda 环境是否正常,如下:

容器里边的 /open_explorer 目录,就已经映射到了最开始准备的天工开物工具链的包路径,进入容器后,首先使用 hb_mapper 命令验证环境是否正常,如下:

这样基础的容器环境已经搭建,后面基于基础容器环境进一步进行配置。

天工开物工具链要求的一般环境如下:

  • 操作系统:Ubuntu20.04
  • Python3.8
  • libpython3.8
  • python3-devel
  • python3-pip
  • gcc&c++: 5.4.0
  • graphviz
  • cuda11.1
  • torch1.10.2+cuda11.1
  • torchvision0.11.3+cuda11.1

首先安装一下 python 环境,这里用 anaconda3 进行 python 环境管理 (安装 anaconda3 的过程略过)。然后创建 python3.8 的环境:

ini 复制代码
conda create -n oe_py38 python=3.8
# 激活
conda activate oe_py38

工具链依赖安装:

sql 复制代码
apt update
apt install language-pack-en
update-locale LC_ALL=en_US.utf8

cd /open_explorer/ddk/package/host/ai_toolchain
bash install_ai_toolchain.sh

如果遇到报错:

bash 复制代码
Building wheels for collected packages: pycocotools
  Building wheel for pycocotools (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [43 lines of output]
      /tmp/pip-install-usyyw9sm/pycocotools_4bac52cd9bd64fc28e2f32053854883e/setup.py:12: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
      .....
      creating build/common
      creating build/temp.linux-x86_64-cpython-38
      creating build/temp.linux-x86_64-cpython-38/common
      creating build/temp.linux-x86_64-cpython-38/pycocotools
      gcc -pthread -B /root/anaconda3/envs/oe_py38/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/.local/lib/python3.8/site-packages/numpy/core/include -I./common -I/root/anaconda3/envs/oe_py38/include/python3.8 -c ../common/maskApi.c -o build/temp.linux-x86_64-cpython-38/../common/maskApi.o -Wno-cpp -Wno-unused-function -std=c99
      gcc: error: ../common/maskApi.c: No such file or directory
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pycocotools
  Running setup.py clean for pycocotools
Failed to build pycocotools
ERROR: Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects

解决办法是安装 cpython,而且是一定要安装较低版本的 cpython,版本太高也不行 (这个坑也是卡了好几天):

ini 复制代码
pip install cython==0.29.36

然后重新安装 install_ai_toolchain.sh 就可,采用如下命令验证是否安装成功:

sql 复制代码
pip show horizon_nn && pip show horizon_tc_ui

这样 工具链的 docker 开发环境就全部安装完成了。

好了,以上分享了地平线天工开物工具链docker开发环境搭建。希望我的分享能对你的学习有一点帮助。


【公众号传送】

《极智AI | 地平线天工开物工具链docker开发环境搭建》

畅享人工智能的科技魅力,让好玩的AI项目不难玩。邀请您加入我的知识星球, 星球内我精心整备了大量好玩的AI项目,皆以工程源码形式开放使用,涵盖人脸、检测、分割、多模态、AIGC、自动驾驶、工业等。不敢说会对你学习有所帮助,但一定非常好玩,并持续更新更加有趣的项目。 t.zsxq.com/0aiNxERDq

相关推荐
2401_88304108几秒前
新锐品牌电商代运营公司都有哪些?
大数据·人工智能
AI极客菌1 小时前
Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
人工智能·计算机视觉·ai作画·stable diffusion·aigc·flux·人工智能作画
阿_旭1 小时前
一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理
人工智能·深度学习·计算机视觉·cross-attention·self-attention
王哈哈^_^1 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
Power20246662 小时前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
数据猎手小k2 小时前
AIDOVECL数据集:包含超过15000张AI生成的车辆图像数据集,目的解决旨在解决眼水平分类和定位问题。
人工智能·分类·数据挖掘
好奇龙猫2 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
沉下心来学鲁班2 小时前
复现LLM:带你从零认识语言模型
人工智能·语言模型
数据猎手小k2 小时前
AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
android·人工智能·机器学习·语言模型
YRr YRr3 小时前
深度学习:循环神经网络(RNN)详解
人工智能·rnn·深度学习