tf1.10或者pytorch1.5.0+cuda9+3070测试翻车,初始化时间长,inference结果异常;更新cuda11+tf2.3或者pytorch1.8.0+3070 测试OK,经查询是cuda版本10.0不能再RTX30系列上跑,更换版本吧。坑了我两天,总是会卡在那里,不动,过了很久好了,测过去了,但是这样是无法使用的。
is_available()是TRUE,但是转cuda的时候会卡住很久,差不多会有十几分钟,之后也会好,然后再调取cuda()函数,就会比较快了,无法查找到原因,后来查找到了原因。
原因:RTX30系列显卡是Nvidia在2020年10月份发布的最新型号,很多AI库都不支持,主要原因是RTX30只支持CUDA11.1版本,而大多数AI平台对CUDA11.1都还没有支持。
https://developer.nvidia.com/cuda-11.1.0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
CUDA11.1安装时,不需要安装driver;因为一般都已经有了驱动了,我是之前安装过466的NVIDIA显卡驱动了,其实原厂也自带;
安装完之后查看和配置环境变量(系统默认已经添加好了,无需手动配置):
nvcc -V
https://developer.nvidia.com/rdp/cudnn-archive
(此处需要登录账号,才可以下载,建议注册一个。)
安装CUDNN,就是复制文件
解压文件夹,将解压后的文件夹下的文件拷贝到cuda安装目录下,与之相对应的文件夹下。
注意点:一台电脑可以有多个CUDA环境,也可以驱动版本和CUDA版本不对应,并不影响使用;但是配置全局环境变量路径前后关系会对真实使用的CUDA版本有影响,要把需要用的CUDA版本的环境变量路径往前提。
Anaconda3-2019.10-Windows-x86_64.exe,该版本是python3.7的,这个不做限制。
之所以用conda虚拟环境,是因为后期会有不同版本的环境要在一起用;
这里总结了conda和PIP的几种常用技巧
pip install 指定版本
pip install scikit-learn==0.18.0
pip install 指定源
pip install numpy -i http://pypi.douban.com/simple/
pip install 本地文件:略
conda install 指定版本
conda install scikit-learn=0.18.0
conda install 本地文件
conda install --use-local pytorch-1.2.0-py3.5_cuda100_cudnn7_1.tar.bz2
conda install 指定源
希望从默认通道以外通道安装,指定通道的方法是 conda install -c channel_name package_name;
conda 增加源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/
conda create -n detectron2_040 python=3.7
conda init
conda activate detectron2_011
下载并安装 VS2019
https://docs.microsoft.com/en-us/answers/questions/136595/error-microsoft-visual-c-140-or-greater-is-require.html
下载并安装 visual-cpp-build-tools
https://visualstudio.microsoft.com/zh-hant/visual-cpp-build-tools/
根据自己的需求来选择,查找安装语句:
当前版本:
https://pytorch.org/get-started/locally/
历史版本:
https://pytorch.org/get-started/previous-versions/
得到安装语句,以下两句均可以,但是以下两句存在的问题是下载速度慢。
conda install pytorch=1.8.0 torchvision==0.9.0 cudatoolkit=11.1 -c pytorch
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge
-c pytorch -c conda-forge这些都是附加库、指定源的名字;
如果设置了清华源,以下这句会快很多
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1
但是,pytorch和cudatoolkit安装包很大,国内网络速度不行,建议到网络条件好的情况下安装。
离线查询地址,所有Pytorch包的地址:https://download.pytorch.org/whl/torch_stable.html,国内下载慢,可以手工下载;
可以通过关键词查找,1.5.0%2Bcu111
安装后得到的结果:
综上,这个过程中,会安装很多的依赖包,这也是用conda的优势。
因为这CUDA和CUDAToolkit.whl2个文件都很大,下载起来非常费劲,所以引发了这个问题的思考。别人的解释(https://www.cnblogs.com/yhjoker/p/10972795.html)。
CUDAToolkit.whl与通过 Nvidia 官方 CUDA Toolkit 是不一样的。Nvidia 官方提供的 CUDA Toolkit 是一个完整的工具安装包, Nvidia 驱动程序、开发 CUDA 程序。使用 Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等。但对于 Pytorch 深度学习框架而言,其在大多数需要使用 GPU 的情况中只需要使用 CUDA 的动态链接库支持程序的运行( Pytorch 本身与 CUDA 相关的部分是提前编译好的 ),就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。Anaconda 在安装 Pytorch 等会使用到 CUDA 的框架时,会自动为用户安装 cudatoolkit,其主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。在安装了CUDAToolkit.whl后,系统上存在与当前的 CUDAToolkit.whl所兼容的 Nvidia 驱动,则程序可直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit 。
那么是否真的是这样呢?
我做了一个实验,我将path路径中的CUDA11.1的路径下移了,然后系统中可以检测到的CUDA版本为10.1的了,这是之前安装的。
然后,再执行detectron2的检测代码,仍可以正常检测。
结论,其实转Pytorch,很简单,在网络条件好的情况下只需要几行代码,CUDA和CUDNN都是不需要的。
pip install cython opencv-python pillow matplotlib termcolor cloudpickle tabulate tensorboard termcolor tqdm yacs mock fvcore pydot wheel futrue
pip install opencv-python -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip3 install python-dateutil
pip install pywin32==223 (注释:pip install pywin32只会安装一个很小的文件1.7KB的,不对;如果用228会出现 import win32file ImportError: DLL load failed: 找不到指定的程序。 问题原因224、225新版本发布的有问题,回退到223版本即可)
因为pycocotools不支持windows,但是有大神已经修改出了windows版本,https://github.com/philferriere/cocoapi。
执行
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
如果以上方法不能通过
可以直接去git包安装包下载下来
git clone https://github.com/philferriere/cocoapi.git
然后进入到文件夹之下:
python setup.py build_ext install
pip install -U 'git+https://github.com/facebookresearch/fvcore.git'
如果以上方法不能通过
下载文件
git clone https://github.com/facebookresearch/fvcore.git
然后本地编译
python setup.py build --force develop
git clone -b v0.4.0 https://github.com/facebookresearch/detectron2.git
这是之前detectron2 0.1.3 中别人给出的修改建议,至于0.4.0中是否仍完全需要,还没逐个确认,我的方法是报错了就查询。
这里做了修改
5、D:\ProgramData\Anaconda3\envs\detectron2\Lib\site-packages\torch\utils\cpp_extension.py
match = re.search(r'(\d+)\.(\d+)\.(\d+)', compiler_info.decode("utf8","ignore").strip())
python setup.py build develop
找不到cl.exe文件
这是用于C++编译的工具;
如果找不到,就需要重新安装一下VS2019,补充部分插件
python setup.py clean --all
python setup.py build --force develop
希望卸载掉之前安装的detectron2的package,需要用pip uninstall
这些报错让人心烦意乱,也是为何大家都不推荐使用windows来做DL的关键原因。
可以运行目标检测、实例分割、关键点检测、全景分割
需要提前下载好pkl的model文件。
python demo/demo.py --config-file configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml --input image/test.jpg --output image/test_result.jpg --opts MODEL.WEIGHTS 'model/model_final_280758.pkl'
python demo/demo.py --config-file configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --input image/test1.jpg --output image/test1_result.jpg --opts MODEL.WEIGHTS 'model/model_final_f10217.pkl'
python demo/demo.py --config-file configs/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x.yaml --input image/test2.jpg --output image/test2_result.jpg --opts MODEL.WEIGHTS 'model/model_final_a6e10b.pkl'
python demo/demo.py --config-file configs/COCO-PanopticSegmentation/panoptic_fpn_R_101_3x.yaml --input image/test3.jpg --output image/test3_result.jpg --opts MODEL.WEIGHTS 'model/model_final_cafdb1.pkl'
Win10上实现了Detectron2环境,对于接下来的测试实验是非常有意义的。
总结整个流程,以上有些步骤是不需要做的,比如CUDA的安装。可以按照下步骤来做。
也给出基本思路的完整代码(这是重点,通篇其实只用这里就可以了,但是如果第一次安装,建议把全部的看一遍,因为第一次安装时无法完全理解这些句子报错时该怎么办的)
基本思路:
(1)安装好vs2019、anaconda2019;
(2)pytorch:conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge
(3)pip install cython opencv-python pillow matplotlib termcolor cloudpickle tabulate tensorboard termcolor tqdm yacs mock fvcore pydot wheel futruepip install opencv-python -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.compip3 install python-dateutilpip install pywin32==223
(4)部分git的包需要离线编译(国内网络条件会有影响);git clone https://github.com/philferriere/cocoapi.gitpython setup.py build_ext installgit clone https://github.com/facebookresearch/fvcore.gitpython setup.py build --force develop
(5)detectron2git clone -b v0.4.0 https://github.com/facebookresearch/detectron2.gitpython setup.py build develop
(6)detectron2预测python demo/demo.py --config-file configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml --input image/test.jpg --output image/test_result.jpg --opts MODEL.WEIGHTS 'model/model_final_280758.pkl'
pip install pymongo -i https://pipy.douban.com/simple
快速安装
pip install 插件名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install opencv-python -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install --upgrade numpy
power shell 记录日志 Start-Transcript Stop-Transcript;
学习blog:https://blog.csdn.net/haiyangyunbao813/article/details/115106759
学习视频:https://www.bilibili.com/video/BV1jZ4y1W7Nb?from=search&seid=10032041260057596327