Mask CNN环境搭配与模型训练中踩坑记录

(一)搭建caffe2版
Caffe2已合并到pytorch框架里了,所以搭建caffe2就得搭建pytorch。在搭建的过程中,各种坑,后来定位到
在这里插入图片描述
才知道,pytorch,要求cudnn7+,而cudnn7+要求对应的cuda在9+,然而,升级cuda,对整个服务器的影响较大,为了不影响其他人的使用,放弃caffe2版本的搭建。所以在搭环境前,一定要看好需要的版本号。
(二)搭建tensorflow版
也是各种坑,其中下面这个坑是耗时最长的:
在这里插入图片描述
即:version GLBCXX_3.4.21 not defined in file in libstdc++.so.6 with link time reference
其实这类问题是很解决的,就是tensorflow中的so包缺少XXX版本,这类问题解决办法,要么升级GCC(这个办法,如果多人共用一个服务器,就不要升级了,会对别人有影响的),要么在整个服务器中找有 GLBCXX_3.4.21 的libstdc++.so.6包,具体方法是:
①find / -name libstdc++.so.6 ///先找到所有libstdc++.so.6 包
②strings /opt/lampp/lib/libstdc++.so.6 | grep GLIBCXX_ ///然后挨个路径下的libstdc++.so.6包查找里面是否有 GLBCXX_3.4.21
③如果找到,就创建一个软链接,让之前指向libstdc++.so.6的路径,改为指向有GLBCXX_3.4.21 的libstdc++.so.6
然而,我发现我软链接指向的libstdc++.so.6包里面是存在 GLBCXX_3.4.21,但一直提示找不到 GLBCXX_3.4.21 ,我也是很困惑,后来,我直接卸了服务器中的python3.6,用的python3.5,就没有这种错误了,具体细节原因,我也不清楚了。

在这里插入图片描述
(三)模型训练
模型训练前,一定要选好数据标定工具,可以使用Labelme,也可以使用VIA,下面那篇博客有详细解释。
https://blog.csdn.net/length85/article/details/87620217
两种标定方法产生的json文件内部结构是不一样,所以,用不同的标定工具,后面训练的代码也是不一样的,如果用VIA可以改写MASK-RCNN工程里面的balloon.py,用来训练自己的数据集,如果是用Labelme,可以参照下面这篇博客。https://blog.csdn.net/qq_29462849/article/details/81037343
需要说明一下的地方,很多博客中产生的labelme_json文件中的label.png是一片黑,然而我的是这样有颜色的图。
在这里插入图片描述
这是因为labelme版本不同导致的,可以看看这种彩色label.png是否为8位图,如果深度为8位,就不需要再转化,直接用labelme_json文件夹下的label.png放到cv2_mask文件下即可。
但是在训练的时候,总是出现IndexError: boolean index did not match indexed array along dimension 0; dimension is 1 but corresponding boolean dimension is 128
在这里插入图片描述
网上找了很多办法都没有解决,后来无意中发现“直接用labelme_json文件夹下的label.png放到cv2_mask文件下”,这一步出错了,在放图片的这一步,使用了imread这个函数,后面的参数没有设置,在存放的过程中,默认将8位的图转化成了24位!!!!
后来使用src = imread(buff1, IMREAD_GRAYSCALE);还是出错
IndexError: boolean index did not match indexed array along dimension 0; dimension is 1 but corresponding boolean dimension is 36
解决办法:直接在训练的train.py中,在load_shapes函数中的mask_path地址指向labelme_json文件夹下。 mask_path = dataset_root_path + “labelme_json/” + filestr + “_json/label.png”
最后,直接运行train.py出现下图,成功。
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值