目录
2.3 python版本和tensorflow-gpu1.15
2.4 Mask-Rcnn下载和requirements.txt安装
一、Mask-Rcnn简介
没来得及写。
二、环境搭建
2.1 Anaconda4.7
建议使用conda创建的虚拟环境,本人把通过python官网下载的系统python卸载了,感觉使用了Anaconda就没有必要再下一个系统python了。
Anaconda官网下载链接如下:立即下载 |蟒蛇 (anaconda.com)
这里不用纠结Anaconda版本。
2.2 cuda和cudnn配置
我的电脑显卡型号为RTX 2070,支持的cuda最高为cuda12.1,但是懂的都懂,Mask-Rcnn给的requirements.txt但凡姿势不对,出现什么差错都有可能。笔者的安装路程从cuda12.1->cuda11.2->cuda10.2->cuda10.1->cuda10.0,所以建议根据本篇文章操作安装tensorflow-gpu1.15的友友安装cuda10.0,以下是我的显卡和cuda。
我使用的cudnn版本是7.6的,其实这里感觉也不用太纠结,以下是cuda各个版本和cudnn各个版本的下载链接:
cuda:CUDA Toolkit Archive | NVIDIA Developer
cudnn:https://developer.nvidia.com/rdp/cudnn-archive
cudnn的加载过程有点慢,也可能会断开,但是不要放弃,多刷新几次就好。
至于cuda和cudnn的安装过程,网上随便搜就可以,也没有太复杂,笔者安装几次,环境配置都记住了。但是关于安装错了版本,卸载cuda的过程有必要说一下:
首先,建议使用win10的控制面板进行组件的卸载,笔者没有用过win11,win11的不太清楚。
cuda安装的都是组件,所以不用太纠结卸载顺序,当然笔者是由上到下卸载的,读者可以参考一下这个姿势。cuda组件中NVIDIA 图形驱动程序和NVIDIA PhysX 系统软件可以不用卸载,笔者就是保留了cuda12.1版本的组件,其他的都可以卸载,cuda11.x和cuda10.x都可以参照这个过程。把所有组件卸载之后,就可以发现cuda安装路径中的文件基本被删除,可以手动将所有文件删除。
将组件卸载之后,到环境变量中可以发现,cuda的环境变量被删除了,但是Path中的cuDNN的环境变量还在,因为是手动添加的,需要手动删除(配置也可以按照这个来)。
最后还有一件事,cuda10.0的安装过程中,需要使用vs,笔者之前安装10.2和10.1的时候使用vs2019没有出现什么问题,但是安装cuda10.0的时候出现没有匹配的vs的错误,所以对cuda10.0来说vs2019还是版本高了,如果有vs2017的话可以换一下。当然笔者点击无视继续安装了,最后也安装成功了。
2.3 python版本和tensorflow-gpu1.15
笔者查询的资料发现大多使用的python版本是python3.6,我开始也是使用python3.6,也能够成功使用tensorflow-gpu1.15,但是在配置mask-rcnn的requirements.txt的时候,发现openCV库在build一个py开头的库的时候,要么卡着,要么就直接报错,说缺少了一个什么文件或者忘了,百度了一下说是要升级pip,但是python3.6的pip好像升级不了24的,我试了一下还是报错的。所以尝试了python3.7的,也能够使用tensorflow-gpu1.15,并且在install requirements.txt的时候没有任何报错。
所以建议读者可以都试一下,python3.6和python3.7,网络的人说Python3.6的兼容性会好一些。
2.4 Mask-Rcnn下载和requirements.txt安装
Mask-Rcnn下载的还是matterport的源代码,链接是:https://github.com/matterport/Mask_RCNN
当然如果github对国内也不太友好,建议使用clash翻个墙,会快很多,不过这里注意的是我在pip install没有翻墙,也没有使用任何镜像,清华的镜像一直timeout,很无奈。小白点击Code下载Zip即可。
源文件给的requirements.txt是:
如果直接下载的话大概率会报错,可以参考一下我的requirements.txt,当然不唯一。
最后安装安装pycocotools,网上有很多安装方案,但是我是直接pip install pycocotools就行了,安装的是2.0.7版本的:
到这还没结束,还有一个库的问题,就是protobuf库,后面使用tensorflow的时候会报错protobuf库的版本太高,默认会高出3.19版的,需要手动降板,建议安装为3.19.6的,因为貌似3.19.0的不行,因为其他库的要求:
pip install --upgrade protobuf==3.19.6
至此,Mask-Rcnn的环境就配置好了。
2.5 Pycharm使用conda环境
使用conda创建一个Python3.7的环境,然后使用Pycharm打开Mask-Rcnn项目,在Pycharm找到conda创建的项目的python解释器即可:
三、splash测试
进入pycharm项目,找到mask-rcnn项目的balloon.py,首先进行预测测试,从Releases · matterport/Mask_RCNN · GitHub 下载ballon数据集和mask_rcnn_balloon.h5权重文件,将其放在和balloon.py同一文件夹下,然后右键balloon.py文件,进行参数配置:
然后运行balloon.py文件,正常的话应该可以得到结果(这是我自己训练的权重文件得到的):
四、train测试
train测试也是使用balloon_dataset文件,只需要进行参数配置即可,配置如下:
当然,数据集只需要balloon文件夹的路径即可,权重文件可选择coco,也可以自己在github上下载,默认的训练是epochs=30,每个epochs100次,只是进行训练测试,这个感觉太多,可以按照自己的情况减少,我改了5,训练了大概20分钟:
model.train(dataset_train, dataset_val,
learning_rate=config.LEARNING_RATE,
epochs=5,
layers='heads')
训练结束后可以在log文件夹中得到训练好的权重文件:
选择最好的0005.h5权重文件,进行预测测试,得到结果如下:
至此,mask-rcnn的环境配置、预测测试、训练测试全部正确。
五、总结和收获
笔者有点笨,配置环境配置两天,所幸功夫不负有心人。
在这个过程中,我发现自己的改错能力有了很大增强,在百度上找不的错误,可以到github上的issues中查找。
最后,如果有盆友按照我的方法去配置环境,如果有任何问题欢迎评论。