在docker中安装paddle serving @FreeBSD(待续)

2024-04-29 02:36

本文主要是介绍在docker中安装paddle serving @FreeBSD(待续),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因为FreeBSD本身不能装paddle serving,所以我们要在docker里面装。

Paddle Serving官网:GitHub - PaddlePaddle/Serving: A flexible, high-performance carrier for machine learning models(『飞桨』服务化部署框架)

wheel包下载:Serving/doc/Latest_Packages_CN.md at develop · PaddlePaddle/Serving · GitHub

 真装起来才发现问题多多,待后面再解决问题。

FreeBSD启动docker

启动boot2docker

查找paddle serving

docker search paddle

paddlepaddle/serving

pull下载

docker pull paddlepaddle/serving

如果不成功,就用飞桨的镜像:

docker pull registry.baidubce.com/paddlepaddle/serving

创建容器并进入linux系统

docker run -p 9292:9292 --name test -dit registry.baidubce.com/paddlepaddle/serving:0.7.0-devel
docker exec -it test bash

安装Paddle Serving

不管在FreeBSD的docker里面,还是普通的linux里面,Paddle Serving的安装步骤都是一样的。

安装

pip安装paddle-serving-server是个技术活,有点难度,比如grpcio等就不好装。

安装Paddle Serving服务器端
为了减小镜像的体积,镜像中没有安装Serving包,要执行下面命令进行安装。

pip install paddle-serving-server -i https://pypi.tuna.tsinghua.edu.cn/simple

安装客户端

pip install paddle-serving-client  -i https://mirror.baidu.com/pypi/simple

安装工具组件

pip install paddle-serving-app -i https://mirror.baidu.com/pypi/simple

 

测试推理服务

先下载Paddle Serving代码

git clone https://github.com/PaddlePaddle/Serving

 启动房价预测服务

cd ~/Serving/examples/C++/fit_a_line
sh get_data.sh
python -m paddle_serving_server.serve --model uci_housing_model --thread 10 --port 9393 --gpu_id 0

在其它远程调用该服务器

curl -XPOST http://0.0.0.0:9393/GeneralModelService/inference -d ' {"tensor":[{"float_data":[0.0137,-0.1136,0.2553,-0.0692,0.0582,-0.0727,-0.1583,-0.0584,0.6283,0.4919,0.1856,0.0795,-0.0332],"elem_type":1,"name":"x","alias_name":"x","shape":[1,13]}],"fetch_var_names":["price"],"log_id":0}'

部署在线推理服务进阶流程

所谓进阶流程,其实还是那三个步骤,获取可用于部署的在线服务的模型、启动服务端和使用客户端访问服务端进行推理。只是每个步骤将会详细介绍一下,有的地方还要编写少量的代码。将逐一介绍具体过程及原理,此外为了保证读者理解上的连贯性,我们将把启动服务端和使用客户端访问服务端进行推理两个步骤合成一个步骤进行介绍。

1. 获取可用于部署在线服务的模型

模型转换API接口的应用示例代码如下所示,

python -m paddle_serving_client.convert --dirname $MODEL_DIR --model_filename $MODEL_FILENAME --params_filename PARAMS_FILENAME --serving_server $SERVING_SERVER_DIR --serving_client $SERVING_CLIENT_DIR

其中各个参数解释如下所示:

  • dirname (str) – 需要转换的模型文件存储路径,Program结构文件和参数文件均保存在此目录。
  • serving_server (str, 可选) - 转换后的模型文件和配置文件的存储路径。默认值为serving_server。
  • serving_client (str, 可选) - 转换后的客户端配置文件存储路径。默认值为serving_client。
  • model_filename (str,可选) – 存储需要转换的模型Inference Program结构的文件名称。如果设置为None,则使用 model 作为默认的文件名。默认值为None。
  • params_filename (str,可选) – 存储需要转换的模型所有参数的文件名称。当且仅当所有模型参数被保存在一个单独的二进制文件中,它才需要被指定。如果模型参数是存储在各自分离的文件中,设置它的值为None。默认值为None。

案例

 启动服务端

请在终端-1执行如下命令启动服务端。

cd ~/Serving/examples/C++/PaddleDetection/faster_rcnn_r50_fpn_1x_coco
wget --no-check-certificate https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/faster_rcnn_r50_fpn_1x_coco.tar
tar xf faster_rcnn_r50_fpn_1x_coco.tar
# python -m paddle_serving_server.serve --model serving_server --port 9494 --gpu_id 0
python -m paddle_serving_server.serve --model serving_server --port 9494 

2. 启动客户端

终端-2中启动客户端

cd ~/Serving/examples/C++/PaddleDetection/faster_rcnn_r50_fpn_1x_coco
python test_client.py 000000570688.jpg

调试

报错distutils.errors.CompileError: command '/usr/bin/gcc' failed with exit code 1

        File "/tmp/pip-install-brtc79ep/grpcio_d048c90f8c614ad4809a63239d7761a0/src/python/grpcio/commands.py", line 247, in new_compile
          return old_compile(obj, src, ext, cc_args, extra_postargs,
        File "/home/linuxskywalk/py310/lib/python3.10/distutils/unixccompiler.py", line 120, in _compile
          raise CompileError(msg)
      distutils.errors.CompileError: 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 grpcio
  Running setup.py clean for grpcio
  Building wheel for grpcio-tools (setup.py) ...

grpcio的编译是个坎....

可以尝试先这样安装:

pip install grpcio grpcio-tools --upgrade --user

报错:required to install pyproject.toml-based projects

执行:cd Serving/python && pip install -r requirements.txtFailed to build av
ERROR: Could not build wheels for av, which is required to install pyproject.toml-based projects

安装即可:pip install pyproject

报错:Could not build wheels for av

      pkg-config is required for building PyAV[end of output]note: This error originates from a subprocess, and is likely not a problem with pip.ERROR: Failed building wheel for avRunning setup.py clean for av
Failed to build av
ERROR: Could not build wheels for av, which is required to install pyproject.toml-based projects

可以单独安装上av或者pyav,但是还是不行,这步暂时过不去

这篇关于在docker中安装paddle serving @FreeBSD(待续)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944907

相关文章

win10安装及配置Gradle全过程

《win10安装及配置Gradle全过程》本文详细介绍了Gradle的下载、安装、环境变量配置以及如何修改本地仓库位置,通过这些步骤,用户可以成功安装并配置Gradle,以便进行项目构建... 目录一、Gradle下载1.1、Gradle下载地址1.2、Gradle下载步骤二、Gradle安装步骤2.1、安

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队