1. 程式人生 > >mask rcnn原始碼模型踩坑(__reduce_cython__)指南(MxNet)

mask rcnn原始碼模型踩坑(__reduce_cython__)指南(MxNet)

mask rcnn模型踩坑指南(MxNet框架):
1.環境:anaconda3+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
(tensorflow-gpu-python2) ***@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庫。
d.(tensorflow-gpu-python2) ***@ubuntu: mx-maskrcnn-master $ cp rcnn/CXX_OP/* incubator-mxnet/src/operator/  # Build MXNet with ROIAlign operator.
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
# mxnet官網GitHub下載地址。 作者採用mxnet原始碼方式安裝
e.cd ./rcnn/pycocotools/,  python setup.py build_ext install/--inplace #此處install或--inplace自己嘗試的
cd ./rcnn/cython/,  python setup.py build_ext install/--inplace
# (必須進入目錄執行,執行這句話之後,同一資料夾下的檔案 _mask.pyx方能成為模組被其他檔案import _mask)  if ./rcnn/pycocotools/mask.py", line 3, import _mask, no model named ‘_mask’
f.(tensorflow-gpu-python2) ***@ubuntu: mx-maskrcnn-master $ make #build related cython code , maybe need install cython package, 
g.(tensorflow-gpu-python2) ***@ubuntu: mx-maskrcnn-master $ bash scripts/train_alternate.sh  #Kick off training, 需修改train_alternate.sh最後一行為單GPU


模型正常訓練結果:先載入影象,再迭代
========================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__' 


(2) 解決方案:將anaconda中的python3.6更換為python2.7(python3.6中還會報其他格式錯誤)
(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

相關推薦

mask rcnn原始碼模型(__reduce_cython__)指南(MxNet)

mask rcnn模型踩坑指南(MxNet框架): 1.環境:anaconda3+tensorflow-gpu+python2.7.14 pip freeze: certifi==2017.11.5 / Cython==0.27.3 / easydict==1.7 / fr

windows下執行mask-rcnn示例程式過的

環境:win10,keras2.1.6,python3.6,ensorflow1.8-gpu 錯誤一:       執行D:\python\jupyter\Mask_RCNN-master\samples目錄下的demo.ipynb檔案,用jupyter notebo

從kali到msf再到veil免殺的一條龍服務指南

使用方法 使用root使用者登入,執行以下命令: wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shado

Mask RCNN 原始碼解析 (1)

Mask RCNN 屬於 RCNN這一系列的應該是比較最終的版本,融合多種演算法的思想,這裡對Mask RCNN從原始碼進行解析,主要寫幾篇文章,一個總結大的思路,其他文章整理細節。 這篇文章為了簡單,主要從前向傳播和後向傳播,分兩部分進行介紹,主要以資料的流動為主線,分析

vue原始碼除錯記錄

目的: 可以斷點除錯vue的原始碼, 研究一個new vue({...})以及data的更新在vue原始碼內部是如何執行的 目前做到了, 其實比較簡單, 也不知道為什麼會弄了一天… 遇到的問題有2個, 其中一個是坑 一: 其實git clone re

react學習 | 指南

color es5 rtl https reat web .config fail package react樣式模塊化的"omit -loader"坑 眾所周知 react樣式的模塊化(css modules) 是自己模塊中寫自己的css,與其他模塊互補影響,解決了命名

Java URL類指南

import p地址 dns解析 devel 部分 syn gethost service statistic 背景介紹 最近再做一個RSS閱讀工具給自己用,其中一個環節是從服務器端獲取一個包含了RSS源列表的json文件,再根據這個json文件下載、解析RSS內容。核心代

逆向新手指南之爬爬山能鍛煉身體

博客 相加 html 堆棧 裏的 搜索引擎 打開 bsp 左右 逆向新手踩坑指南之爬爬山能鍛煉身體 首先坐下,打開電腦,平復一下心情,開始逆向分析。 對了,開始之前,首先推薦一下本站大神的逆向工程系統教程:【傳送門】 好了,正文開始。軟件運行一下是這樣的: 直接ID

Microsoft SQL Server on Linux 指南

stat 自己 blog ext4 cat 宣傳 requires 日誌 主機 微軟用 SQL Server 在 2016 年的時候搞了一個大新聞,宣傳 Microsoft ?? Linux 打得一眾軟粉措手不及。但是這還是好事情,Linux 上也有好用的 SQL Ser

EDM模板編寫指南(非響應式,純table有源碼)

如何 ios 營銷 手機屏幕 tran detect 廣告 chrome rom   如果問你table布局,你肯定會嗤之以鼻?什麽table布局?不是早已經淘汰了嗎?但是如果讓你寫EDM郵件模板,table布局相對來說是最好的選擇。   如果讓你立刻寫EDM,你在網上搜的

新手tensorflow上執行模型

一、rom ._ellip_harm_2 import _ellipsoid, _ellipsoid_norm ImportError: cannot import name '_ellipsoid' Python中可能會遇到 cannot import name ‘XXX’ 錯誤, 其實這有可能

小程式wepy之旅(三)----- 微信小程式wepy左滑刪除特效原始碼

我寫在了shop_cart.wepy裡,原始碼就在下面註釋很詳細,直接拷貝到新建的.wpy就可以使用 <template> <view class="item-box"> <view class="items">

centos7 下原始碼安裝keepalived

目錄 環境準備 為什麼原始碼安裝 原始碼安裝 環境準備 全新最小化安裝的centos 7.5 keepalived 1.4.5 vip : 172.16.0.169 為什麼原始碼安裝  &nb

SpringBoot指南(一):超連結--不能不經過請求直接跳轉到新的html及a標籤傳值

本篇博文轉自:https://blog.csdn.net/qq_36688143/article/details/79499959 html連結傳值及在新html取值和顯示上一步操作封裝的屬性資訊(顯示剛才建立的資料夾、發表的文章等)點選開啟連結  a標籤遍歷list傳值、傳請求:

Android FileProvider詳細解析和指南

        其實很早之前我的應用就已經相容到Android7.0了,此次寫這個文章就是想詳細梳理一下android的檔案系統,以及做一下FileProvider的解析。    

Pandas.read_json()總結 & 原始碼初探

準備工作 環境依賴:Python 2.7 樣例資料(json檔案) 問題描述   通過Pandas.read_json(jsonFilePath)方法讀取json檔案時,會出現資料內容發生奇怪的轉變;Eg:假設樣例資料的檔名為data.json,

Apollo 2.5 安裝指南(轉載)

apollo 是百度的無人駕駛平臺。 環境 Ubuntu 14.04.4 Dokcer-CE 17.09.1 先安裝 Docker 官網教程安裝 Docker 在網不好的情況下會有大概率安裝不成功。 國內建議使用 DaoCloud 安裝 Dokcer sudo ap

bitcoin 0.10.0 版本 linux 交叉編譯 windows 版本 (gitian 編譯) 指南

因為 bitcoin 最新版本沒有挖礦程式碼,所以本人基於 bitcoin 0.10.0 版本修改創世塊重新打包了一個新的幣 修改創世快教程 https://blog.csdn.net/wab719591157/article/details/80747043 linux 版本編譯

LitePal使用指南

隨著LitePal更新到3.0,第一次使用感覺很慌,碰到了很多問題不過所幸都解決了。以下是各問題解決的方法: 一、關於建立的問題        首先我們在GitHub找到他的官網LitePal官網  中找到最後的使用文件,在app包下的build.gradle中的de

Mask R-CNN訓練自己的資料集在win10上的全過程:CUDA9.0+CUDNN7.1.4+Tensorflow-gpu1.9.0+keras-gpu2.2.4

基礎配置 首先你需要在win10上下載Git(用於我們在github上面下載原始碼)和MinGW(方便我們在win10上也能用linux的make操作命令)。 接著你要下載cuda9.0和cudnn7.1來繫結你的windows的Nvidia 接著你需要在win10上面安裝an