您的位置:首页 > 编程语言 > Python开发

Ubuntu18.04下安装Anaconda,python3.6,cuda,cudnn,caffe

2018-12-28 22:11 921 查看

2018.12.27

首先安装一些依赖项

在Ubuntu命令行终端里输入下列命令

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

如果安装出现问题,可 sudo apt-get update

Anaconda

在官网下载Anaconda

这里选择linux下的python3.7版本,下载下来得到相应的一个.sh文件,直接用bash命令来运行就行。
注意安装过程中出现:是否把Anaconda的python作为默认的python,这里建议选择yes。若是因为其他原因没有添加路径,可参考以下方法进行路径转换。
在终端输入$ sudo gedit /etc/profile,打开profile文件。
在文件末尾添加一行:

export PATH=/home/grant/anaconda2/bin:$PATH, # “/home/grant/anaconda2/bin”替换自己的安装路径。


最后还会出现

这里选择No.
安装完成后,想要把python3.7换成python3.6版本,直接在终端输入conda install python=3.6时,提示:conda: command not found。解决方法如下:
1、 使用命令:vim ~/.bashrc 修改环境变量 (没有vim编辑器的,使用sudo apt install vim 命令安装vim文本编辑器)
2、在文本最后添加命令:export PATH=~/anaconda3/bin:$PATH
3、重启环境变量:source ~/.bashrc
4、输入: anaconda -V
5、显示:anaconda Command line client (version 1.7.2)
然后重新输入conda install python=3.6,即可进行版本转换。转换完成后终端输入python,显示:

caffe安装

git clone https://github.com/BVLC/caffe.git
cd caffe
mkdir build
cd build
cmake …(提示没有cmake安装即可)
make all 出错:

放弃以上错误,
按照添加链接描述进行移植操作:cp coords.hpp modified_permutohedral.hpp /home/kangm7/caffe/include/caffe/util/
然后在caffe/include/caffe/layer.hpp中添加如下代码:
#include “caffe/util/coords.hpp”
和以下代码:
virtual DiagonalAffineMap coord_map() {
NOT_IMPLEMENTED;
// suppress warnings
return DiagonalAffineMap(vector<pair<Dtype, Dtype> >());
}
然后转到caffe/build下首先$ make clean 然后$ make all -j4

2018.12.28

ubuntu 换源

1.打开Ubuntu
进入/etc/apt/ cd /etc/apt
2.在修改前先对 sources.list文件进行备份和修改sources.list 文件权限:
sudo cp sources.list sources.list.bak
sudo chmod 777 sources.list
3.用VIM打开sources.list文件
sudo vim sources.list
用#注释掉原先的源,或者ggdG清空文档,复制粘贴如下源:

#阿里云
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

保存退出,输入命令:
sudo apt-get update
sudo apt-get updrade更新源。
并没有什么卵用,所以我又改回来了。

这里有些其他操作忘记了


总是报Makefile:635: recipe for target ‘.build_release/tools/caffe.bin’ failed
猜测是没有安装opencv的原因,于是按照下面步骤安装:
首先下载opencv
可以git clone https://github.com/bearpaw/Install-OpenCV
进入Install-OpenCV/Ubuntu/2.4,然后执行脚本文件:sudo ./opencv2_4_10.sh

配置caffe的python环境

进入caffe-master/python文件夹下,然后在终端执行:

sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip
sudo pip install -r python/requirements.txt

为了后面能够使用python绘制caffe的网络模型等可视化操作,执行:

sudo apt-get install graphviz
sudo pip install pydot

这里第一步没有成功
然后cd caffe/ 下执行

make pycaffe

前面进行过cp Makefile.config.example Makefile.config等配置,这里将Makefile.config中设置修改为:
USE_OPENCV := 1
USE_LMDB := 1
并且之前进行了:Makefile.config(85行)中

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include

修改为

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

Makefile中(173行)修改为

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

修改完保存,然后在终端caffe下直接进行编译时仍然报错,make clean之后,竟然神奇的成功了
如下图:

