基于Paddle2.4.0训练报错Debug
- 一、环境简介
- 二、Debug过程
- 错误一Debug
- 错误二Debug
- 错误三Debug
- 更换PaddlePaddle版本
- 三、总结
- 参考文档
一、环境简介
本文背景为使用AutoDL网站的租借显卡进行网络训练,训练环境如下:
操作系统:Ubuntu18.04;
Python:3.8;
PaddlePaddle-GPU:2.4.0;
CUDA:11.2;
PaddleX:2.1.0;
显卡:RTX3090。
二、Debug过程
在网站选定租借显卡的型号后,可根据自己所需的试验环境,选择网站预先配置好的如Tensorflow等训练架构环境,本文训练基于Paddle,而Paddle有两个版本供选择,分别为2.2.0与2.4.0,Paddle官网最新版本为2.4.1,因此选择2.4.0,如上图创建训练环境。
创建环境后,首先打开命令行输入如下命令,安装paddlex:
pip install paddlex -i https://mirror.baidu.com/pypi/simple
安装完成后,开始运行训练代码,结果报出以下错误:
错误一Debug
libpython3.8.so.1.0: cannot open shared object file: No such file or directory
通过搜索,解决方法如下:
首先命令行输入如下命令,查找libpython3.8.so.1.0文件路径:
find / -name libpython3.8.so.1.0
搜索得到如下两个文件路径:
输入如下命令,复制到/usr/lib文件夹下:
cp /root/miniconda3/lib/libpython3.8.so.1.0 /usr/lib
错误得到解决,尝试运行程序报出错误二。
错误二Debug
No module named ‘filelock’
使用pip安装filelock包,错误得到解决:
pip install filelock
继续尝试运行程序,得到错误三。
错误三Debug
ValueError:(InvalidArgument) argsort():argument ‘X’ (position 0)must be Tensor,but got Tensor…
经搜索在GitHubPaddleX的issue中得到信息,可能由于PaddlePaddle2.4.0存在bug,因此重新进行环境选择。
更换PaddlePaddle版本
选择PaddlePaddle2.2.0创建环境,如下图所示:
环境创建完成后安装PaddleX,安装后运行程序代码,结果报出上述错误二,按照解决方法解决后,程序顺利运行。
三、总结
在Ubuntu系统下,基于RTX3090显卡,使用PaddlePaddle2.4.0进行训练存在较多问题,而更换2.2.0版本后只有少量错误且能够解决,对于PaddlePaddle其他版本未进行测试。
参考文档
编译安装error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object fi
How to fix “ModuleNotFoundError: No module named ‘filelock’”
PaddleX推理程序报错:ValueError: (InvalidArgument) generate_proposals_v2(): argument ‘Scores’ (position 0) must be Tensor, but got Tensor (at …\paddle\fluid\pybind\op_function_common.cc:818)