EasyDL模型离线部署-新手教程(GPU基础版)

本文档记录了在Ubuntu18.04上使用PaddlePaddle1.8.5和CUDA10.1进行EasyDL模型部署遇到的问题及解决过程。包括CUDA版本升级、TensorRT安装和环境变量设置等,最终成功运行demo.py。
摘要由CSDN通过智能技术生成

前述

EasyDL平台上具备简易方便的数据处理功能,增强清晰等功能很方便,数据集虽然不能下载,但可以和paddle平台互通,处理起来相当方便。训练好的模型部署起来相对麻烦,操作文档也比较老旧,对于新用户来操作,会有许多坑。这里来讲述一下,我遇到的问题。

官方文档

基础环境

ubuntu18.04 x86_64
paddlepaddle-gpu 1.8.5.post107 (文档写的1.2版本的,但是太旧了,已经连demo都跑不起来了,建议采用和我相同的版本)
cuda-10.1 (对应paddle版本)
cudnn7.6.5 (对应cuda版本)
基础版非必要组件:
OpenVINO™ toolkit 3.1LTS(这个下载链接,官方文档里只有个总官网,一开始还找了半天在哪里下载,这里直接给出下载地址)
pytorch(没下)

在这里插入图片描述
这里的easydl python wheel包,需要从这个页面下载SDK压缩包
在这里插入图片描述
解压后,在python文件夹中,找到对应.whl文件,主要对应python版本即可。


遇到的问题

cuda版本问题

最开始我也尝试过使用官方教程内提到的paddlepaddle-gpu 1.2.0版本,但是运行SDK包内的demo.py时,一直报错缺少模组,询问官方后,得到的建议是采用新版本的paddle。
在这里插入图片描述
新的paddle安装很容易,安装教程,但是cuda的切换没什么经验的话,就会很痛苦。

可以看我之前写的这篇教程 多版本CUDA共存并可手动切换


TensorRT的安装

在这里插入图片描述
这里自然下载的不是 7.0.0.11 for cuda9.0,而是
TensorRT 5.1.2.2 RC for Ubuntu 18.04 and CUDA 10.1 tar package
下载后,打开cpp文件夹,解压中间的文件夹,虽然是cuda10.0的,但实践过cuda10.1也支持的。原文件名太长,我就自己改短了。
在这里插入图片描述
下载完解压后,将TensorRT 文件夹 lib内的文件全部选中复制到 刚解压出来的文件夹 内的lib文件夹里,重名的直接替换。

然后是对文档内给的指令进行解释,有部分是没用的。

cd ${SDK_ROOT}  # 跳转到SDK目录下进行操作

# 1. 安装 python wheel 包
tar -xzvf python/*.tar.gz   # 意义不明,不需要使用
pip install -U {对应 Python 版本的 wheel 包}  # 这里前面已经安装过了,这里不需要重复

# 2. 设置 LD_LIBRARY_PATH
tar -xzvf cpp/*.tar.gz   # 不需要全解压,只需要解压对应cuda版本的,即10.0的

 # 这里不能直接用,需要跳转到cpp文件夹内才行。但这里也可以按我后面提到的操作实施。
export EDGE_ROOT=$(readlink -f $(ls -h | grep "baidu_easyedge_linux_cpp"))
export LD_LIBRARY_PATH=$EDGE_ROOT/lib # 同上

# 3. 运行 demo
python3 demo.py {RES文件夹路径}  {测试图片路径}

我的操作:

sudo vim ~/.bashrc

跳转到文件末尾,加入下面两句,但是不能直接使用,因为EDGE_ROOT的路径是不一样的,需要跟改成自己的。在自己的cpp文件夹内,选中解压后的文件夹,查看属性可直接获取绝对路径。

EDGE_ROOT= SDK路径/cpp/解压后的文件夹名

export EDGE_ROOT="/home/meroke/Develop_Tool/EasyEdge/cpp/baidu_easyedge_linux_cpp"
export LD_LIBRARY_PATH="$EDGE_ROOT/lib:$LD_LIBRARY_PATH"

最终运行demo.py成功!

ok,我所遇到的问题就全部解决了,希望能对你们起到帮助。

EasyDL是百度飞桨的一个模型库,它简化了深度学习模型的开发过程。SIFAR-10是一个经典的数据集,用于图像分类任务,包含10个类别的小飞机图片。 要在EasyDL上使用SIFAR-10数据集,你可以按照以下步骤操作: 1. **安装依赖**: 首先需要安装飞桨基础库 paddlepaddle 和 EasyDL。可以使用pip命令进行安装: ``` pip install paddlepaddle easydl ``` 2. **导入库并加载数据集**: 导入所需的模块,并通过EasyDL内置的`get_dataset`函数获取SIFAR-10数据集: ```python import paddlex as pdx train_data = pdx.datasets.SIFAR10(mode='train') eval_data = pdx.datasets.SIFAR10(mode='test') ``` 3. **预处理数据**: 对数据进行必要的预处理,比如归一化、随机裁剪等。这通常在创建`transforms`对象之后应用到训练集和验证集上: ```python transform = None # 根据需求定制你的transform train_transforms = transform.pipeline() eval_transforms = transform.pipeline() train_dataset = train_data.map(transforms=train_transforms) eval_dataset = eval_data.map(transforms=eval_transforms) ``` 4. **构建模型**: 使用EasyDL提供的预训练模型,如ResNet、MobileNet等,或者自定义网络结构: ```python model = pdx.cls.models.MobileNetV2(num_classes=10) # 10代表SIFAR-10有10个类别 ``` 5. **训练和评估模型**: 定义损失函数、优化器以及训练策略,然后开始训练: ```python config = dict( num_epochs=10, batch_size=128, learning_rate=0.001, use_gpu=True if paddle.device.cuda.is_available() else False ) model.train(train_dataset, eval_dataset, config=config) ``` 6. **保存和使用模型**: 训练完成后,可以将模型保存以便后续使用: ```python model.save('sifartest_model') ``` 完成上述步骤后,你就可以在EasyDL上基于SIFAR-10数据集训练一个模型了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值