FCOS的坑实在太多了,踩了一个又一个,记录下吧,以免又忘了
1.AttributeError: module 'torch._six' has no attribute 'PY3'
解决:这个文件/FCOS/FCOS/fcos_core/utils/imports.py
if torch._six.PY3:
改为
if torch._six.PY37:
2.no module named 'fcos_core'
解决:在train.py或test.py(哪个文件运行出错了就修改哪个)最上面加上
import sys
sys.path.append('/home/FCOS/FCOS') #('/home/FCOS/FCOS'这个路径为fcos_core文件的路径,记得加单引号)
3.cannot import name '_C'或ImportError: cannot import name '_C'
是cpp_extension.py中的ninja设置,由-v更改称--version
4.Image.open()报错,提示 image file is truncated (12 bytes not processed)
在train_net.py文件开头加
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
4.ImportError: /home/FCOS/FCOS/fcos_core/_C.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28TypeMeta21_typeMetaDataInstanceISt7complexIdEEEPKNS_6detail12TypeMetaDataEv
我打开_C.cpython-38-x86_64-linux-gnu.so为乱码,应该是由于这个出问题的,找不着答案啊啊啊。。。
_C.cpython-38-x86_64-linux-gnu.so谁有这个文件能运行出来没错误麻烦踢我一下,谢谢了
------------------------------------------------------------------------------------
更新,我又回来了,突然发现了问题,cuda和pytorch不匹配导致的上述错误,找到了一个解决方案试了下成功了:
按以上配置删掉环境重新来了一次,成功了,上述1.2.3问题均未出现,所以出一些奇奇怪怪的问题可能就是各种版本不匹配(cuda/cudnn/python/pytorch/torchvision)的原因,请仔细检查。
---------------------------------------------------------------------------------------
再更,具体把配置步骤再写一遍
#1.查看cuda和cudnn版本,并检查他们是否对应
cat /usr/local/cuda/version.txt #查看cuda版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 #查看cudnn版本
#2.开始安装(有的语句我不知道用处是什么,就原封不动用了)
conda create --name FCOS python=3.6 #创建虚拟环境FCOS,python为3.6版本
source activate FCOS #激活虚拟环境FCOS
python #查看python版本,看不看都行,就是确认一下
conda install ipython
pip install ninja yacs cython matplotlib tqdm
conda install pytorch=1.0.0 torchvision=0.2.1 cudatoolkit=10.0 -c pytorch
#指定pytorch版本为1.0.0 torchvision版本为0.2.1 cuda版本为10.0(注意要和刚刚查到的一致),也可以指定其他版本,这个版本我试了没问题
cd XXX #XXX为你想把FCOS文件放的目录
cd $INSTALL_DIR
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
python setup.py build_ext install
#注意上面有四句话,千万别少一句
cd $INSTALL_DIR
git clone https://github.com/tianzhi0549/FCOS.git
cd FCOS
python setup.py build develop --no-deps
unset INSTALL_DIR
3.运行demo
wget https://cloudstor.aarnet.edu.au/plus/s/ZSAqNJB96hA71Yf/download -O FCOS_imprv_R_50_FPN_1x.pth
python demo/fcos_demo.py
4.运行train及test
先把数据库弄好,以免找不到文件
欢迎批评指正讨论。