编译结果:

然后进入python想import caffe 还是提示没有这个模块,于是分别执行

make test -j4
make runtest -j4

也没有报错,觉得有希望了呢。然后直接python ,import caffe 仍旧提示没有这个模块。忽然意识到可能是需要转到根目录下。。。 cd … 之后再python ,import caffe果然没有报错

然后新建项目train-CRF-RNN之后,再次导入caffe时依旧报错:

需要添加python环境变量。转到根目录下:
export PYTHONPATH=/home/kangm7/caffe/python:$PYTHONPATH
然后接着报错:

有博主说每次重新编译了caffe后都需要执行:sudo make pycaffe,试了一下,错误换成这样的了。

然后发现可能是较高版本的python和caffe不兼容,于是使用anaconda安装python2.7.
在根目录下:conda create -n py2 python=2
输入source activate py2,来激活python2,出现如下问题:

然后进入caffe目录下,重新执行$ make clean ,makeall−j4,make all -j4 ,makeall−j4, make test -j4 , $ make runtest -j4 ,
$ make pycaffe -j4 全部成功之后,重新导入caffe还是报上面的错误。
安装skimage包:

sudo apt-get install python-skimage

然后终于可以导入caffe了,,,本以为会很高兴但是此刻感觉自己已经麻木了。。。

训练CRF as RNN


看到issue里有大佬说这是因为caffe版本的问题。Error parsing text-format caffe.NetParameter

2019.1.1

换caffe版本
重新下载https://github.com/torrvision/caffe.git到train-CRFRNN文件夹下。
$ mkdir build ,$ cmake 不成功。…
然后转到caffe下:
$ mv Makefile.config Makefile.config
$ make 报错如下:

进行下列修改,首先是Makefile.config(85行)中

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include

修改为

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

Makefile中(173行)修改为

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

并没有卵用。。。

接下来去掉注释CPU_ONLY :=1 (8行)
注释掉CUDA有关的行:
#CUDA_DIR := /usr/local/cuda ()
#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
去掉注释WITH_PYTHON_LAYER := 1 (69行)
去掉注释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/i386-linux-gnu/hdf5/serial /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
#TEST_GPUID := 0
然后接着报错:

有大佬说这个问题疑似跟Ubuntu16.04的版本有关系,google到一个方法:在caffe的Makefile里面380多行

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
更改为
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

然而并没有卵用

移植辅助的文件:
将crfasrnn/caffe/include/caffe/util/下的coords.hpp和modified_permutohedral.hpp复制到caffe/include/caffe/util/下的coords.hpp和modified_permutohedral.hpp

2019.1.2

昨晚上没有改好,还以为今天要重装系统了呢,没想到来实验室百度了一下
Dtype dist = std::max(margin - sqrt(dist_sq_.cpu_data()[i]), 0.0)
这个错误,竟然找到了答案,caffe/src/caffe/layers/contrastive_loss_layer.cpp文件,将56行改为:

Dtype dist = std::max(margin - sqrt(dist_sq_.cpu_data()[i]), Dtype(0.0));

这个错误终于解决了,但是接着报错:

将Makefile.config中设置修改为:
USE_OPENCV := 1
USE_LMDB := 1
重新安装openCV. $ pkg-config --modversion opencv 查看openCV版本:3.2.0
依旧不行。

2019.1.3

使用ccmake … 后提示 Error when build caffe Unknown CMake command “caffe_set_caffe_link”。将caffe官方库下的cmake/Targets.cmake文件覆盖我从crf as rnn中下载的caffe库下的cmake/Targets.cmake。cmake成功了,但是重新make时报错:
/usr/include/boost/python/detail/wrap_python.hpp:50:11: fatal error: pyconfig.h: No such file or directory# include <pyconfig.h>
原因可能是python路径都改为了anaconda的路径,但是CPLUS的path没有设置,系统中我也没把anaconda设置成默认的python导致的。
解决方法:export CPLUS_INCLUDE_PATH=/usr/include/python2.7
之后make 依旧是上面的错误:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: