[計算機視覺][神經網絡與深度學習]Faster R-CNN配置及其訓練教程2

faster-rcnn分為matlab版本和python版本,首先記錄弄python版本的環境搭建過程.matlab版本見另一篇:faster-rcnn(testing): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3+opencv3.0+matlabR2014a環境搭建記錄

首先,進入官方github網站:https://github.com/rbgirshick/py-faster-rcnn.按照作者的步驟,一步步往下走.

1.按Ctrl+Alt+t進入終端,進入你想存放源代碼的路徑后(在此假設為dir:A),輸入:

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

--recursive大概是遞歸克隆的意思,就是把源碼中的文件夾,文件夾下的子文件夾等等全部克隆過來.最后在當前目錄下得到一個叫py-faster-rcnn的文件夾,即A/py-faster-rcnn.

2.作者接下來的意思是進入lib,輸入make來"Build the Cython modules".但是我當時沒看到這一步,直接進的下一步,事實證明,后面再做這一步也可以.請繼續往下看.

進入caffe-fast-rcnn,這時,需要編譯作者自己寫的caffe.而這就要求電腦的環境配置了.

條件:

  2.1 python2.7及各種需要的庫,如numpy等,這些庫如果不裝夜可以按照編譯報錯時的提示一一安裝.

  2.2 cuda7.5和cudnn5.1.3.cuda是電腦早就裝好的,cudnn我是按最新的裝,反正沒錯.這里有篇不錯的教程:http://blog.csdn.net/ubunfans/article/details/47724341.寫得非常好.

  需要注意的是跑matlab版本時gcc降級為4.7,而此時的python版本為4.9.gcc的版本按照該網站修改,歸根結底是修改系統gcc和g++文件的鏈接路徑:http://www.cnblogs.com/loveidea/p/4384837.html

  2.3 opencv3是在跑matlab版本的時候裝的,不知道python版本是不是也要求,裝的過程也有一些注意事項,具體請看matlab部分.

3.我們已在A/python-faster-rcnn/caffe-fast-rcnn下,發現沒有Makefile.config文件,這時就要把當時電腦編譯caffe時的config文件拷過來了,按照自己的情況進行修改.我的config文件重點部分如下:

復制代碼
USE_CUDNN := 1
OPENCV_VERSION := 3
CUDA_DIR := /usr/local/cudaANACONDA_HOME := $(HOME)/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \$(ANACONDA_HOME)/include/python2.7 \$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
PYTHON_LIB := $(ANACONDA_HOME)/libWITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
BUILD_DIR := build
DISTRIBUTE_DIR := distribute
復制代碼

4.好了,開始輸入:

make clean #這個是把以前的遇到錯誤的make記錄清除了,第一次make的時候不需要輸,問題是之后我遇到了很多錯誤.
make -j8 #這是出問題最多的地方
make pycaffe

當上面的命令非常成功地不出現錯誤的時候,congratulations,你離成功已經很近了.假設你已經走到了這一步(問題在下面討論),接下來是:

5.作者的步驟如下,不過我是輸入該.sh下的網址:http://www.cs.berkeley.edu/%7Erbg/faster-rcnn-data/faster_rcnn_models.tgz直接下載的,linux的火狐瀏覽器貌似打不開此網址,我是在另外一臺windows的瀏覽器上下載的.下載完之后解壓放入A/python-faster-rcnn/data.

cd $FRCN_ROOT
./data/scripts/fetch_faster_rcnn_models.sh

6.這時,該進入lib,輸入make來"Build the Cython modules".如果到這了還不執行這一步后面會發生一些奇怪的事情.特此告知.

cd python-faster-rcnn/lb
make

7.

cd python-faster-rcnn
./tools/demo.py

?大功告成:

?

問題匯總:以下列舉出整個過程我遇到的一些問題,因為當時沒總結,有些可能忘了.非嚴格按照時間順序.

1.

/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’  pad_h, pad_w, stride_h, stride_w));  

這是由于cudnn和caffe版本不兼容造成的,具體有兩種解決思路.第一種是降低cudnn版本,比如我降到了cudnnv3.0,結果出現了另外一些低版本的問題,報錯說某些層未定義.另一種思路是提高caffe的版本,因為作者github上的caffe未能"及時升級".具體請參照這一篇神奇的博客:http://blog.csdn.net/rzjmpb/article/details/52373012

大意如下:

?

cd py-faster-rcnn/caffe-fast-rcnn  
git remote add caffe https://github.com/BVLC/caffe.git  
git fetch caffe  
git merge caffe/master 
在合并之后注釋掉include/caffe/layers/python_layer.hppa文件里的self_.attr(“phase”) = static_cast(this->phase_)

?

至于為什么注釋,我也搞不明白,也不知道該大神是怎么弄明白的,更不知道如果不注釋會不會影響到后面.

