Paddle2.5+PaddleDetect安装

文章目录

前言

安装paddle的时候,由于驱动是最新的,就硬着头皮上了最新的paddle。结果试试就逝世。

发现问题

我参照官网进行安装:

shell 复制代码
$ python -m pip install paddlepaddle-gpu==2.6.0.post120 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

然后再加上PaddleDetection

shell 复制代码
$ git clone https://github.com/PaddlePaddle/PaddleDetection.git
$ cd PaddleDetection
$ pip install -r requirements.txt -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

一顿操作猛如虎!

我们再来看看官方给我们留下来的安装说明:

shell 复制代码
$ python setup.py install

说是这样可以安装ppdet模块,这样就能让所有的东西都跑起来。

最后,测试一下官方用例:

shell 复制代码
$ python ppdet/modeling/tests/test_architectures.py

不成,说是libstdc++.so.6不太行。

shell 复制代码
ImportError: libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by paddle/base/libpaddle.so)

想点办法

根据日志,我们发现,本机的libstdc++.so.6最高支持的GLIBC只有3.4.29,但是paddle需要3.4.30

看了看其他人,直接改软连接就成了?试试就逝世!

shell 复制代码
$ sudo rm /usr/lib64/libstdc++.so.6
$ sudo ln -s ~/miniconda/envs/ppd/lib/libstdc++.so.6.0.32 /usr/lib64/libstdc++.so.6

没什么效果,还是显示一样的错误。

于是,我想着,可能是没有重启的原因。重启应该就生效了。

然后就真的逝世了。

桌面炸了:Oh no! Something has gone wrong.

玩大发了。于是我尝试了Ctrl+Alt+F2强行进入命令行模式,结果无法使用startx启动桌面。

那行,可能是修改了软连接的原因,我试着还原一下:

shell 复制代码
$ sudo rm /usr/lib64/libstdc++.so.6
$ sudo ln -s /usr/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6

没效果,桌面还是炸穿了。

真玩大发了。

先修复桌面

就在我万念俱灰准备重装的时候,也不知道是怎么想的,反正就是准备先把cuda卸了再说。

shell 复制代码
$ sudo ./usr/local/cuda/bin/cuda-uninstaller

这一步是为了将cudnn卸载干净。当然,也可以不这么做,因为重新安装的时候会覆盖掉的。

然后就是把剩下的东西全都删掉:

shell 复制代码
$ sudo rm -r /usr/local/cuda*

然后,我们尝试reboot,这个时候居然能看到桌面已经好了。

真是惊险。虽然不知道发生了什么,但是先感激一下莫名其妙的灵感。

复原CUDA

桌面修好了,就先把CUDA,安装回去吧。

shell 复制代码
sudo ./cuda-installer.sh

安装过程中记得不要勾选驱动,因为我们没有删除NVIDIA的驱动。

这里是我自己将下载的文件重命名了,所以是这个。如果没有重命名的话,就用原始名字安装就行。

最后,配置环境变量:

shell 复制代码
$ sudo vim /etc/profile.d/cuda.sh

输入这些内容:

shell 复制代码
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export CUDA_HOME=/usr/local/cuda/
export PATH=$PATH:$CUDA_HOME/bin:$LD_LIBRARY_PATH

然后生效:

shell 复制代码
$ source /etc/profile

Paddle安装

看来问题还是出在paddle上。应该怎么办呢?

在这里还是非常感谢Issue中的所有人,介绍了最终的解决方案。

实际上就是因为anaconda或者miniconda内置的gcc版本不够新的原因。当然,也有人在指责官方没有及时说明。

所以最终的解决方案就是------更改condagcc版本:

shell 复制代码
$ conda install -c conda-forge gcc=12.2.0

当然,conda需要设置镜像,否则上述命令将会失败。

修改版本后,paddle安装成功。

然后再测试一次:

shell 复制代码
$ python ppdet/modeling/tests/test_architectures.py

出现了输出:

shell 复制代码
Warning: Unable to use numba in PP-Tracking, please install numba, for example(python3.7): `pip install numba==0.56.4`
Warning: Unable to use numba in PP-Tracking, please install numba, for example(python3.7): `pip install numba==0.56.4`
W0226 16:00:55.449805 16554 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 7.5, Driver API Version: 12.3, Runtime API Version: 12.0
W0226 16:00:55.450834 16554 gpu_resources.cc:149] device: 0, cuDNN Version: 8.9.
.......
----------------------------------------------------------------------
Ran 7 tests in 0.735s

OK

这就彻底完成了。

相关推荐
莱茶荼菜28 分钟前
Ubuntu 20.04 系统库管理详细教程
linux·运维·ubuntu
迅为电子1 小时前
嵌入式Linux新手入门:北京迅为3568开发板驱动开发第二章helloworld 驱动实验
linux·运维·驱动开发
nono牛4 小时前
MTK平台详解`adb devices`输出的序列号组成
android·linux·adb·智能手机
catoop5 小时前
Linux 自动清理临时文件配置
linux·服务器
Xの哲學5 小时前
Linux eMMC子系统深度解析:从硬件协议到内核实现
linux·网络·算法·架构·边缘计算
亚林瓜子5 小时前
在amazon linux 2023上面通过Fedora 36软件仓库源安装tesseract5
linux·运维·服务器·ocr·tesseract·amazon·fedor
是专家不是砖家5 小时前
linux USB摄像头不停掉线问题
linux·运维·服务器
yuanManGan5 小时前
走进Linux的世界:初识进程(Task)
linux·运维·服务器
NiKo_W5 小时前
Linux UdpSocket的应用
linux·服务器·网络·内核·线程
稚辉君.MCA_P8_Java5 小时前
深入理解 TCP;场景复现,掌握鲜为人知的细节
java·linux·网络·tcp/ip·kubernetes