王权富贵:给Linux系统装配机器学习需要的软件

目录

1.安装UBUNTU16.04

2:apt-get的换源,和一些软件:

3.安装CUDA8和CUDNN5

4.pip安装系列,使用pip安装pytorch

5.matlab的MatConvNet的神经网络构架安装

6.安装caffe记录

安装pycharm

可选:


 


 

注:本教程使用的是Ubuntu16.04,其他新版本大部分都兼容。

1.安装UBUNTU16.04

用创建启动盘的方式安装Ubuntu16.04系统

安装VM虚拟机和Ubuntu镜像(或者桌面版的Ubuntu也可以)


2:apt-get的换源,和一些软件:

来自Kanny广小隶的总结:
1、更换下载速度快的国内源                PS:一定要换源,这样才下的快。

2、配置一个超级漂亮的主题!

===============================================

这里注意一下,了解deb格式的安装方法就好,不用特意安装。

如果安装了teamviewer的软件,进不了ctrl+alt+f1的命令行界面,它会使你要在输入密码的时候多敲一个回车,让你密码输入错误。所以已经安装teamviewer的同学也要卸载,在后面安装cuda的时候就需要进入命令行界面。

3、安装teamviewer,搜狗拼音输入法,网易云音乐,google浏览器与WPS


安装谷歌浏览器        PS:(可以直接下来来,用默认方法打开安装,不用下面的命令行)

                                         (安装谷歌浏览器的好处就是网页可以英文翻译)

查看截图设置             PS:(主要是对选取截图,按完后就可以鼠标选区截图)

                                          (这部是为了写博客,可以截取到素材)

3.安装CUDA8和CUDNN5

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev       (在安装cuda8之前先安装这个依赖)

安装cuda8和cudnn5                 PS:(主要步骤关闭x服务,卸载nvida驱动,安装cuda,配置路径这几步)

                                        (其中卸载nvida驱动到现在我还是不懂怎么做,大家知道可以在评论中告诉我)

                                          (最后我选用的是ubuntu更新nvida驱动,在安装cuda的时候取消cuda安装的显卡驱动)

查看apt-get安装位置              PS:(这里为了确认有些软件是不是我已经安装了,比如确认python2和python3有没有安装)

                                                      (apt-get install 这句话安装后,软件放在/usr/share/下)


4.pip安装系列,使用pip安装pytorch

安装pip:

用sudo apt-get install pip 安装pip,可能会定位不到pip包就使用sudo apt install pyhton-pip

接下来安装python库发现pip的版本过低,需要升级pip,报错如下。可是存在多个版本的pip所以

sudo pythonx -m pip install --upgrade pip   升级的时候pythonx这里的x版本要选对。

PS:       sudo pip install --upgrade pip           这样升级只能升级默认python对应的pip

You are using pip version 9.0.1, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

升级到pip高版本中in <module> from pip import main错误的解决方法

pip换源   PS:这里要注意ubuntu的位置是~/.pip/pip.conf,最开始的那些命令只是必要的创建步骤,不包含路径,要自己调整

这里创建一个apt_pip.sh文件,把下面脚本代码复制进去,就可以安装pip,升级pip和pip换源

#开始是安装pip
sudo apt install python-pip
#下面是升级Pip
rm ~/.pip/pip.conf    #这里是防止其他源干扰升级Pip
sudo pip install --upgrade pip  #升级Pip
echo "#!/usr/bin/python
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import __main__  
if __name__ == '__main__':  
    sys.exit(__main__._main())">./pip
sudo cp pip /usr/bin/pip
rm pip   #这两步是因为/usr/bin有权限设置,所以用复制的方法替换
#下面是Pip换源
cd ~
mkdir .pip
cd .pip
touch pip.conf
sudo chmod 755 pip.conf
echo "[global]
index-url = http://pypi.douban.com/simple #豆瓣源,可以换成其他的源
extra-index-url = https://pypi.tuna.tsinghua.edu.cn/simple #清华
trusted-host = 
    pypi.douban.com            #添加豆瓣源为可信主机,要不然可能报错
    pypi.tuna.tsinghua         #清华
timeout = 120"> pip.conf

安装Pytorch                          PS:(去官网拉下来就有了,这里一定要换源,用pip就安装特别快了)

从github上下载项目:

安装git使用  sudo apt install git -y 

然后 git clone https://github.com/具体网址/

安装python第三方库:模板 sudo pip3 install xxx

