安装Caffe纪实
第一章 引言
在ubuntu16.04安装caffe,几乎折腾了一个月终于成功;做一文章做纪要,以便日后查阅。总体得出的要点是:首先,每操作一步,必须知道如何检验操作的正确性;笔者的多次失误是因为配置错误,但疏于检查引起;当然有些错误是ubuntu本身的bug;笔者不知,只能来来回回‘鬼打墙’直到某日发现;另一个经验只谈是对每一个支撑尽量知道它是用来干什么的,多百度几下没有坏处;最后一个经验是,对系统的基本结构要要框架了解,比如,通过apt-get的软件放在哪里,通过make install的软件又放在哪里;还有,编译的时候各种文件支持和路径支持在什么地方,这些诸多要素只能是点点滴滴积累。
本次安装目标:
1)保证是GPU版本的;
2)保证对Python支持;
第二章 安装ubuntu16-0-4
2.1 安装
这个过程基本没啥说的,有三个要点;
1)需要选择中文(否则就等着重装吧!);
2)要有WIFI先连上,这样省点时间;
3)安装好以后,进入系统; 立刻执行
>>>sudo apt-get update
>>>sudo apt-get upgrade
2.2 可能出现的出错提示和解决
出现:AppStream cache update completed, but some metadata was ignored due to errors;或
error message due to invalid AppStream file
这是ubuntu本身的bug,参考文;笔者是通过更换数据源反复执行sudo
apt-get update和sudo
apt-get upgrade完成,注意,这步很重要,很多编译错误从这里产生。
出现:
下列软件包的版本将保持不变:
gnome-software gnome-software-common liboxideqt-qmlplugin
liboxideqtcore0
liboxideqtquick0 oxideqt-codecs snapd
ubuntu-core-launcher ubuntu-software
升级了
0
个软件包,新安装了
0
个软件包,要卸载
0
个软件包,有
9
个软件包未被升级
解决:sudo
apt-get install gnome-software
sudo
apt-getinstall
liboxideqt-qmlplugin
sudo
apt-get install
snapd
一般不必装9个就可以,因为互相依赖,每装一个,同时将依赖包装好。
2.3安装质量检验
sudo
apt-get update
sudo
apt-get upgrade
最后出现下面提示就OK了:
升级了
0
个软件包,新安装了
0
个软件包,要卸载
0
个软件包,有
0
个软件包未被升级,
到此,ubuntu安装成功!
第三章 安装Nvidia驱动程序,让屏幕绚起来
3.1
安装英伟达驱动
sudo
add-apt-repository ppa:graphics-drivers/ppa
(回车后继续)
sudo
apt-get update
sudo
apt-get install nvidia-367
sudo
apt-get install mesa-common-dev
sudo
apt-get install freeglut3-dev
3.2
重新启动操作系统
之后重启系统让GTX1060显卡驱动生效 。
进入全新界面,立刻执行
sudo
apt-get update 和
sudo
apt-get upgrade 这一对指令。
3.3
安装质量检验
1检查指令:
运行:nvidia-smi
和nvidia-settings
分别看到效果;
**
Message: PRIME: No offloading required. Abort
**
Message: PRIME: is it supported? No
这种提示属于正常。
2
检查程序;测试OpenGL:
#include
<GL/glut.h>
void
init(void)
{
glClearColor(0.0,
0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glOrtho(-5,
5, -5, 5, 5, 15);
glMatrixMode(GL_MODELVIEW);
gluLookAt(0,
0, 10, 0, 0, 0, 0, 1, 0);
return;
}
void
display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,
0, 0);
glutWireTeapot(3);
glFlush();
return;
}
int
main(int argc, char *argv[])
{
glutInit(&argc,
argv);
glutInitDisplayMode(GLUT_RGB
| GLUT_SINGLE);
glutInitWindowPosition(0,
0);
glutInitWindowSize(300,
300);
glutCreateWindow("OpenGL
3D View");
init();
glutDisplayFunc(display);
glutMainLoop();
return
0;
}
编译程序:gcc
-o test test.c -lGL -lGLU -lglut
test:执行后显示窗口。
3.4
另一法--安装Nvidia显卡驱动
首先,禁用可能导致问题的开源驱动,编辑/etc/modprobe.d/blacklist.conf
;
sudo vim /etc/modprobe.d/blacklist.conf
添加以下内容:
blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist nvidiafb
blacklist rivatv
卸载干净所有安装过的nvidia驱动;
sudo apt-get remove --purge nvidia-*
执行以下命令添加驱动源;
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
以下步骤建议Ctrl+Alt+F1
切换到tty1
执行;
sudo service lightdm stop
sudo apt-get install nvidia-375 nvidia-settings nvidia-prime
sudo nvidia-xconfig
sudo apt-get install mesa-common-dev //
安装缺少的库
sudo apt-get install freeglut3-dev
sudo update-initramfs -u
sudo reboot
重启应该就不会遇到循环登录的问题;
第四章 安装cuda8.0
4.1
下载安装cuda8.0
下载
cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb
将它存入目录/home/tmp,并进入>>>cd /home/tmp,接着执行:
>>>sudo
dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb
>>>sudo
apt-get update
>>>sudo
apt-get install cuda
4.2
配置cuda环境
配置环境变量1:
执行
>>>
sudo gedit ~/.bashrc
进入gedit编辑器,在文件的尾部,加入:
export
PATH="/usr/local/cuda-8.0/bin:$PATH"
export
LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
更周全的写法是:
if
[ ! -n "$PATH" ] ;then
export PATH="/usr/local/cuda-8.0/bin"
else
export PATH="/usr/local/cuda-8.0/bin:$PATH"
fi
if [ ! -n "$LD_LIBRARY_PATH" ]
;then
export
LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64"
else
export
LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
fi
存盘退出;执行:
>>>
source ~/.bashrc
(此处最好用
echo
$PATH echo $LD_LIBRARY_PATH 检查一下有没有错误,非常重要!!)
配置环境变量2:
执行:
>>>
sudo gedit /etc/profile
在打开的文件末尾加入:
export PATH="/usr/local/cuda/bin:$PATH"
(等号后不可有空格)
更严密的写法:
if
[ ! -n "$PATH" ] ;then
export PATH="/usr/local/cuda/bin"
else
export PATH="/usr/local/cuda/bin:$PATH"
fi
创造链接:
>>> sudo gedit
/etc/ld.so.conf.d/cuda.conf
在打开的文件末尾加入:(此时为空文件)
/usr/local/cuda/lib64
然后执行:
>>>
sudo ldconfig
4.3检查cuda的安装
进入cuda的安装路径,
>>>
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
编译:
>>>
sudo make
>>>
sudo ./deviceQuery (执行编译后的测试程序)
显示:
一整屏幕的信息
;
最后一句是:
Result = PASS
此时说明
cuda
安装成功,因为后面的操作可能破坏
cuda
,操作前后经常检查
cuda
是否
OK.
第五章
安装CUDNN5.1
和
python
5.1
安装
cudnn
部分
下载
cudnn
,费时很长,建议下载后保存。
解压:
tar
-zxvf cudnn-8.0-linux-x64-v5.1.tgz
此步骤后,生成
cuda
目录
;
进入
cuda
后,有
include
和
lib64
两个子目录
。进入
include
目录:
sudo
cp cudnn.h /usr/local/cuda/include/
#复制头文件
退出
include;
进入
lib64
目录:
sudo cp lib* /usr/local/cuda/lib64/ #
复制动态链接库
进入目标目录:
cd /usr/local/cuda/lib64/
修改文件软链接:
sudo rm -rf libcudnn.so libcudnn.so.5 #
删除原有动态文件
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #
生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #
生成软链接
(
源目录中有两个软链接,
libcudnn.so libcudnn.so.5
,将他们删除,建立你具体版本
5.1.5
的软链接
)
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
给所有用户增加这些文件的读权限
;
5.
2
升级
python
部分
1
基本
python
升级
因为
ubuntu
16
已经默认安装了
python
,所以,出于用
python
开发的目的,现将必须的
python
的相关包安装
;
除此之外,需要将
IDE
开发平台
pycharm
安装进去
;
sudo apt-get install python-numpy
sudo apt-get install python-scipy
sudo apt-get install python-pandas
sudo apt-get install python-sklean
(sudo apt-get install python-matplotlib
sudo apt-get install python-statsmodels
此二者自然装好了
)
2
基本
pycharm
升级
按照官网给出的安装指导【
2
】进行安装。
进入下载目录:
$ cd Downloads/
解压:
$ tar xfz pycharm-*.tar.gz
删除原压缩文件:
$ rm pycharm-*.tar.gz
进入执行文件目录:
$ cd pycharm-community-3.4.1/bin/
执行安装
$
./pycharm.sh
3
测试
python
的环境
from
pylab
import
*
X = np.linspace(-np.pi, np.pi, , endpoint=True)
C, S = np.cos(X), np.sin(X)
plot(X, C)
plot(X, S)
show()
第六章 关于
OPENCV
opencv
可能偶然装上了,但是编译
opencv
可以检查整个系统的配置过程是否正确,这里先编译
opencv3.1
以验证环境的正确与否。也就说这里将能否编译通过
opencv
作为测试本机工作环境的标尺。可以发现,通过安装
opencv
的支持包,发现系统有许多支持包没有搭建完成。
sudo dpkg --purge cuda-repo-ubuntu1504-7-5-local
6.1
检查
opencv
经过上面的安装,
opencv
可能已经附带安装好,检查如下:
apt-cache search opencv
6.2
安装
opencv
所需的库(编译器、必须库、可选库)
转载请说明 http://www.cnblogs.com/llxrl/p/4471831.html
GCC 4.4.x or later
CMake 2.6 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394--dev
sudo apt-get install libqt4-dev libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip |
6.3编译opencv
从官网下载最新opencv源码(2.4以上)http://sourceforge.net/projects/opencvlibrary/
将opencv放至任意目录/home/myname/tmp,
unzip opencv- 3.0. 0-rc1. zip
cd opencv- 3.0. 0
修改modules/cudalegacy/src/graphcuts.cpp文件:
sudo gedit /tmp/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp
将:
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)|
改成:
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)||(CUDART_VERSION>=8000)
存盘退出。
创建编译目录:
mkdir release
cd release
编译:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_OPENGL=ON -D WITH_QT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..
make -j4 sudo make install
6,4测试opencv
1) 创建工作目录
mkdir ~/opencv-lena
cd ~/opencv-lena
gedit DisplayImage.cpp
2) 编辑如下代码
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -;
}
Mat image;
image = imread( argv[], );
if ( !image.data )
{
printf("No image data \n");
return -;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey();
return ;
}
3) 创建CMake编译文件
gedit CMakeLists.txt
写入如下内容
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
4) 编译
cd ~/opencv-lena
cmake .
make
5) 执行
此时opencv-lena文件夹中已经产生了可执行文件DisplayImage,下载lena.jpg放在opencv-lena下,运行
./DisplayImage lena.jpg
6) 结果
aaarticlea/jpeg;base64,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" alt="" name="图像1" width="200" height="225" align="bottom" border="0" />
第七章
python
和
opencv
的关系
7.1
在
python
调用
opencv
opencv
和
python
基本独立,但是,为了在
python
下调用
opencv
,在
opencv
编译的时候,就多出一项
cv
2.so
这个库,将这个库移到
python
的外部包路径上
/usr/lib/python2.7/dist-packages
,就可以调用
opencv
了
ubuntu
系统默认安装了
python
,为了建立
opencv
和
python
的关系,使
python
能够使用
opencv
,则必须安装
cv
2
库,有
如下安装:
sudo apt-get install python-opencv
这样
python
目录下多出一个:
/usr/lib/python2.7/dist-packages/cv2.x86_64-linux-gnu.so
建立软链接:
cd /usr/lib/python2.7/dist-packages
sudo ln -s cv2.x86_64-linux-gnu.so cv
2.so
在
python
中可以
import cv
2
进行调用了。
7.2
在caffe环境中,python的支撑包
去caffe的github下载caffe源码包,
进入caffe-master下的python目录.执行如下命令:
cat requirements.txt
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
以上包还有它们的依赖,需要以下操作安装:
for req in $(cat requirements.txt); do pip install $req; done
由于依赖包存在先后顺序,首次操作某些包的依赖排在该包的后面安装,因而该包安装无法完成
;
遇到这种情况让它继续进行,当安装完成后
;
再次执行该指令,直到全部安装完成
;
一般需要重复执行两次以上才能完成。
第八章
安装编译
Caffe
安装编译
8
.1
安装
caffe
基本依赖
sudo
apt-get update
sudo apt-get upgrade
sudo apt-get install -y
build-essential
sudo
apt-get install -y cmake
sudo
apt-get install -y git
sudo
apt-get install -y pkg-config
sudo
apt-get install -y libprotobuf-dev
sudo
apt-get install -y libleveldb-dev
sudo
apt-get install -y libsnappy-dev
sudo
apt-get install -y libhdf5-serial-dev
sudo
apt-get install -y protobuf-compiler
sudo apt-get install -y
libatlas-base-dev
sudo apt-get install -y
--no-install-recommends libboost-all-dev
sudo apt-get install
-y libgflags-dev
sudo
apt-get install -y libgoogle-glog-dev
sudo
apt-get install -y liblmdb-dev
sudo apt-get install -y
python-pip
sudo apt-get install -y python-dev
sudo apt-get
install -y python-numpy
sudo
apt-get install -y python-scipy
sudo apt-get install -y
libopencv-dev
以上安装除了Python相关的,要保证全部成功,必要时可以修改下载源文件,笔者用阿里源成功。
8
.
2
安装
caffe
基本依赖
终于来到这里了!进入caffe-master目录,复制一份Makefile.config.examples
执行:
cp
Makefile.config.example Makefile.config
sudo
gedit Makefile.config
##
Refer to http://caffe.berkeleyvision.org/installation.html
#
Contributions simplifying and improving our build system are welcome!
#
cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN
:= 1
#
CPU-only switch (uncomment to build without GPU support).
#
CPU_ONLY := 1
#
uncomment to disable IO dependencies and corresponding data layers
#
USE_OPENCV := 0
#
USE_LEVELDB := 0
#
USE_LMDB := 0
#
uncomment to allow MDB_NOLOCK when reading LMDB files (only if
necessary)
# You
should not set this flag if you will be reading LMDBs with any
# possibility
of simultaneous read and write
#
ALLOW_LMDB_NOLOCK := 1
#
Uncomment if you're using OpenCV 3
#
OPENCV_VERSION := 3
#
To customize your choice of compiler, uncomment and set the
following.
#
N.B. the default for Linux is g++ and the default for OSX is clang++
#
CUSTOM_CXX := g++
#
CUDA directory contains bin/ and lib/ directories that we need.
CUDA_DIR
:= /usr/local/cuda
#
On Ubuntu 14.04, if cuda tools are installed via
#
"sudo apt-get install nvidia-cuda-toolkit" then use this
instead:
#
CUDA_DIR := /usr
#
CUDA architecture setting: going with all of them.
#
For CUDA < 6.0, comment the *_50 lines for compatibility.
CUDA_ARCH
:= -gencode arch=compute_20,code=sm_20 \
-gencode
arch=compute_20,code=sm_21 \
-gencode
arch=compute_30,code=sm_30 \
-gencode
arch=compute_35,code=sm_35 \
-gencode
arch=compute_50,code=sm_50 \
-gencode
arch=compute_50,code=compute_50
#
BLAS choice:
#
atlas for ATLAS (default)
#
mkl for MKL
#
open for OpenBlas
BLAS
:= atlas
#
Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
#
Leave commented to accept the defaults for your choice of BLAS
#
(which should work)!
#
BLAS_INCLUDE := /path/to/your/blas
#
BLAS_LIB := /path/to/your/blas
#
Homebrew puts openblas in a directory that is not on the standard
search path
#
BLAS_INCLUDE := $(shell brew --prefix openblas)/include
#
BLAS_LIB := $(shell brew --prefix openblas)/lib
#
This is required only if you will compile the matlab interface.
#
MATLAB directory should contain the mex binary in /bin.
#
MATLAB_DIR := /usr/local
#
MATLAB_DIR := /Applications/MATLAB_R2012b.app
#
NOTE: this is required only if you will compile the python interface.
#
We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE
:= /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
#
Anaconda Python distribution is quite popular. Include path:
#
Verify anaconda location, sometimes it's in 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 \
#
Uncomment to use Python 3 (default is Python 2)
#
PYTHON_LIBRARIES := boost_python3 python3.5m
#
PYTHON_INCLUDE := /usr/include/python3.5m \
#
/usr/lib/python3.5/dist-packages/numpy/core/include
#
We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB
:= /usr/lib
#
PYTHON_LIB := $(ANACONDA_HOME)/lib
#
Homebrew installs numpy in a non standard path (keg only)
#
PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core;
print(numpy.core.__file__)'))/include
#
PYTHON_LIB += $(shell brew --prefix numpy)/lib
#
Uncomment to support layers written in Python (will link against
Python libs)
#
WITH_PYTHON_LAYER := 1
#
Whatever else you find you need goes here.
#old:INCLUDE_DIRS
:= $(PYTHON_INCLUDE) /usr/local/include
#old:LIBRARY_DIRS
:= $(PYTHON_LIB) /usr/local/lib /usr/lib
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
/usr/lib/x86_64-linux-gnu/hdf5/serial
#
If Homebrew is installed at a non standard location (for example your
home directory) and you use it for general dependencies
#
INCLUDE_DIRS += $(shell brew --prefix)/include
#
LIBRARY_DIRS += $(shell brew --prefix)/lib
#
Uncomment to use `pkg-config` to specify OpenCV library paths.
#
(Usually not necessary -- OpenCV libraries are normally installed in
one of the above $LIBRARY_DIRS.)
#
USE_PKG_CONFIG := 1
#
N.B. both build and distribute dirs are cleared on `make clean`
BUILD_DIR
:= build
DISTRIBUTE_DIR
:= distribute
#
Uncomment for debugging. Does not work on OSX due to
https://github.com/BVLC/caffe/issues/171
#
DEBUG := 1
#
The ID of the GPU that 'make runtest' will use to run unit tests.
TEST_GPUID
:= 0
#
enable pretty build (comment to see full commands)
Q
?= @
8.3编译
>>>
make all -j4
cd
caffe-master //此时位置应该处于
caffe
文件夹下
>>>make
all -j4
// j4代表计算机
cpu
有
4
个核,因此可以多线程一起
make
,这样
make
的速度会快很多。
>>>make
runtest
-j4 // 检测编译项目
[ [ [ [ [ [ [ [----------] [----------] [==========] [ |
>>>make
pycaffe
// 如果以后用
python
来开发的话必须执行这一句,
|
>>>make
distribute
// 一般不管你是否用
python
,都会执行这一句
cp # cp mkdir cp # cp cp # cp install cd # cp |
常见问题:
1、提示make:protoc:命令未找到,这是因为protoc未安装,只需安装就行。
>>>sudo
apt-get install protobuf-c-compiler protobuf-compiler
问题1
/usr/bin/ld:
找不到
-lopencv_imgcodecs
collect2:
error: ld returned 1 exit status
Makefile:566:
recipe for target '.build_release/lib/libcaffe.so.1.0.0-rc3' failed
make:
*** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1
安装Caffe纪实的更多相关文章
- Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)
0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...
- Caffe + Ubuntu 14.04 64bit + 无CUDA(linux下安装caffe(无cuda)以及python接口)
安装Caffe指导书 环境: Linux 64位 显卡为Intel + AMD,非英伟达显卡 无GPU 一. 安装准备工作 1. 以管理员身份登录 在左上角点击图标,搜索terminal(即终端),以 ...
- Ubuntu 14.04上安装caffe
本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...
- [caffe]linux下安装caffe(无cuda)以及python接口
昨天在mac上折腾了一天都没有安装成功,晚上在mac上装了一个ParallelDesktop虚拟机,然后装了linux,十分钟就安装好了,我也是醉了=.= 主要过程稍微记录一下: 1.安装BLAS s ...
- 20160512关于mac安装caffe的记录
记得2015年在mac系统上安装过一次caffe,非常顺利,但是最近群里许多同学反映mac安装caffe出现了各种问题,同时我也在帮助别人安装caffe的时候也遇到了一些坑,不再像以前这么顺利了.估计 ...
- docker安装caffe
[最近一直想要学习caffe,但是苦苦纠结于环境安装不上,真的是第一步都迈不出去,还好有docker的存在!下面,对本人如何利用docker安装caffe做以简单叙述,不属于教程,只是记录自己都做了什 ...
- 【记录】在MAC上安装caffe
---恢复内容开始--- 最近尝试在MAC(OS X 10.11 El Capitan)上安装Caffe 以及Python接口遇到了一些问题但是官方安装教程上并没有提出这些问题的解决办法搜索了很久(主 ...
- [转]centos 6.5安装caffe
centos 6.5安装caffe 原文地址:http://blog.csdn.net/wqzghost/article/details/47447377 总结:在安装protobuf,hdf5等 ...
- Caffe初学者第一部:Ubuntu14.04上安装caffe(CPU)+Python的详细过程 (亲测成功, 20180524更新)
前言: 最近在学习深度学习,最先要解决的当然是开源框架的环境安装了.之前一直在学习谷歌的Tensorflow开源框架,最近实验中需要跟别人的算法比较,下载的别人的代码很多都是Caffe的,所以想着搭建 ...
随机推荐
- JAVA将汉字转换为全拼以及返回中文的首字母,将字符串转移为ASCII码
import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseT ...
- C# 图片处理方法 整理汇总
/// <summary> /// 图片转为base64编码字符 /// </summary> /// <param name="path">图 ...
- Erlang-接口技术
系统的构建一定会设计到简历接口,让他与不同的语言的应用程序之间简历系统的联系.这就叫做erlang的接口技术. 接口技术的三种实现方法: 1.让程序以外部操作系统进行的形式在Erlang虚拟机以外运行 ...
- React Native 安卓 程序运行报错: React Native version mismatch(转载)
这个问题已经得到解决,参照stackoverflow上的问题:https://stackoverflow.com/que...这个问题的原因就处在Android工程中app/build.gradle中 ...
- 德州扑克AI--Programming Poker AI(译)
前言: 最近在研究德州扑克的AI, 也想由浅入深的看下, 在网上找了一圈, 发现很多文章都提到了一篇文章: Programming Poker AI. 仔细拜读了一下, 觉得非常不错. 这里作下简单的 ...
- Redis配置文件 redis.conf 解读(一)
# Redis configuration file example# redis配置文件模板# Note on units: when memory size is needed, it is po ...
- 2018.5.2 file结构体
f_flags,File Status Flag f_pos,表示当前读写位置 f_count,表示引用计数(Reference Count): dup.fork等系统调用会导致多个文件描述符指向同一 ...
- springMvc---跨服务器文件上传(实测总结)
序言: 该案例是采用springMvc实现跨服务器图片上传功能,其中用到的主要类和工具有:CommonsMultipartResolver.jquery.form.js.如果要实现多个文件上传,只需要 ...
- 深入学习Motan系列(三)——服务发布
袋鼠回头看了看文章,有些啰嗦,争取语音简练,不断提高表达力!袋鼠奋起直追! 注:此篇文章,暂时为了以后时间线排序的需要,暂时发表出来,可是仍然有许多地方需要改写.自己打算把服务端发布,客户端订阅都搞定 ...
- asp.net服务器控件button先执行js再执行后台的方法
服务器控件增强了在后台处理的能力,但是在前台有时候也被受到了限制. 关于button这个服务器控件,我一直想减少它向服务器提交数据.那些检测,还是在客户端实现就好了.这就需要javascript,但是 ...