paddlepaddle docker 安装实践 与 人类属性识别实践

系统:linux centos

docker -v
# Docker version 23.0.3, build ...

参考链接:https://www.paddlepaddle.org.cn/documentation/docs/zh/install/docker/linux-docker.html

dockerhub: https://hub.docker.com/r/paddlepaddle/paddle/tags/

拉取镜像:

docker pull paddlepaddle/paddle:2.4.2-gpu-cuda11.2-cudnn8.2-trt8.0

起一个容器,进入到一个打算保存 文件的目录。

cd /xx/xxx/  # 注意:要把自己用到的目录都映射到该里面,否者文件找不到。
docker run --gpus all  --name paddle_docker -it -v $PWD:/paddle registry.baidubce.com/paddlepaddle/paddle:2.4.2-gpu-cuda11.2-cudnn8.2-trt8.0  /bin/bash

-v $PWD:/paddle:指定将当前路径(PWD 变量会展开为当前路径的绝对路径)挂载到容器内部的 /paddle 目录;

进入容器后,在 /paddle 目录内创建的文件,自然会在 /xx/xxx/ 内显示。

人类属性识别实践

参考:https://github.com/PaddlePaddle/PaddleClas/blob/release/2.4/docs/zh_CN/PULC/PULC_person_attribute.md

pip3 install paddleclas -i https://pypi.tuna.tsinghua.edu.cn/simple/

下载 demo

wget https://paddleclas.bj.bcebos.com/data/PULC/pulc_demo_imgs.zip
unzip -d ./ pulc_demo_imgs.zip 

预测:

paddleclas --model_name=person_attribute --infer_imgs=pulc_demo_imgs/person_attribute/090004.jpg
# [2023/05/09 07:32:52] ppcls INFO: attributes: ['Male', 'Age18-60', 'Back', 'Glasses: False', 'Hat: False', 'HoldObjectsInFront: False', 'Backpack', 'Upper: LongSleeve UpperPlaid', 'Lower:  Trousers', 'No boots'], output: [0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1], filename: pulc_demo_imgs/person_attribute/090004.jpg
[2023/05/09 07:32:52] ppcls INFO: Predict complete!

infer_imgs= 支持文件夹输入。

import paddleclas
model = paddleclas.PaddleClas(model_name="person_attribute")
result = model.predict(input_data="pulc_demo_imgs/person_attribute/090004.jpg")
print(next(result)) 
# or 
for i in result:
	print(i)

常用命令

# 启动一个容器,并进入 交互模式
docker start paddle_docker -i

pip install -r requirements.txt
# -r, --requirement <file>    Install from the given requirements file. This option can be used multiple times.
# 看来 -r 就是 requirement 的意思。

pip install -v -e .
# -v, --verbose   Give more output. Option is additive, and can be used up to 3 times. 看来就是输出更多的信息
# -e, --editable <path/url>   Install a project in editable mode (i.e. setuptools "develop mode") from a local project path or a VCS url.
# https://blog.csdn.net/qq_29304033/article/details/128660567


# 停止一个容器
docker stop paddle_docker
# 从容器创建一个新的镜像
docker commit -a "xx"(创建者)  -m "paddle for seg"(提交时的说明文字;) paddle_docker(容器名或者 CONTAINER ID ) paddlepaddle(REPOSITORY):2.4.2-gpu-cuda11.2-cudnn8.2-trt8.0(TAG)
# 查看一个指定的镜像
docker images paddlepaddle:2.4.2-gpu-cuda11.2-cudnn8.2-trt8.0

问题:对于一个已经启动的docker 容器,怎么添加新的挂载目录?

解决:可以先从该容器创建一个新的镜像,然后再挂载一个大的目录即可。

删除容器和对应的镜像:

# 1. 停用容器
docker stop paddle_docker
# 2. 删除容器
docker rm paddle_docker
# 3. 删除镜像
sudo docker  rmi registry.baidubce.com/paddlepaddle/paddle:2.4.2-gpu-cuda11.2-cudnn8.2-trt8.0

错误:如果移除 镜像时候遇到如下问题:image has dependent child images。

解决:参考:https://github.com/dmuth/docker-remove-dependent-child-images

docker rmi $(docker images --filter "dangling=true" -q 
posted @ 2023-05-12 11:35  cold_moon  阅读(268)  评论(0编辑  收藏  举报