伺服器caffe環境搭建
1. 如何在Windows下安裝配置python介面的caffe
整了一晚上加一上午。網上關於python的記錄較少,這里寫一下。
這里的環境是WIN10+cuda v7.5 +cudnn v4 + opencv + pycharm+VS2013
使用的是GPU,我的GPU是titan16G+內存32G
首先是caffe的文件以及第三方庫的編譯,這里提供一個已經編譯好的的連接,我就是從那裡下好然後編譯完畢的。
點擊打開鏈接 happynear的
然後就是如何編譯python介面。
1、首先先生成兩個python文件,在src/caffe/proto/extract_proto.bat 里生成caffe_pb2.py 這個之後有用。
2、然後打開已經給好的caffe/buildVS2013,打開裡面已經有的工程文件,正常的情況下應該是有7個工程,選中pycaffee單獨作為要編譯的項目。如圖所示:
把pycaffe作為單啟動。注意需要在release x64位下編譯。
如果沒有這個的話,就將這個文件夾里python文件夾中的項目加入即可。如果沒有python項目,就自己建一個,將python文件夾里的cpp文件加入就可以了。
3、選擇pycaffe的屬性,將配置屬性下的VC++目錄中的包含目錄和庫目錄填上你python所在的include和libs 再在C/C++的目錄下的附加包含目錄一項中添加
以我的python為例。D:/python27/Lib;D:/python/include/ 以及D:/Python27/Lib/site-packages/numpy/core/include 如果你安裝了CUDNN這里可以在預處理器那裡把USE_CUDNN加上,同時在LINKER的輸入目錄下的附加依賴庫中加入cudnn的lib文件。
3、開始編譯即可。這里要注意一定要和caffe、caffelib在一個項目里編譯,否則會報錯。
4、編譯成功後會在caffe/python/caffe下生成_caffe.pyd 是打不開的
5、配置python環境:需要幾個額外庫
Cython>=0.19.2
numpy>=1.7.1
scipy>=0.13.2
scikit-image>=0.9.3
matplotlib>=1.3.1
ipython>=3.0.0
h5py>=2.2.0
leveldb>=0.191
networkx>=1.8.1
nose>=1.3.0
pandas>=0.12.0
python-dateutil>=1.4,<2
protobuf>=2.5.0
python-gflags>=2.0
pyyaml>=3.10
Pillow>=2.3.0
six>=1.1.0
其中numpy要裝MKL版本的,不然scipy裝上了BLAS不能用
leveldb沒有windows版本的,不過我找到了可以使用的辦法。見這個博客:
點擊打開鏈接
如果有pip install 裝不上的,可以上這個網站找 wheel文件安裝就可以了
點擊打開鏈接
6、最後把目錄中python下的caffe文件夾復制到python27/Lib/site-packages就可以了。
測試的時候只需要在控制台下輸入import caffe 看能載入就知道成功了:)
2. centos伺服器怎麼使用caffe
配置環境我在自己的筆記本配置的caffe,配置的環境為:Windows764位+cuda6.5+Opencv2.49+VS2013。假設在配置caffe之前,你已經准備好這些。本文中將給出一些編譯好的依賴庫,如果你也是用的Windows764位+VS2013,可以直接使用。
准備依賴庫在Windows下配置caffe,一個很主要的問題就是依賴庫的編譯。不像在Ubuntu下那麼方便,在Windows下,依賴庫都需要使用vs2013進行編譯才能使用。下面我將介紹caffe需要的依賴庫(如果你也是win764位+VS2013,可以直接使用我提供的依賴庫)。
1boostboost可以源碼進行編譯,也可以直接安裝文件。我使用的是後者,方便、快捷。我使用的是:boost_1.56_0-msvc-12.0-64.exe注意適合你的配置環境的boost版本即可。完畢,雙擊運行安裝文件即可。2.2Glog+Gflag+Protobuf+LevelDB+HDF5+LMDB+Openblas。
3. 在只有獨立顯卡的linux環境下怎樣安裝caffe
Caffe需要預先安裝一些依賴項,首先是CUDA驅動。不論是CentOS還是Ubuntu都預裝了開源的nouveau顯卡驅動(SUSE沒有這種問題),如果不禁用,則CUDA驅動不能正確安裝。以Ubuntu為例,介紹一下這里的處理方法,當然也有其他處理方法。
# sudo vi/etc/modprobe.d/blacklist.conf# 增加一行 :blacklist nouveausudoapt-get --purge remove xserver-xorg-video-nouveau #把官方驅動徹底卸載:sudoapt-get --purge remove nvidia-* #清除之前安裝的任何NVIDIA驅動sudo service lightdm stop #進命令行,關閉Xserversudo kill all Xorg然後下載並安裝 NVIDIA CUDA驅動包,接著安裝安裝BLAS、OpenCV、Boost這三個庫。BLAS數學庫可以是ATLAS, MKL, 或 OpenBLAS,OpenCV要求2.4以上版本,Boost要求1.55版本以上。可選安裝Python MATLAB Caffe 庫,還有 numpy , pandas 之類的Python類庫。安裝MATLAB,以確保mex 在path路徑中,這些就夠你折騰一個星期了,完事以後就可以編譯安裝了:
cp Makefile.config.example Makefile.config# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired)make allmake testmake runtest 哦對了,Caffe 顯卡要求:Titan Xs, K80s, GTX 980s, K40s, K20s, Titans, and GTX 770s
4. 如何在Windows環境下配置Caffe
第一步准備工作
1.首先網址載Caffe-Windows安裝包();
2.安裝Visual Studio 2013;
3.與需要使用NVIDIA顯卡請安裝CudaCuDNN需要裝;
4..\windows\CommonSettings.props.example 復制份並修改 .\windows\CommonSettings.props打做修改:
1)使用GPU安裝CUDACuDNNCpuOnlyBuild 改 true 並且 UseCuDNN 改 false;
2)安裝CuDNN情況CuDNND路徑復制CuDnnPath;
3)選擇支持Python或者MATLAB介面兩都支持設置PythonSupport或者MatlabSupporttrue同Python或者MATLAB路徑別粘PythonDirMatlabDir
第二步編譯
打.\windows\Caffe.sln編譯Caffe/convert_imageset、caffe、libcaffe、convert_mnist_data等根據提示需要進行caffe.exe訓練與測試主程序convert_imageset訓練測試數據LMDB使用程序!
5. caffe windows10 vs2013怎麼配置
1.配置環境
我在自己的筆記本配置的caffe,配置的環境為:Windows 7 64位 + cuda6.5 + Opencv2.49 +VS2013。假設在配置caffe之前,你已經准備好這些。
本文中將給出一些編譯好的依賴庫,如果你也是用的Windows 7 64位+VS2013,可以直接使用。
2.准備依賴庫
在Windows下配置caffe,一個很主要的問題就是依賴庫的編譯。不像在Ubuntu下那麼方便,在Windows下,依賴庫都需要使用vs2013進行編譯才能使用。下面我將介紹caffe需要的依賴庫(如果你也是win7 64位+VS2013,可以直接使用我提供的依賴庫)。
2.1 boost
boost可以下載源碼進行編譯,也可以直接下載安裝文件。我使用的是後者,方便、快捷。
我使用的是:boost_1.56_0-msvc-12.0-64.exe
注意下載適合你的配置環境的boost版本即可。
下載完畢,雙擊運行安裝文件即可。
2.2 Glog+Gflag+Protobuf+LevelDB+HDF5+LMDB+Openblas
這一部分的很多都是谷歌的開源庫,不容易下載(你懂的)。所以我使用的是Neil Z. SHAO『s Blog
提供的編譯好的。
下載完,解壓得到3rdparty文件夾。在下一段將會用到。
3.建立caffe工程
准備好了caffe需要的依賴庫和環境之後,下面就可以建立caffe的vs項目,進行編譯了。
3.1 下載caffe源碼
可以從caffe的github主頁下載源碼。
下載地址:Caffe』s GitHub
解壓文件,假設caffe源碼所在目錄為CAFFE_ROOT。
3.2 准備項目需要的依賴庫和系統環境變數
經過上一階段的准備,caffe項目所需的依賴庫都已經准備好。
1.首先設置系統環境變數(以我的為例):
CUDA_PATH_V6_5 安裝好cuda6.5之後,會自動添加環境變數CUDA_PATH_V6_5
OPENCV_2_49 D:/Tools/opencv2.49/build/
BOOST_1_56 D:/Tools/boost_1_56_0
2.將3rdparty文件夾放到CAFFE_ROOT
3.3 用vs建立caffe項目
1.用VS2013在CAFFE_ROOT下建立 win32 console application,選擇空項目。
將項目的平台由32位改為64位
2.修改項目屬性
項目——屬性——C/C++——常規——附加包含目錄
添加:
../include;
../src;
../3rdparty/include;
../3rdparty;
../3rdparty/include;
../3rdparty/include/openblas;
../3rdparty/include/hdf5;
../3rdparty/include/lmdb;
../3rdparty/include/leveldb;
../3rdparty/include/gflag;
../3rdparty/include/glog;
../3rdparty/include/google/protobuf;
項目——屬相——VC++目錄——包含目錄
添加:
$(CUDA_PATH_V6_5)\include;
$(OPENCV_2_49)\include;
$(OPENCV_2_49)\include\opencv;
$(OPENCV_2_49)\include\opencv2;
$(BOOST_1_56)
項目——屬性——鏈接器——常規——附加庫目錄
添加:
$(CUDA_PATH_V6_5)\lib\$(PlatformName);
$(OPENCV_2_49)\x64\vc12\lib;
$(BOOST_1_56)\lib64-msvc-12.0;
..\3rdparty\lib;
項目——屬性——鏈接器——輸入——附加依賴項
debug添加:
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib
cudart.lib
cuda.lib
nppi.lib
cufft.lib
cublas.lib
curand.lib
gflagsd.lib
libglog.lib
libopenblas.dll.a
libprotobufd.lib
libprotoc.lib
leveldbd.lib
lmdbd.lib
libhdf5_D.lib
libhdf5_hl_D.lib
Shlwapi.lib
gflags.lib
libprotobuf.lib
leveldb.lib
lmdb.lib
libhdf5.lib
libhdf5_hl.lib
release添加:
opencv_ml249.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib
cudart.lib
cuda.lib
nppi.lib
cufft.lib
cublas.lib
curand.lib
gflags.lib
libglog.lib
libopenblas.dll.a
libprotobuf.lib
libprotoc.lib
leveldb.lib
lmdb.lib
libhdf5.lib
libhdf5_hl.lib
Shlwapi.lib
3.4 編譯caffe
配置好caffe項目的屬性之後,下面就可以一步一步的編譯caffe了。
3.4.1 編譯./src中的文件
首先,將../src文件夾中的*.cpp文件添加到工程中。
依次編譯每一個*.cpp文件。
1.編譯blob.cpp
直接編譯時會報錯,缺少文件」caffe\proto\caffe.pb.h」
這個時候需要將proto.exe放到../3rdparty/bin文件夾
將GernaratePB.bat放在../scripts文件夾
運行bat腳本文件即可生成caffe.pb.h
然後就可以成功編譯。
2.編譯common.cpp
直接編譯這個文件,會出現關於getid和fopen_s的錯誤。可通過如下步驟修改:
在代碼前面添加:#include <process.h>
修改項目屬性:項目——屬性——C/C++——預處理器——預處理器定義
添加:_CRT_SECURE_NO_WARNINGS
在代碼中getid的位置進行如下修改:
#ifdef _MSC_VER
pid = getid();
#else
pid = _getid();
#endf
修改完畢之後,可以成功編譯。
3.編譯net.cpp
直接編譯這個文件,會出現關於mkstep、close、mkdtemp的錯誤。需要進行如下修改:
在io.hpp頭文件中添加:#include 「mkstep.h」
在io.hpp頭文件中,在close()的位置進行如下修改:
#ifdef _MSC_VER
close(fd);
#else
_close(fd);
#endif
在mkdtemp的位置進行如下修改:
#ifndef _MSC_VER
char* mkdtemp_result = mkdtemp(temp_dirname_cstr);
#else
errno_t mkdtemp_result = _mktemp_s(temp_dirname_cstr, sizeof(temp_dirname_cstr));
#endif
修改完畢,可以成功編譯。
4.編譯solver.cpp
直接編譯會出現關於snprintf的錯誤,需要進行如下修改:
#ifdef _MSC_VER
#define snprinf sprintf_s
#endif
修改完畢,可以成功編譯。
5.其他剩餘的cpp文件也依次編譯
3.4.2 編譯./src/layers中的文件
將./src/layers中的所有的cpp和cu文件都添加到項目中。
右鍵點擊cu文件,修改屬性。
在bnll_layer.cu文件,進行如下修改:
float kBNLL_THRESHOLD = 50 ——> #define kBNLL_THRESHOLD 50.0
依次編譯所有的文件。
3.4.3 編譯./src/util中的文件
將./src/util中所有的文件添加到項目
1.在io.cpp中
修改ReadProtoFromBinaryFile函數
O_RDONLY ——> O_RDONLY | O_BINARY
在代碼中進行如下修改:
#ifdef _MSC_VER
#define open _open
#endif
將close()改為_close()
2.在math_functions.cpp中
做如下修改:
#define __builtin_popcount __popcnt
#define __builtin_popcountl __popcnt
3.在db.cpp中
作如下修改:
#ifdef _MSC_VER
#include <direct.h>
#endif
修改CHECK_EQ
#ifdef _MSC_VER
CHECK_EQ(_mkdir(source.c_str()),0)<<」mkdir」<<source<<」failed」;
#else
CHECK_EQ(mkdir(source.c_str(),0744),0)<<」mkidr」<<source<<」failed」;
#endif
4.依次編譯其他文件
3.4.4 編譯./src/proto中的文件
參照上一步,將proto中的文件都添加到項目。
修改屬性:
項目——屬性——C/C++——預處理器——預處理器定義
添加:_SCL_SECURE_NO_WARNINGS
編譯所有文件。
3.4.5 編譯./tools中的文件
本文件夾下有多個cpp文件,通過它們的名字就可以知道相應的功能。添加不同的cpp文件到項目中,然後生成項目,就可以得到不同功能的exe文件。
將caffe.cpp添加到工程,生成項目,得到caffe.exe文件,可用於訓練模型
將computer_image_mean.cpp添加到工程,生成項目,得到的exe文件可用於將訓練樣本轉換為caffe使用的leveldb/lmdb數據集。
依次類推。
自此,caffe在Windows下的編譯已經完畢,接下來就可以使用它來訓練自己的模型了。
6. 連接了配置好caffe的伺服器,就可以在我的windows系統下使用caffe了嗎
這里的環境是WIN10+cuda v7.5 +cudnn v4 + opencv + pycharm+VS2013
使用的是GPU,我的GPU是titan16G+內存32G
首先是caffe的文件以及第三方庫的編譯,這里提供一個已經編譯好的的連接,我就是從那裡下好然後編譯完畢的。
7. 如何優雅地部署caffe程序
刀片伺服器安裝GPU加速卡的方法與安裝顯卡的方法和位置都是一致的。
1、顯卡的介面為PCIE介面,是安裝在刀片主板的PCIE插槽上的,GPU加速卡的介面為PCIE介面,也是安裝在PCIE插槽上的。 2、顯卡PCIE介面與GPU加速卡PCIE介面對比,可見完全相同:
8. caffe for windows安裝一定需要cuda嗎
建議還是放到linux下運行,實際上很多人把caffe放到伺服器上跑,而伺服器一般是不帶GPU的,所以caffe可以不依賴cuda,如果你不需要CUDA,你可以安裝CPU_ONLY版本:編輯文件 .\windows\CommonSettings.props,設置CpuOnlyBuild 為 true,UseCuDNN為false。
當然我還是建議在linux上跑
9. caffe的python介面求助
一、前期環境以及准備1、安裝python在caffe中,python2和python3的介面都有。但frcnn中只能支持python2.7,所以千萬不要裝成python3。為了方便,不用自己去pip一大堆庫,我建議安裝anaconda2,裡面已經安裝了很多第三方的庫。另附python,Windows的第三方庫,裡面很全。或許有一些庫你要去官網上下載。2、安裝(更新)顯卡驅動和cudaNVIDIA的顯卡驅動安裝應該不用我說了吧,到官網上下載吧。我要說明一點的是,我的1080ti在安裝顯卡驅動時,說和Windows不匹配。怎麼解決呢?更新Windows,到官網上下驅動,再安裝。成功!還有就是記得更新你的顯卡驅動,以防老的驅動不支持cuda。CUDA安裝的話,也是傻瓜試的安裝。提醒一點的是,不要改變他的安裝路徑,默認路徑。然後去NVIDIA的官網上下載cudnn庫,這個庫的話需要去NVIDIA注冊一個賬號,然後問你用這個來完成什麼工作之類的巴拉巴拉。這個庫長什麼樣呢?下載完解壓縮,得到一個cuda的文件夾,裡面有3個文件夾然後打開你的CUDA文件夾,默認路徑是C:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDA\v8.0把cudnn庫裡面的3個文件夾裡面的文件,分別加到cuda裡面對應的文件夾。然後打開cuda需要編譯的部分,默認路徑是C:\ProgramData\NVIDIACorporation\CUDASamples\v8.0因為我用的VS2015,那麼我就用打開2015的那個,然後改成release運行。至此,顯卡計算的環境就搭建完成了。3、cmake和gitcmake的話,我建議直接下載編譯好的能運行的文件(到官網上下載),然後解壓文件,把bin的路徑添加到Path中。git:因為frcnn裡面有很多linux的腳本,你可以不用,但用的話會很方便的。所以我建議安裝git。同樣,傻瓜式的安裝,直接到官網上下載。二、py-faster-rcnn1、編譯caffe的python介面GPU版本(如果你編譯過了就不用了)因為frcnn的編譯過程用需要用到python的caffe包,所以必須要先編譯一次caffe。如果你已經編譯過caffe的py介面就不用了。下載微軟的Caffe,git的地址你可以用git直接下載,或者在git的地址里下載,隨便你。[plain]打開caffe\scripts,然後編輯build_win.cmd文件第7行的VERSION是你VS的版本,VS2015對應的是14,VS2013對應的應該是12;第8行改為0;第9行改為0(如果你不用GPU,那就還是1);13行的python_version是你的python版本,2.x就是2,3.x就是3;24,28行是你的python的安裝目錄,如果你是anaconda就改你的anaconda的目錄,否則就不改。同樣69-95行同樣修改。以上2張圖是我的cmake文件配置。進入caffe\scripts,打開cmd,直接執行build_win.cmd。注意他會自動下載需要的庫,因為伺服器呢都不在國內,所以我建議掛個VPN,不然你且等呢吧。這樣cmake後呢,python的介面就已經編譯好了,不用再編譯一遍了。把caffe\python下的caffe的文件夾到python的第三方包的文件夾就ok。這樣caffe的python介面就好了,你可以進cmd的python試一下importcaffe。如果說,他提示少了什麼包,你直接pip這個包就好了,找不到的話,網路一下就有。但只要你跟著上面我的方法做應該不會出現什麼問題。2、編譯py-faster-rcnn依賴庫首先呢,我們先去編譯一下frcnn的依賴庫。Windows下,不能使用自帶的lib,把自帶的lib刪了,重新下載,這里給出git的地址。好了,現在你的庫應該長成這樣,有setup.py和setup_cuda.py。進cmd,install這2個文件。現在你肯定會遇到問題,提示你VC版本不對怎麼呢,先set一下:輸入SETVS90COMNTOOLS=%VS140COMNTOOLS%,VS後面的數字就是你的版本。還有不要忘了把你VS的c1.exe加到path下。編譯好frcnn的依賴庫後,應該是這個樣子的。3、給caffe加frcnn的層現在,我們再下載一個caffe,跟前面一樣,把build_win.cmd進行修改。然後我們就可以把frcnn的一些特有的層加到caffe里編譯了。1)添加層和文件打開py-faster-rcnn\caffe-fast-rcnn\src\caffe\layers文件夾,找到4個文件分別為然後到你新的caffe的對應文件夾caffe\src\caffe\layers里。接著我們添加頭文件,打開py-faster-rcnn\caffe-fast-rcnn\include\caffe,把fast_rcnn_layers.hpp這文件到caffe的對應文件夾下caffe\include\caffe。2)配置2個新層打開你的caffe\src\caffe\proto下的caffe.proto,進行編輯。在407行左右往原來的文件里添加新的層的配置信息[plain]_pooling_param=8266711;_l1_loss_param=8266712;messageROIPoolingParameter{//Pad,kernelsize,//,Xpairs.optionaluint32pooled_h=1[default=0];//_w=2[default=0];//Thepooledoutputwidth////_scale=3[default=1];}messageSmoothL1LossParameter{//SmoothL1Loss(x)=//0.5*(sigma*x)**2--ifx<1.0/sigma/sigma//|x|-0.5/sigma/sigma--otherwiseoptionalfloatsigma=1[default=1];}3)cmake新的caffe的python介面就是再執行一遍build_win.cmd就行。編譯好之後,把caffe根目錄下的python文件夾替換py-faster-rcnn\caffe-fast-rcnn的python文件夾。三、demo完成以上步驟你的py-faster-rcnn就已經編譯成功了。如果你想用demo測試一下的話可以用.\data\scripts里的腳本去下載已經訓練好的model,文件挺大的、速度挺慢的。所以給大家提供一個網路5,把caffemodel文件放在data\faster_rcnn_models,然後執行tools\demo.py就能看到結果了
10. ubuntu16.04 配置caffe環境 僅用cpu應該怎麼修改makefile文件
應該是caffe編譯需要的依賴環境沒安裝,試試輸入下面的指令 sudo apt-get install libhdf5-serial-dev