在 Docker 容器中实现 ATC 模型转换与 npu-smi 推理
通过阅读本篇文章,您将学习到以下内容:
- Docker 环境准备:如何配置 Docker 环境以使用 ATC 工具。
- 模型转换流程:在 Docker 中使用 ATC 工具进行模型转换的步骤。
- 实用示例:通过具体的示例和操作步骤,使用 ATC 在 Docker 中进行模型转换。
1. Docker 环境准备
在 Docker 容器中使用 ATC 工具,首先需要准备好 Docker 环境。您可以参考以下指南:
2. 创建 yml 文件
以下是一个示例,您可以创建一个名为 docker-compose-tky-val.yml 的文件:
version: '2.2.2' # 指定 Docker Compose 文件格式版本
services:
Tky_val: # 服务名称
image: c7d1bd66832a # 镜像ID
container_name: Tky_val # 容器名称
network_mode: host # 使用主机网络
privileged: true # 启用特权模式
devices:
- /dev/davinci0
- /dev/davinci_manager
- /dev/devmm_svm
- /dev/hisi_hdc
volumes:
- /usr/local/bin/npu-smi:/usr/local/bin/npu-smi
- /usr/local/Ascend/driver/:/usr/local/Ascend/driver
- /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/
- /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf
- /var/log/npu/slog/:/var/log/npu/slog
- /var/log/npu/profiling/:/var/log/npu/profiling
- /var/log/npu/dump/:/var/log/npu/dump
- /var/log/npu/:/usr/slog
- /home/yolov5_6.0:/home/yolov5_6.0
tty: true # 使容器保持运行(交互模式)
stdin_open: true # 允许对容器的标准输入进行打开
entrypoint: /bin/bash # 设置容器启动后执行的命令
command: /bin/bash -c "echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc && exec python /docker-file/app.py"
2.1 补充说明
- services:定义应用中包含的服务。
- devices:映射的设备,将设备映射到容器内,允许容器与硬件进行直接交互。
- 需要挂载的设备示例:
/dev/davinciX:NPU 设备,X 是 ID 号,如davinci0。/dev/davinci_manager:与 davinci 相关的管理设备。/dev/devmm_svm:内存管理相关设备。/dev/hisi_hdc:hdc 相关管理设备。
- 需要挂载的设备示例:
- volumes:定义数据卷挂载,在容器和宿主机之间共享文件和目录,确保数据持久性和共享。
- 每个条目格式为
宿主机路径:容器路径。
- 每个条目格式为
- devices:映射的设备,将设备映射到容器内,允许容器与硬件进行直接交互。
3. 运行 yml 文件
docker-compose -f docker-compose-tky-val.yml up -d





1558

被折叠的 条评论
为什么被折叠?