sudo pip3 install opencv-python                 PS:你也可以使用pip,不用pip3

如果使用python2.7的pip安装第三方库的时候可能报错如下:

错误1,如下:   
Matplotlib 3.0+ does not support Python 2.x, 3.0, 3.1, 3.2, 3.3, or 3.4.
Beginning with Matplotlib 3.0, Python 3.5 and above is required.
    
This may be due to an out of date pip.
    
Make sure you have pip >= 9.0.1.
    

先安装低版本的matplotlib如右边所示: pip2 install matplotlib==2.2.3

接着安装你要的第三方库。


5.matlab的MatConvNet的神经网络构架安装

安装matlab2017a                     PS:(需要matlab2015b的移步这里查找,这个最后我都没有安装上MatConvNet)

                                                          (这里之所以安装2017a的版本是为来安装MatConvNet这个matlab的机器学习框架。而这个框架GPU部分需要cuda配套,我们安装来cuda8,所以对应版本就是2017a。详情可以查看下面MatConvNet的安装)

官方MatConvNet:

下载:http://www.vlfeat.org/matconvnet/

编译:http://www.vlfeat.org/matconvnet/install/

使用代码一键编译:http://www.vlfeat.org/matconvnet/quick/ 

PS:(这里的matconvnet-1.0-betax版本尤为重要。)

如果cuda,gcc,g++版本高,会定义更多函数。对应matconvnet的高版本就会没定义这些函数。所以你使用低版本的matconvnet的时候,就会出现函数重复定义的情况。

如果cuda,gcc,g++版本低。对应matconvnet的低版本就会定义更多函数,来解决这些编译器没有定义函数的情况。所以你使用高版本的matconvnet的时候,就会出现函数未定义的情况。


我的解决办法是,安装一个高版本的GCC和G++,如6.5。CUDA就按下面对应版本配置就好。这时候编译的时候,他会报错,具体如下面GCC编译错误,这时候安装对应的GCC和G++即可。

(这里有一个必须先安装高版本的理由是,举个例子:这里GCC要求是4.7.X。其实4.6.X编译是不会报错的,当是就会出现上述的函数未定义的情况,这里尤为注意)

GCC编译的错误,切换gcc和g++        PS:(我经常使用方法1建立软链接的方式)

                                                          (这里要注意是/usr/bin/下文件和/usr/bin/gcc建立目录)

                                                          (注意切换GCC的时候,也要注意切换G++)

MatConvNet的mtalb对应版本和cuda安装包对应如下图:

编译GPU的时候出错如下:

解决:sudo apt-get install libjpeg62-dev


6.安装caffe记录

(在CUDA8,CUDNN9,python2.7环境下,千万别使用anaconda)

git clone https://github.com/Hwang64/caffe-mlkp.git
cd caffe-mlkp
make clean
make all -j16 && make pycaffe

接下里使用,复制命令复制配置文件:

sudo cp Makefile.config.example Makefile.config

然后打开配置文件:

sudo gedit Makefile.config

修改如下两句话:(PS:第一句话使用python接口,第二句话是使用cudnn)

# In your Makefile.config, make sure to have this line uncommented
WITH_PYTHON_LAYER := 1
# Unrelatedly, it's also recommended that you use CUDNN
USE_CUDNN := 1

hdf5一般也要修改,修改Makefile.config和Makefile这两个文件。参考

接下来使用protoc --version 确定libprotoc的版本一定要2.6.1

make clean可能出错,这时候用 sudo chmod -R 777 ./caffe-mlkp

创建的一个caffe.sh把下面的脚本复制进去,使用sh caffe.sh可以快速,将caffe的依赖安装好。

#caffe的依赖
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler -y
sudo apt-get install --no-install-recommends libboost-all-dev -y
sudo apt install protobuf-compiler libhdf5-serial-dev hdf5-helpers liblmdb-dev python-numpy libgflags-dev libblas-dev libgoogle-glog-dev libatlas-base-dev python-protobuf -y
sudo apt install liblmdb-dev -y
sudo apt-get install libgoogle-glog-dev -y
sudo apt install libatlas-base-dev -y
sudo apt-get install python-numpy -y
sudo cp caffe.mlkp.Makefile.config ./caffe-mlkp/Makefile.config
sudo cp caffe.mlkp.Makefile ./caffe-mlkp/Makefile
cd caffe-mlkp
make clean
make all -j16 && make pycaffe
#这里注意不一定要,我的caffe是由CUDA7.5编译的,我安装的是CUDA8可以兼容,所以直接复制
sudo cp /usr/local/cuda/lib64/libcudart.so.8.0 /usr/local/cuda/lib64/libcudart.so.7.5



先安装通用依赖,如下:参考。

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 

PS:下面错误也多数是依赖没有安装。

sudo apt install protobuf-compiler libhdf5-serial-dev hdf5-helpers liblmdb-dev python-numpy libgflags-dev libblas-dev libgoogle-glog-dev libatlas-base-dev python-protobuf

接下来make all -j16可能出错:

出错1如下:
src/caffe/util/upgrade_proto.cpp:1:45: fatal error: google/protobuf/io/coded_stream.h: 没有那个文件或目录
compilation terminated.

我不使用anaconda,所以使用 sudo apt install protobuf-compiler        

(安装anaconda后,anaconda的环境变量改变,默认使用anaconda下的protobuf-3.4.0了。caffe需要protobuf-2.6.1版本。参考

出错2,如下:
src/caffe/net.cpp:8:18: fatal error: hdf5.h: 没有那个文件或目录
compilation terminated.

这里有个小坑,是修改Makefile.config和Makefile这两个文件。参考

如果还找不带hdf5.h的话,说明没有安装完整配套的hdf5文件。参考

简化版如下:sudo apt install hdf5-helpers && sudo apt-get install libhdf5-serial-dev

出错3,如下:
Makefile:563: recipe for target '.build_release/src/caffe/util/db_lmdb.o' failed
make: *** [.build_release/src/caffe/util/db_lmdb.o] Error 1

解决办法:sudo apt install liblmdb-dev,参考

出错问题4,如下
./include/caffe/util/math_functions.hpp:7:26: fatal error: glog/logging.h: 没有那个文件或目录
compilation terminated.

解决办法:sudo apt-get install libgoogle-glog-dev,参考

问题5,如下:
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0-rc3
/usr/bin/ld: 找不到 -lcblas
/usr/bin/ld: 找不到 -latlas
collect2: error: ld returned 1 exit status
Makefile:554: recipe for target '.build_release/lib/libcaffe.so.1.0.0-rc3' failed

解决办法:sudo apt install libatlas-base-dev,参考

接下来make pycaffe可能出错:

CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
python/caffe/_caffe.cpp:11:31: fatal error: numpy/arrayobject.h: 没有那个文件或目录
compilation terminated.
Makefile:490: recipe for target 'python/caffe/_caffe.so' failed
make: *** [python/caffe/_caffe.so] Error 1

这个是numpy没有安装,使用:

sudo apt-get install python-numpy, 参考。

实际使用的时候:

出错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named caffe

解决:把caffe中的python导入到解释器中,参考。

出错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/yanshuren/MLKP/caffe-mlkp/python/caffe/__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
  File "/home/yanshuren/MLKP/caffe-mlkp/python/caffe/pycaffe.py", line 15, in <module>
    import caffe.io
  File "/home/yanshuren/MLKP/caffe-mlkp/python/caffe/io.py", line 2, in <module>
    import skimage.io
ImportError: No module named skimage.io

解决:pip install scikit-image

出错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/yanshuren/MLKP/caffe-mlkp/python/caffe/__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
  File "/home/yanshuren/MLKP/caffe-mlkp/python/caffe/pycaffe.py", line 15, in <module>
    import caffe.io
  File "/home/yanshuren/MLKP/caffe-mlkp/python/caffe/io.py", line 8, in <module>
    from caffe.proto import caffe_pb2
  File "/home/yanshuren/MLKP/caffe-mlkp/python/caffe/proto/caffe_pb2.py", line 6, in <module>
    from google.protobuf.internal import enum_type_wrapper
ImportError: No module named google.protobuf.internal

解决:sudo apt-get install python-protobuf


安装pycharm

ubuntu安装pycharm教学,这里要注意下载的版本要以前的2017。

可选:

sudo gedit /etc/hostname

可以看到我@后面用户名这么长,可以用上面这条命令改用户名,下次开机生效。

改完用sudo,这里会报个错误如下:sudo: 无法解析主机:xxxxx。需要根据下面的代码更改,文件中的hostname。不知道hostname的可以用hostname这条命令获取用户名。(sudo错误详情更改参考。)

sudo gedit /etc/hosts

 

初次使用设置root用户的密码

https://www.cnblogs.com/mecy1222/p/7063954.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值