2.

libgfortran.so.3: version `GFORTRAN_1.4' not found 

參照:http://stackoverflow.com/questions/9628273/libgfortran-version-gfortran-1-4-not-found

3.

 from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \ImportError: numpy.core.multiarray failed to import 

?

這是一個非常牛逼的錯誤,因為它涉及到ubuntu14.04的numpy最新版本問題.

這個問題是因為numpy版本太低,ubuntu14.04的numpy在numpy網最高版本是1.8.2,系統版本也是1.8.2.而這里我們需要更高的版本,如1.10

查看numpy版本的命令是:

python -c "import numpy; print numpy.__version__"

用apt-get install numpy或者pip install --upgrade numpy等發現是不能自動為系統升級numpy的,具體原因不詳.所以最后,我選擇手動升級.

進入該網站下載numpy-1.10.0.tar.gz:?https://sourceforge.net/projects/numpy/files/NumPy/1.10.0/

下載完之后,解壓到dir:B,輸入以下命令:

cd B
sudo mkdir path
python setup.py build -j8 install --prefix B/path

這樣,會在path下生成兩個文件夾lib和bin.

把bin下生成的f2py去替換掉/usr/bin下的f2py;把lib/python2.7/site-packages下的所有文件去替換掉/usr/lib/python2.7/dist-packages/下的原來的文件.即可完成升級.

4 還有其他一些問題,不在此一一列舉,都是通過瘋狂百度或谷歌出來的,基本上都描述的很詳細.

轉載于:https://www.cnblogs.com/huty/p/8517171.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455654.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455654.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455654.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

modbus從站模擬軟件_作為工控電氣人,你知道我們必備的軟件有哪些嗎?

作為工控電氣人,你知道我們必備的軟件有哪些嗎?今天我就來給大家介紹一下,工控電氣人常用的幾款軟件,有了它們,我們的工作學習將會更易上手,效率翻倍。以下介紹主要是分為電工常用軟件,PLC編程軟…

錯誤檢測dP-bitstream-ei_flag runRestrictRef

JM86模型,對于錯誤檢測,dP->bitstream->ei_flag在什么情況下置1?還是無錯的時候dP->bitstream->ei_flag0,有錯時dP->bitstream->ei_flag等于一個較大的無效值? 看下所有給 dP->bitstream->ei_…

【數據分析】豆瓣電影Top250爬取的數據的可視化分析

豆瓣Top250網址 將之前爬取到的豆瓣電影進行簡單的可視化: 數據列表保存為CSV格式,如圖 導入數據 做好準備 #!-*- coding:utf-8 -*- import pandas as pd import numpy as np import matplotlib.pylab as plt import re from numpy import rank from bu…

sqlmap的二次開發

1、sqlmapapi的幫助信息。 -s 啟動sqlmap作為服務器 -h 指定sqlmap作為服務器的IP地址,默認127.0.0.1 -p 指定sqlmap服務器的端口,默認端口為8775 2、啟動服務 瀏覽器訪問: 3、api介紹:sqlmap項目下的api.py文件含有所有的api adm…

Django創建第一個應用

Django創建第一個應用 1,創建應用 Django自帶一個實用程序,可以自動生成應用程序的基本目錄結構,因此您可以專注于編寫代碼而不是創建目錄。 要創建您的應用程序,請確保您與目錄位于同一目錄,manage.py 并鍵入以下命令&#xff1…

docker nginx配置_docker隨手筆記第十二節 jenkins+docker+nginx+純靜態頁面配置

docker隨手筆記第一節 docker概念及安裝docker隨手筆記第二節 docker常用命令解析docker隨手筆記第三節 docker構建java鏡像docker隨手筆記第四節 docker安裝mysql5.7docker隨手筆記第五節 docker安裝redis4.0docker隨手筆記第六節 docker安裝jenkinsdocker隨手筆記第七節 jenk…

【機器學習】邏輯斯蒂回歸原理

邏輯斯蒂函數 引入: 在線性感知器算法中,我們使用了一個f(x)x函數,作為激勵函數,而在邏輯斯蒂回歸中,我們將會采用sigmoid函數作為激勵函數,所以它被稱為sigmoid回歸也叫對數幾率回歸(logistic …

。。。。。etc 時域錯誤隱藏個人理解

三個文件名以 erc 開頭的文件就是 EC 相關的文件。EC 的入口在 exit_picture 函數中,從 ercStartSegment 開始到 ercConcealInterFrame 結束。你自己做一個丟包之后的碼流,把程序跑起來跟蹤一下 EC 過程,慢慢分析代碼。 錯誤隱藏過程在整個幀…

手機影音第十一天,顯示視頻緩沖,顯示卡頓時的網速,播放系統視頻時調用播放器的選擇...

代碼已經托管到碼云,有興趣的小伙伴可以下載看看https://git.oschina.net/joy_yuan/MobilePlayer一、設置視頻緩沖進度顯示視頻播放進度的效果圖如下:灰色的是緩沖的進度。原理:只有播放網絡視頻時,才有緩沖這個說法,所…

Django之創建應用以及配置路由

Django之創建應用以及配置路由 配置所有IP都可以訪問你的項目 1.進入manage.py同級的my_web里面的settings.py的文件 2.在文件的第28行把ALLOWED_HOSTS []改成ALLOWED_HOSTS [*] 注意:*代表的是所有IP都可以訪問 創建一個app應用 在終端中,結束項目…

python中opencv是什么_python-opencv的用法

#!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat import cv2 # 接收兩個參數,一個是文件名,一個值,如果值為1,接收的是彩色圖片,如果值為零,接受的是灰度圖片。會有一個返回值&#xff0c…

openjudge 14:求10000以內n的階乘

14:求10000以內n的階乘 總時間限制:5000ms內存限制:655360kB描述求10000以內n的階乘。 輸入只有一行輸入&#xff0c;整數n&#xff08;0<n<10000&#xff09;。輸出一行&#xff0c;即n!的值。樣例輸入100 樣例輸出933262154439441526816992388562667004907159682643816…

【Tensorflow】卷積神經網絡實現藝術風格化通過Vgg16實現

卷積神經網絡實現藝術風格化 基于卷積神經網絡實現圖片風格的遷移&#xff0c;可以用于大學生畢業設計基于python&#xff0c;深度學習&#xff0c;tensorflow卷積神經網絡&#xff0c; 通過Vgg16實現&#xff0c;一幅圖片內容特征的基礎上添加另一幅圖片的風格特征從而生成一幅…

抗誤碼技術

抗誤碼技術&#xff1a; 視頻傳輸過程中的錯誤是不可避免的&#xff0c;抗誤碼技術歷來都足視頻領域一個研究的熱點。H264標準繼承r以前視頻編碼標準中某些優秀的錯誤恢復工具&#xff0c;同時也改進和創新了多種錯誤恢復丁具。這些錯誤恢復的工具主要有&#xff1a;參數集、數…

Linux統計文件行數、字數、字節數

2019獨角獸企業重金招聘Python工程師標準>>> 語法&#xff1a;wc [選項] 文件 說明&#xff1a;該命令統計給定文件中的字節數、字數、行數。如果沒有給出文件名&#xff0c;則從標準輸入讀取。wc同時也給出所有指定文件的總統計數。字是由空格字符區分開的最大字符…

tkinter中鼠標與鍵盤事件

tkinter中鼠標與鍵盤事件&#xff08;十五&#xff09; 本文轉自Tynam Yang的博客園 import tkinterwuya tkinter.Tk() wuya.title("wuya") wuya.geometry("300x2001020")bt tkinter.Button(wuya,text鼠標進入打印) bt.pack()def func(event):print(鼠…

html解析のBeautifulSoup

引子&#xff1a; 使用python爬蟲對爬取網頁進行解析的時候&#xff0c;如果使用正則表達式&#xff0c;有很多局限&#xff0c;比如標簽中出現換行&#xff0c;或者標簽的格式不規范&#xff0c;都有可能出現取不到數據&#xff0c;BeautifulSoup作為一個專門處理html格式的py…

【Tensorflow】人臉128個關鍵點識別基于卷積神經網絡實現

引言&#xff1a; 卷積神經網絡 卷積神經網絡最早是為了解決圖像識別的問題,現在也用在時間序列數據和文本數據處理當中,卷積神經網絡對于數據特征的提取不用額外進行,在對網絡的訓練的過程當中,網絡會自動提取主要的特征.卷積神經網絡直接用原始圖像的全部像素作為輸入,但是內…

python 爬蟲 包_python爬蟲學習之路-抓包分析

利用瀏覽器抓包&#xff0c;是爬蟲中的很實用的技能。在爬蟲編程之前&#xff0c;我們要對抓取的目標頁面有所了解&#xff0c;比如瀏覽器的這個請求這個頁面中間都經歷了什么&#xff0c;數據是怎么發送和返回的。 抓包的作用 我把抓包分析的作用簡單列一下&#xff1a; 分析請…

幀間EC原理和過程

出錯的宏塊&#xff08;圖中灰色表示&#xff09;根據上、下、左、右四個方向相鄰宏塊的不同分割情況及預測類型進行插值。將最后的結果中進行比較&#xff0c;選取邊界像素差值之和最小者為最優的EC方案。其步驟為&#xff1a; 1、判斷相鄰宏塊左上角8*8塊的預測模式是否大于R…