mask rcnn模型踩坑指南 tusimple mx-maskrcnn
1. 環境:anaconda2+tensorflow-gpu+python2.7.14
pip freeze: certifi==2017.11.5 / Cython==0.27.3 / easydict==1.7 / frcnn-cython==0.0.0 / numpy==1.13.3 / olefile==0.44 / opencv-python==3.3.0.10 / Pillow==4.3.0 / pycocotools==0.0.0
2. 步驟 :
a.原始資料集+原始程式碼。模型執行原始碼網址:https://github.com/TuSimple/mx-maskrcnn,
資料集網址:https://www.cityscapes-dataset.com/ .
先下載資料集gtFine_trainvaltest.zip, leftImg8bit_trainvaltest.zip(需先註冊,有些麻煩)和程式碼git clone https://github.com/TuSimple/mx-maskrcnn.git.
資料集解壓到 ./data/cityscape/目錄下
b.***@ubuntu: mx-maskrcnn-master $ bash scripts/download_res50.sh #Download Resnet-50 pretrained model
c.安裝mxnet, tutorial: https://mxnet.incubator.apache.org/get_started/build_from_source.html
***@ubuntu:mx-maskrcnn-master$ git clone --recursive https://github.com/apache/incubator-mxnet.git
[mxnet]# mxnet官網GitHub下載地址,download incubator-mxnet,即mxnet模組,--recursive必不可少,否則可能make失敗,導致後面缺少libmxnet.so庫。
cd incubator-mxnet
make -j8 USE_BLAS=openblas USE_CUDA=1 USE_CUDA_PATH=/usr/local/cuda USE_CUDNN=1 USE_CPP_PACKAGE=1
# c++編譯選項USE_CPP_PACKAGE=1
f. ***@ubuntu: mx-maskrcnn-master $ sh scripts/train_alternate.sh #Kick off training, 需修改train_alternate.sh最後一行為單GPU,原本為4GPU
模型正常訓練結果:先載入影像,再迭代
========================1285 ============================
data/cityscape/gtFine/train/bochum/bochum_000000_006746_gtFine_instanceIds.png
(2048, 1024)
========================1286 ============================
data/cityscape/gtFine/train/weimar/weimar_000022_000019_gtFine_instanceIds.png
(2048, 1024)
模型訓練2h顯示:
模型訓練20h顯示:
3. 踩的2個大坑:
a.
(1) 報如下錯誤:
執行最後一步bash scripts/train_alternate.sh報錯,File "_mask.pyx", line 56, in init rcnn.pycocotools._mask AttributeError: type object 'rcnn.pycocotools._mask.RLEs' has no attribute '__reduce_cython__'
(3) 可能原因:見https://groups.google.com/forum/#!topic/cython-users/tQlwfcpdf0k,可能是Cython 0.26與python3不相容(谷歌搜__reduce_cython__)
b.
(1) 報如下錯誤:
src/storage/storage.cc:63: Check failed: e == cudaSuccess || e == cudaErrorCudartUnloading CUDA: invalid device ordinal
(2) 解決方案:將./scripts/train_alternate.sh指令碼最後一行作如下修改:
--gpu 0,1,2,3 |& tee -a ${TRAIN_DIR}/train.log -> --gpu 0 |& tee -a ${TRAIN_DIR}/train.log
(3) 可能原因:見http://blog.csdn.net/zpp13hao1/article/details/78581767?locationNum=7&fps=1中間部分“使用一個GPU,原始碼是使用了4個GPU,需要在train_alternate.sh中的最後一句話改為”
4. 備註
訓練模型時,如出現如下libmxnet.so檔案缺失,說明mxnet安裝不成功,需從步驟c開始重新安裝mxnet。
列印如下:RuntimeError: Cannot find the files. List of candidates:./incubator-mxnet/python/mxnet/libmxnet.so
./incubator-mxnet/python/mxnet/../../lib/libmxnet.so
./incubator-mxnet/python/mxnet/../../build/libmxnet.so
5. openblas 可能找不到 cblas.h,環境變數可能需要新增:
C_INCLUDE_PATH=/*/OpenBLAS/include:/MyLib
export C_INCLUDE_PATH
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/*/OpenBLAS/include:/MyLib
export CPLUS_INCLUDE_PATH
6. 出現/usr/bin/ld: cannot find -lxxx 的解決辦法
export LIBRARY_PATH=/opt/biosoft/hdf5-1.8.15-patch1/lib/:$LIBRARY_PATH 若修改變數 LD_LIBRARY_PATH 不奏效,則修改變數 LIBRARY_PATH 。
7 出現
/usr/lib/libopencv_highgui.so.2.4: undefined reference to TIFFRGBAImageOK@LIBTIFF_4.0' 1> /usr/lib/libopencv_highgui.so.2.4: undefined reference toTIFFReadRGBAStrip@LIBTIFF_4.0'
解決方法是在cmake時加入下面引數
-D BUILD_TIFF=ON
相關文章
- 如何使用Mask RCNN模型進行影像實體分割?CNN模型
- phppresentation 踩坑指南PHP
- mpvue“踩坑”指南Vue
- 從零開始 Mask RCNN 實戰:基於 Win10 的 Mask RCNN 環境搭建CNNWin10
- ?踩坑指南——onnx系列
- iOS私有Pod, 指南+踩坑iOS
- Mask RCNN測試過程經驗總結CNN
- 微信小程式踩坑指南【一】微信小程式
- Druid監控踩坑指南UI
- Hexo6 升級踩坑指南Hexo
- sonarqube配置全指南,sonarqube踩坑記錄
- Flutter開發環境搭建-踩坑指南Flutter開發環境
- SM 國密演算法踩坑指南演算法
- 分散式配置nacos搭建踩坑指南(下)分散式
- webpack入門及踩坑應對指南Web
- 微信小程式mpvue(沒朋友)踩坑指南微信小程式Vue
- ONNX模型轉Openvino部署踩坑記錄模型
- vue+vuex+leaflet Jest單測踩坑指南Vue
- 騰訊Xlog接入指南與踩過的坑
- 踩坑指南:入門OpenTenBase之部署篇
- 二階段目標檢測網路-Mask RCNN 詳解CNN
- 【踩坑指南】執行緒池使用不當的五個坑執行緒
- React Native踩坑指南:WebView高度自適應React NativeWebView
- mybatis plus +springboot +jsp整合踩坑指南MyBatisSpring BootJS
- GAMES101 作業7 踩坑指南GAM
- 踩坑指南:入門OpenTenBase之監控篇
- 遊戲人避坑指南——怎樣才能減少踩坑的頻率?遊戲
- TP5_模型初始化_踩坑記錄模型
- angular踩坑Angular
- 相容踩坑
- Flutter 踩坑Flutter
- vue踩坑Vue
- CDH踩坑
- THEOS踩坑。。。
- Laravel 模型操作中一次奇妙踩坑經歷Laravel模型
- 小程式踩坑填坑
- 小程式踩坑
- Fragment-踩坑Fragment