DeepFace【部署 04】轻量级人脸识别和面部属性分析框架deepface使用Docker部署CPU+GPU两个版本及cuDNN安装

简介: DeepFace【部署 04】轻量级人脸识别和面部属性分析框架deepface使用Docker部署CPU+GPU两个版本及cuDNN安装

1.CPU

本说明基于DeepFace的Docker镜像文件deepface_image.tar进行说明。

# 1.导入镜像
docker load -i deepface_image.tar
# 2.创建模型文件夹【并将下载好的模型文件上传】
mkdir -p /root/.deepface/weights/
# 3.启动容器
# 网络隔离性受影响但性能好
docker run --name deepface --privileged=true --restart=always --net="host" -v /root/.deepface/weights/:/root/.deepface/weights/ -d deepface_image
# 一般使用
docker run --name deepface --privileged=true --restart=always -p 5000:5000 -v /root/.deepface/weights/:/root/.deepface/weights/ -d deepface_image
# 使用最新的代码进行容器启动
docker run --name deepface_src --privileged=true --restart=always --net="host" \
-v /root/.deepface/weights/:/root/.deepface/weights/ \
-v /opt/test-facesearch/deepfacesrc/:/app/deepface/ \
-d deepface_image

警告信息:

# 执行命令
docker run --name deepface --privileged=true --restart=always --net="host" -p 5000:5000 -v /root/.deepface/weights/:/root/.deepface/weights/ -d deepface_image
# 警告
WARNING: Published ports are discarded when using host network mode

这个警告通常出现在使用Docker的host网络模式时,因为在这种模式下,容器与主机共享相同的网络命名空间,因此容器中的端口将直接映射到主机上,而不需要进行端口转发。因此,使用-p选项来发布容器端口是无效的,并且会导致警告信息。要解决这个问题,您可以尝试以下方法:

  1. 如果您不需要将容器端口映射到主机上,请删除-p选项。
  2. 如果您需要将容器端口映射到主机上,请使用Docker的其他网络模式(例如bridge模式)。
  3. 如果您确实需要使用host网络模式,请考虑使用主机IP地址来访问容器中的服务,而不是使用端口转发。

2.GPU

首先要启动容器安装tensorrt

pip install tensorrt -i https://pypi.tuna.tsinghua.edu.cn/simple

安装后的启动命令:

docker run --name deepface --privileged=true --restart=always --net="host" \
-e PATH=/usr/local/cuda-11.2/bin:$PATH -e LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH \
-v /root/.deepface/weights/:/root/.deepface/weights/ \
-v /usr/local/cuda-11.2/:/usr/local/cuda-11.2/ \
-v /opt/xinan-facesearch-service-public/deepface/api/app.py:/app/app.py \
-d deepface_image

测试fastmtcnn将最新代码挂载到目录下:

docker run --name deepface_gpu_src --privileged=true --restart=always --net="host" \
-e PATH=/usr/local/cuda-11.2/bin:$PATH -e LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH \
-v /root/.deepface/weights/:/root/.deepface/weights/ \
-v /usr/local/cuda-11.2/:/usr/local/cuda-11.2/ \
-v /opt/test-facesearch/deepfacesrc/:/app/deepface/ \
-v /opt/xinan-facesearch-service-public/deepface/api/app.py:/app/app.py \
-d deepface_image

跟CPU部署不同点:

  1. 设置了两个环境变量-e PATH=/usr/local/cuda-11.2/bin:$PATH -e LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH
  2. 添加了一个挂载目录-v /usr/local/cuda-11.2/:/usr/local/cuda-11.2/
  3. 添加了一个挂载文件-v /deepface/api/app.py:/app/app.py

文件/deepface/api/app.py内容如下:

import tensorrt as tr
import tensorflow as tf
from flask import Flask
from routes import blueprint
def create_app():
    available = tf.config.list_physical_devices('GPU')
    print(f"available:{available}")
    app = Flask(__name__)
    app.register_blueprint(blueprint)
    return app

调用tensorflow前需要先引入tensorrt

3.cuDNN安装

官网安装文档:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

cuDNN的支持矩阵:https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html

The NVIDIA CUDA® Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, attention, matmul, pooling, and normalization.

安装环境:

[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)

3.1 Prerequisites

需要先安装1.GPU Driver2.CUDAToolkit

nvidia-smi
# 查询结果
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.27.04    Driver Version: 460.27.04    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+

3.zlib

yum list installed | grep zlib
# 查询结果
zlib.x86_64                                1.2.7-18.el7               @anaconda
zlib-devel.x86_64                          1.2.7-18.el7               @base

3.2 下载Linux版本cuDNN

下载cuDNN需要先注册NVIDIA开发者计划:https://developer.nvidia.com/developer-program,下载页面:https://developer.nvidia.com/cudnn,选择平台和对应的版本进行下载,本次下载的为cudnn-11.2-linux-x64-v8.1.1.33.tgz大小为1.2G。浏览器下载容易失败,可复制浏览器的下载链接在Linux服务器上进行下载【腾讯云服务器速度12MB/s】:

