Paddle2+PaddleDetect安装
前言
安装paddle的时候,由于驱动是最新的,就硬着头皮上了最新的paddle
。结果试试就逝世。
发现问题
我参照官网进行安装:
1 | python -m pip install paddlepaddle-gpu==2.6.0.post120 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html |
然后再加上PaddleDetection
:
1 | git clone https://github.com/PaddlePaddle/PaddleDetection.git |
一顿操作猛如虎!
我们再来看看官方给我们留下来的安装说明:
1 | python setup.py install |
说是这样可以安装ppdet
模块,这样就能让所有的东西都跑起来。
最后,测试一下官方用例:
1 | python ppdet/modeling/tests/test_architectures.py |
不成,说是libstdc++.so.6
不太行。
1 | 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
。
看了看其他人,直接改软连接就成了?试试就逝世!
1 | sudo rm /usr/lib64/libstdc++.so.6 |
没什么效果,还是显示一样的错误。
于是,我想着,可能是没有重启的原因。重启应该就生效了。
然后就真的逝世了。
桌面炸了:Oh no! Something has gone wrong.
玩大发了。于是我尝试了Ctrl
+Alt
+F1
强行进入命令行模式,结果无法使用startx
启动桌面。
那行,可能是修改了软连接的原因,我试着还原一下:
1 | sudo rm /usr/lib64/libstdc++.so.6 |
没效果,桌面还是炸穿了。
真玩大发了。最难受的是,我都不知道日志在哪,也不知道到底是错了什么。
先修复桌面
就在我万念俱灰准备重装的时候,也不知道是怎么想的,反正就是准备先把cuda
卸了再说。
1 | sudo ./usr/local/cuda/bin/cuda-uninstaller |
这一步是为了将cudnn
卸载干净。当然,也可以不这么做,因为重新安装的时候会覆盖掉的。
然后就是把剩下的东西全都删掉:
1 | sudo rm -r /usr/local/cuda* |
然后,我们尝试reboot
,这个时候能看到桌面已经好了。
真是惊险。
复原CUDA
桌面修好了,就先把CUDA
,安装回去吧。
1 | sudo ./cuda-installer.sh |
安装过程中记得不要勾选驱动,因为我们没有删除NVIDIA
的驱动。
这里是我自己将下载的文件重命名了,所以是这个。如果没有重命名的话,就用原始名字安装就行。
最后,配置环境变量:
1 | sudo vim /etc/profile.d/cuda.sh |
输入这些内容:
1 | export LD_LIBRARY_PATH=/usr/local/cuda/lib64 |
然后生效:
1 | source /etc/profile |
Paddle安装
看来问题还是出在paddle
上。应该怎么办呢?
在这里还是非常感谢Issue中的所有人,介绍了最终的解决方案。
实际上就是因为anaconda
或者miniconda
内置的gcc
版本不够新的原因。当然,也有人在指责官方没有及时说明。
所以最终的解决方案就是——更改conda
的gcc
版本:
1 | conda install -c conda-forge gcc=12.2.0 |
当然,conda
需要设置镜像,否则上述命令将会失败。
修改版本后,paddle
安装成功。
然后再测试一次:
1 | python ppdet/modeling/tests/test_architectures.py |
出现了输出:
1 | Warning: Unable to use numba in PP-Tracking, please install numba, for example(python3.7): `pip install numba==0.56.4` |
这就彻底完成了。