(最新教程)基於Windows7+visual Studio2013+Python2.7.12環境下的Caffe配置學習
剛剛進入深度學習的這個坑,聽說深度學習都用caffe這個框架,就馬不停蹄的去搭建caffe框架,結果搞了一個星期,在win7上配置的道路一波三折,在此,特寫本次部落格讓後面進坑的朋友少走點彎路,造福社會!!本文在windows下使用visual studio2013配置關聯python的caffe專案,看了很多很多教程,按照教程上面走還是各種錯,所以索性就去了Microsoft的Github上面,按照他的流程來走,因為是英文的,但是還是能勉強讀懂。Microsoft官網配置caffe的教程是這這個:https://github.com/Microsoft/caffe/blob/master/README.md
首先讓大家看看我的筆記本配置,很渣很渣,所以沒法用gpu,只能勉強的用意cpu。
(二)設定配置檔案
在 .\caffe-mastter\windows路徑下
新建一個文字文件,重新命名為CommonSettings.props ,並複製.\windows\CommonSettings.props.example
檔案中的內容到 .\windows\CommonSettings.props。預設情況下windows編譯需要CUDA和cuDNN,當然你也可以在配置文件(
.\windows\CommonSettings.props)中去修改為不用,直接將為true的配置設定為false即可。但是python預設情況下是不能使用的,我這裡需要用python進行caffe學習,所以就設定為true了。其他三方的庫,VS編譯時會通過NuGet進行自動獲取,非常方便!
(三)下載Python:
為了能使用python呼叫Caffe,需要在 .\windows\CommonSettings.props中設定<PythonSupport>true</PythonSupport>。如果本機沒安裝python,可以下載
Miniconda 2.7 64-bit Windows installer,從官方網址:http://conda.pydata.org/miniconda.html選擇下載,預設配置路徑安裝即可。同時需要以管理員許可權安裝numpy、scipy、matplotlib、scikit-image、protobuf包,安裝命令如下:
conda install --yes numpy scipy matplotlib scikit-image pip
pip install protobuf
注意:
(1)在你編譯通過後,需要將編譯好的 <caffe_root>\Build\x64\Release\pycaffe\caffe檔案複製到python的
<python_root>\lib\site-packages資料夾下面,這樣python中才能引用到caffe,不然會報錯。
(3)配置python安裝命令的時候,一定要記得是用管理員身份執行,否則會出現很多不必要的錯誤情況。
根據需要,我的配置如下圖:
(四)專案編譯:
用VS2013,在caffe-master\windows目錄下開啟caffe.sln,進去後如下圖(共16個專案):
編譯的順序是:
libcafffe->caffe->pycaffe->convert_imageset,每個專案編譯前都需要設定相應的引用路徑,這裡有兩種路徑,include路徑和libs路徑,詳細怎麼新增見下面。
(1)libcaffe在編譯前先設定資源引用路徑,點選專案右鍵-》屬性-》配置屬性-》c/c++,【附加包含目錄中】中加入python的include路徑,我這是D:\Python27\include,如下圖:
(2)caffe在編譯前先設定資源引用路徑,點選專案右鍵-》屬性-》配置屬性-》c/c++,【附加包含目錄中】加入python的include路徑,我這是D:\Python27\include,同時,在連結器中的【附加庫目錄】中加入python的libs路徑,我這裡是D:\Python27\libs,如下圖:
(3)pycaffe在編譯前先設定資源引用路徑,點選專案右鍵-》屬性-》配置屬性-》c/c++,【附加包含目錄中】加入python的include路徑和numpy的include路徑,我這裡分別是D:\Python27\include和D:\Python27\Lib\site-packages\numpy\core\include,同時,在連結器中的【附加庫目錄】中加入python的libs路徑和numpy的libs路徑,我這裡分別是D:\Python27\libs和D:\Python27\Lib\site-packages\numpy\core\lib,如下圖:
然後編譯,出現了很多不同的錯誤,下面我列舉下:
(1)
如果這個編譯時出現:
error LNK2001: 無法解析的外部符號 __imp_PyString_FromString
error LNK2001: 無法解析的外部符號 __imp_PyCallable_Check
error LNK2001: 無法解析的外部符號 __imp_PyObject_CallObject
error LNK2001: 無法解析的外部符號 __imp_Py_Initialize
error LNK2001: 無法解析的外部符號 __imp_Py_IsInitialized
error LNK2001: 無法解析的外部符號 __imp_PyImport_Import
error LNK2001: 無法解析的外部符號 __imp_PyModule_GetDict
error LNK2001: 無法解析的外部符號 __imp_PyDict_GetItemString
error LNK2001: 無法解析的外部符號 __imp_PyRun_SimpleStringFlags
error LNK2001: 無法解析的外部符號 __imp_Py_Finalize
解決的辦法,更改編碼
(2)如果有出現error C2220: warning treated as error - no object file generated 這樣的錯誤,右擊專案,屬性,在C/C++那裡把treat warning as error設為no,再重新編譯一次,就完成編譯了。
(3)找不到Python27_d.lib,這是一個python版本問題,建議去文章的前面看看Microsoft是怎麼配置python的
(4)報錯“error C2220: 警告被視為錯誤 - 沒有生成“object”檔案”,解決方法是用vs2013開啟這裡報錯的cpp,然後點選儲存即可。
(5)解決方案的16個專案中libcaffe和test_all沒有載入成功。不過不影響,先把編譯器切換到Release
x64.然後點選本地windows偵錯程式,nuget會先下載安裝需要的一些庫檔案,下載完後後繼續編譯操作,中間可能會出現一些報錯
在解決方案後中右擊每一個專案,屬性->C/C++,把“警告等級”調整為等級3,把“將警告視為錯誤”改成否。
(6)
設定一下執行項,解決方案'caffe'->屬性
或者下面直接單啟動專案是caffe也行,不過最好改一下,原因相信玩過VS的都清楚,如果是單啟動專案,那麼在你重新編譯工程的時候,只會執行次單啟動專案,其它專案不會執行,這就是為什麼很多人編譯以後發現Release或者Debug資料夾下只有caffe.exe而沒有conver_imageset.exe等可執行檔案的原因。
(7)libcaffe庫有問題,不識別什麼的,解決辦法,重新生成就可了
(五)編譯完成後檢查
如果編譯成功了,會在caffe-master同路徑下生成NugetPackages資料夾,同時在caffe-master資料夾下生成Build資料夾,在編譯生成NugetPackages的資料夾的時候,我是開了VPn生成的,如果不開VPN,貌似時間比較久,幾個小時吧。至於其中原因,聽說NugetPackages這個被牆了,當然我也只是聽說,具體的不清楚
(1)NugetPackages裡面內容
一個都不能少,如果少了的話,可能是nuget通訊問題,多編譯幾次就下載完了。
(2)Build資料夾下的內容,一定有caffe.exe檔案,不然說明沒編譯成功
(3)編譯成功後的介面是這樣的
不懂的可以加我的QQ群: 522869126(深度學習語音識別方向
)歡迎你的到來哦,看了博文給點腳印唄,謝謝啦~~
相關文章
- 《學習 VUE - Windows 下配置 vue 的開發環境 》VueWindows開發環境
- 深度學習環境配置深度學習
- 《學習 VUE-Windows 下配置 vue 的開發環境 》VueWindows開發環境
- 基於 docker 開發環境下-配置 PHPStorm xdebugDocker開發環境PHPORM
- 基於Linux的 工作環境配置方法Linux
- caffe Ununtu 16.04.4開發環境配置(CPU版)開發環境
- 深度學習環境配置(windows 11)深度學習Windows
- 如何下載Java-配置環境全教程Java
- java學習日記-java環境的配置Java
- Caffe 深度學習框架上手教程深度學習框架
- caffe 無GPU 環境搭建GPU
- JAVA學習——JDK開發環境配置JavaJDK開發環境
- Android NDK學習(2)Windows下NDK開發環境配置AndroidWindows開發環境
- SpringBoot 基礎知識學習(二)——配置檔案多環境配置Spring Boot
- iOS Debug和Release環境的最新配置iOS
- ES系列教程01:Elasticsearch學習環境搭建Elasticsearch
- [編譯] 9、在Linux下搭建 nordic 最新基於 zephyr 的開發燒寫環境編譯Linux
- spring boot學習4 多環境配置Spring Boot
- Xamarin 學習筆記 - 配置環境(Windows & iOS)筆記WindowsiOS
- Maven 學習筆記——Maven環境配置(1)Maven筆記
- OpenShift 本地開發環境配置(基於 Minishift)開發環境
- 基於RedHat的RAC環境下修改ip及vipRedhat
- 【深度學習】Ubuntu環境下Tensorflow的安裝以及與Pycharm的相互配置深度學習UbuntuPyCharm
- Flask基礎環境配置Flask
- 李炎恢 Laravel API介面學習筆記[基於 Laravel Sail 環境]LaravelAPI筆記AI
- Maven環境下MyBatisGenerator 配置MavenMyBatis
- Windows 下 Laravel 環境配置WindowsLaravel
- Mac環境下AS配置GitMacGit
- NVM,Windows下環境配置Windows
- ubuntu下golang環境配置UbuntuGolang
- windows下JDK環境配置WindowsJDK
- (一)Linux環境的學習環境的搭建Linux
- Webpack下多環境配置的思路Web
- 基於CentOS 7.6安裝及配置APISIX 3.0環境CentOSAPI
- Ubuntu18.04深度學習環境配置Ubuntu深度學習
- 【OCP學習筆記】配置網路環境 -- 3筆記
- 【OCP學習筆記】配置網路環境 -- 4筆記
- 【OCP學習筆記】配置網路環境 -- 1筆記