wget https://developer.download.nvidia.cn/compute/machine-learning/cudnn/secure/8.1.1.33/11.2_20210301/cudnn-11.2-linux-x64-v8.1.1.33.tgz?G2wTHq8E--2jJ9iEfgtFbqfMGX0I1XD6BIksPkVIiU9F3ttrupv_oYvURaZX1dV71EIqEI767WbG5svvSMBElcaVrqZl15UEOUORNWbYwKZDyxidGmwHmG44XiEo6yyM1Rt7ct6NGlVXnxx0etcI9pNJ1PiaHYddY86Lc_yaBLdJwy9hqku4TW6NSNr7XfuCYXvGOPvOmraR4EOfg6Q=&t=eyJscyI6IndlYnNpdGUiLCJsc2QiOiJkZXZlbG9wZXIubnZpZGlhLmNvbS9jdWRhLTEwLjItZG93bmxvYWQtYXJjaGl2ZT90YXJnZXRfb3M9TGludXgifQ==

3.3 安装

The following steps describe how to build a cuDNN dependent program. Choose the installation method that meets your environment needs. For example, the tar file installation applies to all Linux platforms. The Debian package installation applies to Debian 11, Ubuntu 18.04, Ubuntu 20.04, and 22.04. The RPM package installation applies to RHEL7, RHEL8, and RHEL9. In the following sections:

  • your CUDA directory path is referred to as /usr/local/cuda/
  • your cuDNN download path is referred to as

可根据不同平台选择适合的安装方法,tar文件适合所有的Linux平台,安装步骤为:

  1. 解压安装包
tar -xvf cudnn-linux-$arch-8.x.x.x_cudaX.Y-archive.tar.xz
  1. Copy the following files into the CUDA toolkit directory
$ sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
$ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

安装文件为cudnn-11.2-linux-x64-v8.1.1.33.tgz实际操作步骤为:

# 1.解压
tar -zxvf cudnn-11.2-linux-x64-v8.1.1.33.tgz
# 2.复制并赋权
# 解压后的文件夹名称为cuda
# inculde【18个文件】
cp ./cuda/include/cudnn*.h /usr/local/cuda/include
# lib64【8个文件 15个软连接】-P 选项表示保留源文件或目录的属性
cp -P ./cuda/lib64/libcudnn* /usr/local/cuda/lib64
# 所有用户赋可读权限
chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

另一个版本的安装文件为cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz步骤为:

# 1.解压
tar -xvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz
# 2.复制并赋权 inculde【18个文件】 lib【13个文件 20个软连接】
cp ./cudnn-linux-x86_64-8.6.0.163_cuda11-archive/include/cudnn*.h /usr/local/cuda/include
cp -P ./cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
17天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
51 2
|
19天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
46 2
|
20天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
29 3
|
7天前
|
Docker 容器
【赵渝强老师】使用二进制包方式安装Docker
本文介绍了在企业生产环境中无法直接访问外网时,如何使用Docker官方提供的二进制包进行Docker的离线安装。文章详细列出了从安装wget、下载Docker安装包、解压、复制命令到启动Docker服务的具体步骤,并提供了相关命令和示例图片。最后,还介绍了如何设置Docker为开机自启模式。
|
7天前
|
缓存 Ubuntu Linux
如何安装Docker
如何安装Docker
65 0
|
6月前
|
弹性计算 Java PHP
新手用户注册阿里云账号、实名认证、购买云服务器图文教程参考
对于初次购买阿里云产品的用户来说,第一步要做的是注册账号并完成实名认证,然后才是购买阿里云服务器或者其他云产品,本文为大家以图文形式展示一下新手用户从注册阿里云账号、实名认证到购买云服务器完整详细教程,以供参考。
新手用户注册阿里云账号、实名认证、购买云服务器图文教程参考
|
5月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之uniapp框架如何使用阿里云金融级人脸识别
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
137 0
|
机器学习/深度学习 搜索推荐 计算机视觉
【阿里云OpenVI-人脸感知理解系列之人脸识别】基于Transformer的人脸识别新框架TransFace ICCV-2023论文深入解读
本文介绍 阿里云开放视觉智能团队 被计算机视觉顶级国际会议ICCV 2023接收的论文 "TransFace: Calibrating Transformer Training for Face Recognition from a Data-Centric Perspective"。TransFace旨在探索ViT在人脸识别任务上表现不佳的原因,并从data-centric的角度去提升ViT在人脸识别任务上的性能。
2162 341
|
6月前
对于阿里云OpenAPI的域名实名认证
【1月更文挑战第5天】【1月更文挑战第22篇】对于阿里云OpenAPI的域名实名认证
78 1

热门文章

最新文章