解决方法
sudo find / -name libcuhash.so
输入:export LD_LIBRARY_PATH=/root/.local/lib/python3.7/site-packages/spconv:“${LD_LIBRARY_PATH}”
:参照OSError: libcuhash.so: cannot open shared object file: No such file or directory
2.遇到问题:TypeError: expected str, bytes or os.PathLike object, not NoneType
解决方法:python train/test/demo.py时,后面没有加路径,可以改为
python train.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml
python test.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --batch_size 1 --ckpt /root/PointCloudDet3D/output/kitti_models/pv_rcnn/default/ckpt/checkpoint_epoch_51.pth --save_to_file
python demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --ckpt /root/PointCloudDet3D/output/kitti_models/pv_rcnn/default/ckpt/checkpoint_epoch_51.pth --data_path /root/PointCloudDet3D/data/kitti
train.py:train.py 文件后面需要加上需要训练模型的位置.(即yaml)
test.py:除了yaml路径外,还需要加入pth数据的位置,一般都放在output中(train后才会生成,否则木有文件数据)
demo.py:运行代码,除了需要加上ckpt中训练的pth路径外,还需要加上data的路径,即 /root/PointCloudDet3D/data/kitti,否则也会报错。
如果加上仍然报错,可能是程序本身的问题。
3.遇到问题:RuntimeError: The detected CUDA version (10.1) mismatches the version that was used to compile PyTorch (10.2). Please make sure to use the same CUDA versions.
解决方法:删除高版本torch,找到适合CUDA的torch低版本,对应好torchvision。
4.遇到问题:Unable to locate package xxx
解决方法:apt-get update升级乌班图
5.遇到问题:用apt-get出现以下错误:
Failed to fetch http://archive.ubuntu.com/ubuntu/pool/universe/p/p7zip/p7zip_16.02+dfsg-6_amd64.deb Temporary failure resolving ‘archive.ubuntu.com’
解决方法:
①如果是网络问题:
用vim编辑器进行添加DNS
(1)使用sudo vi /etc/resolv.conf
(2)按i插入:
(3)nameserver 202.96.134.133
(4)nameserver 8.8.8.8
(5)按Esc退出,并输入:wq!强制退出并保存。
(6)用vim /etc/apt/sources.list进入镜像源界面
(7)再用sudo apt-get update进行更新。
②如果不是网络问题:
不要在指令前加sudo,例如: sudo apt-get update改为 apt-get update。
6.遇到问题:Linux出现“E45: ‘readonly‘ option is set (add ! to override)”
解决方法:
该错误为当前用户没有权限对文件作修改,如果是root权限,可以:wq! 强行保存退出;
7.遇到问题:Linux修改文件出现[O]pen Read-Only、(E)dit anyway、®ecover解决方法
解决方法:
[O]pen Read-Only: 打开此档案成为只读档, 可以用在你只是想要查阅该档案内容并不想要进行编辑行为时。
(E)dit anyway:还是用正常的方式打开你要编辑的那个档案, 并不会载入暂存盘的内容。不过很容易出现两个使用者互相改变对方的档案等问题!
( R )ecover: 就是加载暂存盘的内容,用在你要救回之前未储存的工作。 不过当你救回来并且储存离开 vim 后,还是要手动自行删除那个暂存档喔!
(D)elete it: 你确定那个暂存档是无用的!那么开启档案前会先将这个暂存盘删除! 这个动作其实是比较常做的!因为你可能不确定这个暂存档是怎么来的,所以就删除掉他吧!
(Q)uit: 按下 q 就离开 vim ,不会进行任何动作回到命令提示字符。
(A)bort: 忽略这个编辑行为
8.遇到问题:unzip解压不了KITTI大数据压缩包
解决方法:使用jar命令进行解压,jar xvf xxxx.zip,xvf前不要加-
9.遇到问题:Unable to locate package错误解决
解决方法: apt-get update (不要加sudo)
apt-get upgrade
10.压缩解压缩zip
安装:apt-get install zip
zip xxx.zip xxx
或者pip install zip
11.遇到问题:Failed to build mayavi
解决方法:pip install vtk==8.1.2
将VTK版本降级
12.安装yum
解决方法:apt-get install yum
13.遇到问题:
Undifined symbol:ZN6caffe28TypeMeta21_typeMetaDataInstanceIN3c107complexINS2_4HalfEEEEEPKNS
解决方法:
可能1:torch版本太高,cuda10.1适合安装torch1.5.0-torch1.7.0。推荐使用torch1.6.0,目前没有出错,其他两个版本依旧报错。
可能2:其他第三方库版本太高或太低,例如安装mmdet时,mmcv-full安装1.6.2就会报出这样的错误,而mmcv-full==1.6.1时就不会。
14.遇到问题:
TypeError: load() missing 1 required positional argument: ‘Loader‘?
解决方法:
Yaml 5.1版本之后就弃用了不安全的load加载方式,需要在load方法中加入指定的加载器,或者使用安全加载api, 通过默认加载器使load函数的安全得到加强。
直接安装指定版本下的 yaml 包即可
pip uninstall pyyaml
pip install pyyaml==5.1
15.遇到问题:libtorch_cpu.so找不到
解决方法:安装torch1.8.0 以上版本,否则torch/lib里没有该文件,所以采用find命令进行查找。
sudo find / -name libtorch_cpu.so
查到相应的路径用下列代码
export LD_LIBRARY_PATH=文件路径:"${LD_LIBRARY_PATH}"
例如:
export LD_LIBRARY_PATH=/usr/local/lib/python3.6/dist-packages/torch/lib:"${LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH=/opt/conda/envs/pytorch1.8/lib/python3.9/site-packages/torch/lib:"${LD_LIBRARY_PATH}"
16. 遇到问题:
python: symbol lookup error: /root/.local/lib/python3.7/site-packages/torch/_C.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _Z10initModulev
解决方法:pytorch版本太低,需要用torch1.5及以上的。
17.遇到问题
OSError: /root/.local/lib/python3.7/site-packages/spconv/libspconv.so: undefined symbol: _ZN6caffe28TypeMeta21_typeMetaDataInstanceISt7complexIdEEEPKNS_6detail12TypeMetaDataEv
解决方法:spconv虽然安装上了,但是安装有缺口,需要重新配置。
或者是由于版本不适配的问题。
18.遇到问题
ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory
解决方法:
这是CUDA10.0版本的东西,
通过find找到该文件:
sudo find / -name libcudart.so.10.0
找到文件路径,/usr/local/lib/python3.6/dist- packages/cntk/libs/libcudart.so.10.0
将上面的路径添加到临时路径
export LD_LIBRARY_PATH=/usr/local/lib/python3.6/dist-packages/cntk/libs:"${LD_LIBRARY_PATH}"
find查找后,发现文件是在python3.6的cntk文件夹下,我的环境是python3.7,不能安装cntk(cntk最高版本只支持python 3.6),只能通过export 临时加入环境变量。
19.安装cmake但查不到
解决方法:
这是cmake安装命令(在本地安装):
#解压
tar -xvzf cmake-3.15.3.tar.gz
cd cmake-3.15.3
./bootstrap #执行引导文件
#该命令执行需要一定时间,请耐心等待。成功执行结束之后,末尾提示:CMake has bootstrapped. Now run make.
make
sudo make install
cmake --version
cd ..
rm -rf cmake-3.15.3 #清理安装源代码
pip install cmake==3.15.3
前面时建立安装环境,最后还需要加上pip install cmake==3.15.3否则还是显示没安装上。
20.安装spconv时运行python setup.py bdist_wheel出错
问题如下:
subprocess.CalledProcessError: Command ‘[‘cmake’, ‘/home/zdj/spconv’, ‘-DCMAKE_PREFIX_PATH=/home/zdj/anaconda3/envs/pytorch/lib/python3.7/site-packages/torch’, ‘-DPYBIND11_PYTHON_VERSION=3.7’, ‘-DSPCONV_BuildTests=OFF’, ‘-DPYTORCH_VERSION=10600’, ‘-DCMAKE_CUDA_FLAGS=“–expt-relaxed-constexpr” -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__’, ‘-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/zdj/spconv/build/lib.linux-x86_64-3.7/spconv’, ‘-DCMAKE_BUILD_TYPE=Release’]’ returned non-zero exit status 1.
可能1:
解决方案:
此问题说明spconv安装缺文件,从官方下载下来的spconv1.2.1,文件夹下的third_party/pybind11是空的,需要自己手动去下载。
pybind11链接:
https://github.com/pybind/pybind11/tree/3b1dbebabc801c9cf6f0953a4c20b904d444f879
可能2:电脑是30系列显卡时,需要安装CUDA11.x,属于高版本,spconv需要安装2.x。
每台主机问题多种多样,出现这种问题很多情况下是版本不适配。
21.遇到问题:
ImportError: cannot import name ‘spconv_utils’ from ‘spconv’ (/root/spconv-1.2.1/spconv/init.py)
解决方案:
卸载了重新装,就是这么神奇。
借鉴:spconv库安装成功但是无法import
22.遇到问题:TypeError: zip argument #1 must support iteration
答:
可能1:
首先需要安装zip,用指令apt-get install zip进行执行
可能2:
程序本身有问题,用pcdet0.3.0运行时出现的错误,转用pcdet0.5.2就可以运行。
23.遇到问题:装过一次pcdet,仍然还出现ModuleNotFoundError: No module named ‘pcdet’
解决方法:再次执行pyhton setup.py develop进行安装。
24.遇到问题:
FileNotFoundError: [Errno 2] No such file or directory: '/media/hpc/FED242EAD242A6AD/data/kitti/kitti_dbinfos_train.pkl
解决方法:
①更改数据生成路径:
来到/pcdet/pcdet/datasets/kitti/kitti_dataset.py文件:
倒数第三行和倒数第四行修改data_path和save_path,修改为
data_path=ROOT_DIR / ‘pcdet’ / ‘data’ / ‘kitti’,
save_path=ROOT_DIR/ ‘pcdet’ / ‘data’ / ‘kitti’。
②更改数据索引路径
来到/pcdet/tools/cfgs/datasets_configs/kitti_dataset.yaml文件:
修改第二行路径DATA_PATH为DATA_PATH: ‘/root/pcdet/data/kitti’。
25.遇到问题:TypeError: Caught TypeError in DataLoader worker process 0.
该错误是关于DataLoader进行训练数据的存取工作线程的问题
解决方法:
在/pcdet/pcdet/datasets/init.py:存着build_dataloader,里面有DataLoader函数——数据加载器,64行,将num_workers=works中的works直接改为0。
切忌将上面的works改为0,否则仍然没有用,直接删掉改为0就好。
26.遇到问题:TypeError: cannot unpack non-iterable NoneType object
答:程序有问题,请换一个程序包尝试。用pcdet0.3.0运行时出现的错误,转用pcdet0.5.2就可以运行。
27.遇到问题:TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType
答:训练test.py时后面需要加上cfgs的访问地址和ckpt的访问地址,如下:
python test.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --batch_size 1 --ckpt /root/PointCloudDet3D/output/kitti_models/pv_rcnn/default/ckpt/checkpoint_epoch_51.pth --save_to_file
这个地址就是训练模型yaml的地址和训练好的pth的地址,pth只有在train过后才会自动生成。
28.遇到问题:ImportError: cannot import name ‘iou3d_nms_cuda’ from ‘pcdet.ops.iou3d_nms’
答:
可能1:
pcdet安装版本太低,问题中提到的错误是高版本的东西。如果用pcdet0.3.0安装,却运行了pcdet0.5.2的东西,则会出现这种错误。
需要再次安装高版本的pcdet,即python pcdet.py develop。
可能2:
程序包本身错误。
29.遇到问题:ModuleNotFoundError: No module named ‘spconv.pytorch’
答:pcdet版本太高,spconv与pcdet不匹配。
30.遇到问题:FileNotFoundError: [Errno 2] No such file or directory: ‘/root/PointCloudDet3D/data/kitti_big/kitti_dbinfos_train.pkl’
答:data里头没数据,需要生成数据或者拷贝数据,或者缺少某些文件。
具体生成文件可以下载:
链接:https://pan.baidu.com/s/1JORT2ZJ_fwintcY0m7DhIg?pwd=6666
提取码:6666