矩池雲上安裝caffe gpu教程
IPFS
用CUDA10.0鏡像
添加nvidia-cuda和修改apt源
curl -fsSL https://mirrors.aliyun.com/nvidia-cuda/ubuntu1804/x86_64/7fa2af80.pub | apt-key 添加 - && \ echo "deb https://mirrors.aliyun.com/nvidia-cuda/ubuntu1804/x86_64//" > /etc/apt/sources.list.d/cuda.list && \ bash /public/script/switch_apt_source.sh
安裝curand
易於安裝 cuda-curand-dev-10-0
修改conda源
bash /public/script/switch_conda_source.sh
創建python3.7虛擬環境
conda create -n py37 python=3.7 康達停用 conda 激活 py37
安裝依賴包
apt-get -y install libboost-dev libprotobuf-dev libgflags-dev libgoogle-glog-dev libhdf5-dev libopencv-dev protobuf-c-compiler protobuf-compiler libopenblas-dev libhdf5-dev libleveldb-dev liblmdb-dev libboost-system-開發 libboost-filesystem-dev libsnappy-dev libboost-thread-dev libatlas-base-dev libboost-python-dev
添加nvidia-machine-learning軟件源
curl -fsSL https://mirrors.cloud.tencent.com/nvidia-machine-learning/ubuntu1804/x86_64/7fa2af80.pub | apt-key 添加 - && \ echo "deb https://mirrors.cloud.tencent.com/nvidia-machine-learning/ubuntu1804/x86_64//" > /etc/apt/sources.list.d/cuda.list
安裝剩餘依賴包
適當的更新 易於安裝 libnccl2=2.6.4-1+cuda10.0 libnccl-dev=2.6.4-1+cuda10.0 apt-get install -y --no-install-recommends libboost-all-dev 點安裝提升 康達安裝opencv
git clone caffe 倉庫
git clone -b 1.0 --depth 1 https://github.com/BVLC/caffe.git cd咖啡 對於 $(cat python/requirements.txt) 中的請求;做點安裝 $req;完畢 cp Makefile.config.example Makefile.config git clone -b 1.0 --depth 1 https://gitee.com/matpools/caffe.git
尋找路徑
python -c "從 distutils.sysconfig 導入 get_python_inc; print(get_python_inc())" python -c "將 distutils.sysconfig 導入為 sysconfig;打印(sysconfig.get_config_var('LIBDIR'))"
(py37) root@a688d840812b:/caffe# python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())" /root/miniconda3/envs/py37/include/python3.7m (py37) root@a688d840812b:/caffe# python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))" /root/miniconda3/envs/py37/lib
查找numpy路徑
找到 /root/miniconda3/envs/py37/lib/ -name numpy
(py37) root@a688d840812b:/caffe# find /root/miniconda3/envs/py37/lib/ -name numpy /root/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/core/include/numpy
如果也是cuda10純鏡像可以直接複製下面的文件,然後保存。
##參考http://caffe.berkeleyvision.org/installation.html # 歡迎貢獻簡化和改進我們的構建系統! # cuDNN 加速開關(取消註釋以使用 cuDNN 構建)。 USE_CUDNN := 1 # CPU-only 開關(取消註釋以在沒有 GPU 支持的情況下構建)。 # CPU_ONLY := 1 # 取消註釋以禁用 IO 依賴項和相應的數據層 # USE_OPENCV := 0 # USE_LEVELDB := 0 # USE_LMDB := 0 # 在讀取 LMDB 文件時取消註釋以允許 MDB_NOLOCK(僅在必要時) # 如果您將使用任何讀取 LMDB,則不應設置此標誌 # 同時讀寫的可能性 # ALLOW_LMDB_NOLOCK := 1 # 如果您使用的是 OpenCV 3,請取消註釋 OPENCV_VERSION := 3 # 要自定義您選擇的編譯器,請取消註釋並設置以下內容。 # 注意 Linux 的默認值是 g++ 而 OSX 的默認值是 clang++ # CUSTOM_CXX := g++ # CUDA 目錄包含我們需要的 bin/ 和 lib/ 目錄。 CUDA_DIR := /usr/local/cuda # 在 Ubuntu 14.04 上,如果 cuda 工具是通過 # "sudo apt-get install nvidia-cuda-toolkit" 然後改用這個: # CUDA_DIR := /usr # CUDA 架構設置:與所有這些一起使用。 # 對於 CUDA < 6.0,註釋 *_50 到 *_61 行以確保兼容性。 # 對於 CUDA < 8.0,註釋 *_60 和 *_61 行以確保兼容性。 CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \ -gencode arch=compute_35,code=sm_35 \ -gencode arch=compute_50,code=sm_50 \ -gencode arch=compute_52,code=sm_52 \ -gencode arch=compute_60,code=sm_60 \ -gencode arch=compute_61,code=sm_61 \ -gencode arch=compute_61,code=compute_61 # BLAS 選擇: # ATLAS 的圖集(默認) # 用於 MKL 的 mkl # 打開 OpenBlas BLAS := 地圖集 # 自定義 (MKL/ATLAS/OpenBLAS) 包含和 lib 目錄。 # 留下評論以接受您選擇的 BLAS 的默認值 #(應該可以)! # BLAS_INCLUDE := /path/to/your/blas # BLAS_LIB := /path/to/your/blas # Homebrew 將 openblas 放在一個不在標準搜索路徑上的目錄中 # BLAS_INCLUDE := $(shell brew --prefix openblas)/include # BLAS_LIB := $(shell brew --prefix openblas)/lib # 僅當您將編譯 matlab 接口時才需要。 # MATLAB 目錄應包含 /bin 中的 mex 二進製文件。 # MATLAB_DIR := /usr/local # MATLAB_DIR := /Applications/MATLAB_R2012b.app # 注意:僅當您將編譯 python 接口時才需要這樣做。 # 我們需要能夠找到 Python.h 和 numpy/arrayobject.h。如果是自己弄需要改PYTHON_INCLUDE PYTHON_INCLUDE := /root/miniconda3/envs/py37/include/python3.7m \ /root/miniconda3/envs/py37/lib/python3.7/site-packages/numpy/core/include # /usr/include/python2.7 \ # /usr/lib/python2.7/dist-packages/numpy/core/include # Anaconda Python 發行版非常流行。包含路徑: # 驗證 anaconda 位置,有時它在 root 中。 # ANACONDA_HOME := $(HOME)/anaconda # PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ # $(ANACONDA_HOME)/include/python2.7 \ # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include # 取消註釋以使用 Python 3(默認為 Python 2)如果是自己弄需要改PYTHON_LIBRARIES PYTHON_LIBRARIES := boost_python3 python3.7m # PYTHON_INCLUDE := /usr/include/python3.5m \ # /usr/lib/python3.5/dist-packages/numpy/core/include # 我們需要能夠找到 libpythonX.X.so 或 .dylib。如果是自己弄需要改PYTHON_LIB PYTHON_LIB := /root/miniconda3/envs/py37/lib # PYTHON_LIB := $(ANACONDA_HOME)/lib # Homebrew 在非標準路徑中安裝 numpy(僅限小桶) # PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include # PYTHON_LIB += $(shell brew --prefix numpy)/lib # 取消註釋以支持用 Python 編寫的層(將鏈接到 Python 庫) # WITH_PYTHON_LAYER := 1 # 無論你發現你需要什麼,都在這裡。 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/lib/x86_64-linux-gnu # 如果 Homebrew 安裝在非標準位置(例如您的主目錄)並且您將其用於一般依賴項 # INCLUDE_DIRS += $(shell brew --prefix)/include # LIBRARY_DIRS += $(shell brew --prefix)/lib # NCCL 加速開關(取消註釋以使用 NCCL 構建) # https://github.com/NVIDIA/nccl(最後測試版本:v1.2.3-1+cuda8.0) USE_NCCL := 1 # 取消註釋以使用 `pkg-config` 指定 OpenCV 庫路徑。 # (通常不需要——OpenCV 庫通常安裝在上述 $LIBRARY_DIRS 之一中。) # USE_PKG_CONFIG := 1 # NB 構建和分發目錄都在 `make clean` 上被清除 BUILD_DIR := 構建 DISTRIBUTE_DIR := 分發 # 取消註釋以進行調試。由於 https://github.com/BVLC/caffe/issues/171 而在 OSX 上不起作用 # 調試:= 1 # 'make runtest' 將用於運行單元測試的 GPU 的 ID。 TEST_GPUID := 0 # 啟用漂亮的構建(評論以查看完整的命令) 問 ?= @
開始編譯
打掃乾淨 全部製作-j6 打掃乾淨 製作pycaffe -j6
設置環境變量
導出 PYTHONPATH=/caffe/python/:$PYTHONPATH 導出 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/miniconda3/envs/py37/lib
使用ipython環境測試
蟒蛇 進口咖啡 caffe.set_mode_gpu() 咖啡.__版本__
使用官方示例測試
#!/usr/bin/env sh # 這個腳本下載mnist數據並解壓。 DIR="$( cd "$(目錄名 "$0")" ; pwd -P )" cd "$目錄" echo "正在下載..." 在 train-images-idx3-ubyte 中的 fname train-labels-idx1-ubyte t10k-images-idx3-ubyte t10k-labels-idx1-ubyte 多夫 [ ! -e $fname ];然後 wget --no-check-certificate https://storage.googleapis.com/cvdf-datasets/mnist/${fname}.gz gunzip ${fname}.gz 菲 完畢 ./data/mnist/get_mnist.sh ./examples/mnist/create_mnist.sh ./examples/mnist/train_lenet.sh 英偉達-smi -l 5
參考文章
https://hub.docker.com/r/floydhub/caffe/tags?page=1&ordering=last_updated
https://github.com/tensorflow/datasets/blob/master/tensorflow_datasets/url_checksums/mnist.txt
https://www.cnblogs.com/laosan007/p/11737704.html
https://blog.csdn.net/u010417185/article/details/53559107
https://github.com/BVLC/caffe/issues/720
https://github.com/BVLC/caffe/issues/263
https://github.com/BVLC/caffe/issues/6063
喜歡我的作品嗎?別忘了給予支持與讚賞,讓我知道在創作的路上有你陪伴,一起延續這份熱忱!
- 來自作者