@fanisfun
2017-06-28T12:20:45.000000Z
字数 7244
阅读 5010
Caffe
time (2017-2-18)
Optional略
iso ubuntu-14.04.5-desktop-amd64.isorun Download(1.4GB)tgz cdDNN v5.1 Library for Linuxparallel_stuio_xe_2017_update2.tgzOptional UltralSO 制作U盘启动盘 on Windows。 F2 或 DEL 进入 BIOS, 启动顺序选 U盘。退出BIOS,进入Ubuntu安装界面,选择 安装Ubuntu,默认安装。 清除整个磁盘安装 选项。LVM/dev/sda。重启 电脑,恢复 BIOS 中的启动顺序为 硬盘 第一。通用依赖
sudo apt-get updatesudo apt-get install -y \libprotobuf-dev protobuf-compiler \libleveldb-dev libhdf5-serial-dev libsnappy-dev \libopencv-dev # opencvsudo apt-get install -y --no-install-recommends libboost-all-dev # boost-c++
其他依赖
sudo apt-get install -y \libgflags-dev libgoogle-glog-dev \liblmdb-dev
常用软件
sudo apt-get install -y \vim cmake openssh-server lrzsz git gparted
挂载U盘
sudo mkdir -p /mnt/usb # 创建挂载目录sudo fdisk -l # 查看U盘盘符sudo mount -t auto [/dev/sdb5] /mnt/usb # 挂载ll /mnt/usb # 测试挂载成功
拷贝软件
sudo cp -r /mnt/usb/softwares ~/cd ~/softwaressudo chown -R 755 . # 修改文件权限
卸载U盘
sudo umount /mnt/usb # 卸载U盘
关闭图形界面,防止 驱动更新 造成开机死循环。
Ctrl+Alt+F1 进入字符界面。
sudo service lightdm stop # 关闭桌面服务
安装 cuda 8.0。
sudo ./cuda_8.0.61_375.26_linux.run # 启动cuda安装程序## 安装引导1. Do you accept the previously read EULA?accept/decline/quit: accept `enter`2. Install NVIDIA Accelerated Graphics Driver for Linux-x86_86xxx?(y)es/(n)o/(q)uit: y `enter` # version ≥ 3703. Do you want to install a symbolic link at /uer/local/cuda?(y)es/(n)o/(q)uit: y `enter`4. Install the CUDA 8.0 Samples?* (y)es/(n)o/(q)uit: y `enter` # developEnter CUDA Samples Location[ default is /home/usr ]: `enter`* (y)es/(n)o/(q)uit: n `enter` # deploy
重启图形界面。
sudo service lightdm start # 启动桌面服务
配置环境变量
sudo suecho "export PATH=/usr/local/cuda-8.0/bin:$PATH" >> /etc/profile && source /etc/profileecho "/usr/local/cuda/lib64/lib" > /etc/ld.so.conf.d/cuda.conf && ldconfig -v | grep cudaexit
验证是否安装成功 if installed Samples
nvcc -V # 版本信息release 8.0nvidia-smi # 显卡管理器## if installed Cuda Samplescd ~/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuerymake./deviceQuery # 输出结尾为`pass`
cd ~/softwaressudo mv cudnn-8.0-linux-x64-v5.1.solitairetheme8 cudnn-8.0-linux-x64-v5.1.tgzsudo tar -zxvf cudnn-8.0-linux-x64-v5.1.tgzsudo cp cuda/include/cudnn.h /usr/local/includesudo cp cuda/lib64/libcudnn.* /usr/local/libsudo chmod a+r /usr/local/include/cudnn.hsudo chmod a+r /usr/local/lib/libcudnn.*
OptionalVersion ≥ 1.2.3 (Linked with Cuda8.0), 单机多卡支持。
unzip nccl-1.2.3-1-cuda8.0.zip && cd nccl-1.2.3-1-cuda8.0make CUDA_HOME=/usr/local/cuda test -j $(nproc)## tsetexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./build/lib./build/test/single/all_reduce_test 10000000## installsudo make PREFIX=/usr/local install
基础线性代数子程序(Basic Linear Algebra Subprograms)
MKL: Intel® Parallel Studio XE Cluster Edition for Linux Select
tar -zxvf parallel_studio_xe_2017_update2.tar.gzcd parallel_studio_xe_2017_update2sudo chmod a+x -R .sudo ./install.sh # or ./install_GUI.sh
配置环境变量
sudo suecho "/opt/intel/lib/intel64/opt/intel/mkl/lib/intel64" > /etc/ld.so.conf.d/intel_mkl.conf && ldconfig -v | grep intelexit
Atlas: Select
sudo apt-get install -y libatlas-base-dev
Version ≥ 3.1.0 兼容cuda8.0
解压源码
unzip opencv-3.2.0.zip && cd opencv-3.2.0
ippicv_linux_20151201 三方依赖包下载超时[2]。
ipp_file=../ippicv_linux_20151201.tgzipp_hash=$(md5sum $ipp_file | cut -d" " -f1)ipp_dir=3rdparty/ippicv/downloads/linux-$ipp_hashmkdir -p $ipp_dircp $ipp_file $ipp_dir
opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e ippicv_linux_20151201.tgz 拷贝进去。编译安装
sudo chmod a+x .mkdir build && cd buildcmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..make -j $(nproc) # 多线程编译sudo make install && sudo ldconfig # 安装并更新环境变量
Optional [3]挂载iso镜像
cd ~/softwaresmkdir matlab # 加载目录sudo mount -o loop MATHWORKS_R2014A.iso matlab # 解压sudo chmod 755 -R matlab
安装与激活
cd matlabsudo ./install # 选择不联网安装> 12345-67890-12345-67890 # 序列号> Crack/license_405329_R2014a.lic # 不联网安装激活文件
破解
sudo chmod -R a+w /usr/local/MATLABsudo cp Crack/Linux/libmwservices.so /usr/local/MATLAB/R2014A/bin/glnxa64/
卸载镜像
cd ..sudo umount matlab
下载Caffe release candidate 5
wget -O caffe-rc5.zip https://codeload.github.com/BVLC/caffe/zip/rc5unzip caffe-rc5.zip && rm caffe-rc5.zip && cd caffe-rc5
修改编译配置文件
cp Makefile.config.example Makefile.configsed -i 's/# USE_CUDNN := 1/USE_CUDNN := 1/' Makefile.configsed -i 's/# WITH_PYTHON_LAYER := 1/WITH_PYTHON_LAYER := 1/' Makefile.configsed -i 's/# OPENCV_VERSION := 3/OPENCV_VERSION := 3/' Makefile.configsed -i 's/BLAS := atlas/BLAS := mkl/' Makefile.config # if installed mkl
make all -j $(nproc)make test -j $(nproc)make runtest -j $(nproc)
Optional使用系统原生Python version 2.7.6
sudo apt-get install -y \python-pip python-dev \python-numpy python-scipy python-matplotlib \python-sklearn python-skimage \python-h5py python-protobuf python-leveldb \python-networkx python-nose python-pandas \python-gflags cython ipythonmake pycaffe -j $(nproc)make pytest -j $(nproc)
OptionalMatlab_2014a for Unix
sed -i 's/CXXFLAGS += -MMD -MP/CXXFLAGS += -MMD -MP -std=c++11/' Makefilesudo matcaffe -j $(nproc)sudo mattest -j $(nproc)
vim CMakeLists.txt- Change USE_NCCL to "ON"vim cmake/Dependencies.cmake- find "set(BLAS "Atlas" ...)"- change "Atlas" to "MKL"
mkdir cmake_build && cd cmake_build && cmake ..
cmake . -DCMAKE_BUILD_TYPE=Debug # 跳转到Debug模式下make -j $(nproc) && make installcmake . -DCMAKE_BUILD_TYPE=Release # 跳转到Release模式下make -j $(nproc) && make installmake symlink # softlink cmake_build to build
Debug 和 Release 下生成的可执行文件不会相互覆盖,Debug下都会有 -d 的后缀。
public static native HashMap<String, Float> predict(List<CalculateInfo> images,int reset,String modelFile,String trainedFile,int batchSize,int gpuId);
javac com/persist/.../Predict.java # get Predict.classjavah com.persist...Predict # get Predict.h
cmake_minimum_required(VERSION 2.8.8)set(SrcFile classify.cpp)# file(GLOB_RECURSE examples_srcs "${PROJECT_SOURCE_DIR}/porn-jni/*.cpp")find_package(JNI)if (JNI_FOUND)message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")endif()find_package(OpenCV REQUIRED)if (OpenCV_FOUND)message (STATUS "OpenCV_INCLUDE_DIRS=${OpenCV_INCLUDE_DIRS}")message (STATUS "OpenCV_LIBS=${OpenCV_LIBS}")endif()find_package(Caffe REQUIRED)if (Caffe_FOUND)message (STATUS "Caffe_INCLUDE_DIRS=${Caffe_INCLUDE_DIRS}")message (STATUS "Caffe_DEFINITIONS=${Caffe_DEFINITIONS}")message (STATUS "Caffe_LIBRARIES=${Caffe_LIBRARIES}")endif()message (STATUS "Caffe_Link=${Caffe_Link}")include_directories(${JNI_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${Caffe_INCLUDE_DIRS})add_library(PornJni SHARED ${SrcFile})target_link_libraries(PornJni ${Caffe_Link} ${JNI_LIBRARIES} ${OpenCV_LIBS} ${Caffe_LIBRARIES})
mkdir cmake_build && cd cmake_buildcmake .. && make -j $(nproc)