神经风格转移:Anaconda快速搭建DL框架学梵高(Van Gogh)绘画Ubuntu16.04 CPU&GPU版

神经风格转移:Anaconda快速搭建DL框架学梵高(Van Gogh)绘画 Ubuntu16.04 CPU&GPU版

最近开始学ML和DL的知识,开始新的方向,像吴恩达说的,看的再多,不跑几个Demo做几个实验,还是理解不了,所以找了个基于DL做的包跑了一下,还挺有意思的,DL的框架都是别人搭好的,可以直接用,把环境配置一下就可以快速开始了,亲手操作一遍会对DL的有一些更直观的感受。


一、配环境—CPU版

我是在anaconda中创建的环境

1.先建一个以van为名字的conda 环境

conda create -n van python=2.7 scipy numpy pillow git tensorflow

重点是要测试一下tensorflow能不能正常运行

python
>>>import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42

有输出就代表tensorflow可以运行了,其实只要输入import tensorflow as tf没有报错就基本没问题了。

2.跟着下载别人搭好的DL框架neural-style下载,我把它保存在tensorflow的文件夹里面(当然你保存在其他地方也可以 do what you want)

cd ~/anaconda3/envs/van/lib/python2.7/site-packages/tensorflow
git clone https://github.com/anishathalye/neural-style.git

3.然后下载vgg19,保存在neural-style的文件夹根目录下

cd neural-style
wget http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat

van
4.到这里环境的配置工作就基本完成了,输入指令开始训练模型

python neural_style.py --content ./examples/tong.jpg --styles ./examples/2-style2.jpg --output ./examples/test-tong.jpg

主要是三个参数

  • –content:目标图片(要模仿梵高画作的图片)
  • –styles:训练图片,以此图片的特征来训练神经网络(这个包里只提供了三种风格的梵高画)
  • –output:输出图片

van-2

效果对比:
tong
test
跑这个图用CPU花了七个小时,如果用GPU版的tensorflow可能十几分钟就完工了(GPU:TITAN xp)。


二、配环境—GPU版

用GPU最麻烦的就是配环境,成功之后那做实验效果飞一般的爽快,所以大家咬咬牙还是把环境配了。
而且如果同样使用anaconda来辅助搭环境,会少踩不少坑,墙裂推荐!!!
本人的系统是Ubuntu16.04 LTS,显卡 TITAN XP

需要安装的依赖项:

  • CUDA8.0(最难搞这个,不成功分分无限循环登录界面)
  • CUDNN5.1
  • GCC 4.9
  • Tensorflow-gpu版

1.CUDA 8.0

不得不说,官方教程是最详细可行的,安装的时候看不了不少别人的博客文档,问题可说是千奇百怪,墙裂建议下一份官方文档做参考,综合别人写的教程来安装会少出问题。
CUDA8.0官方教程


①先确认自己电脑是否具备安装条件

a) 检查自己的GPU是否是CUDA-capable

在终端中输入:lspci | grep -i nvidia

会显示自己的NVIDIA GPU版本信息,然后去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中
GPU支持列表

b) 检查自己的Linux版本是否支持 CUDA
Ubuntu 14.04和16.04两个版本都支持CUDA

c) 检查自己的系统中是否装了gcc

查看自己的gcc版本: gcc –v

d) 检查是否安装了kernel header和 package development
CUDA 和 nvidia驱动编译安装需要内核头文件

查看自己的kernel版本:uname –r
在终端中输入:sudo apt-get install linux-headers-$(uname -r)

若以上的检查都没有问题,就可以开始正式的安装了。


②选择安装方式

CUDA 有两种安装方式:

  • package manager安装:简单,但是用这种方法安装失败了,还是老实用第二种
  • runfile安装(本文所用的安装方式)

CUDA下载地址
根据自己的系统版本选择,只要最后一项安装包类型选择runfile就行了


③安装CUDA

a) 禁用 nouveau

终端中运行:lsmod | grep nouveau,如果有输出则代表nouveau正在加载。

需要禁用nouveau:
创建blacklist-nouveau.conf

touch /etc/modprobe.d/blacklist-nouveau.conf  
gedit blacklist-nouveau.conf  

在文件中添加以下内容:

blacklist nouveau
options nouveau modeset=0

重新生成内核的initramfs

sudo update-initramfs –u1

然后再次运行lsmod | grep nouveau检查是否禁用成功,如果运行后没有任何输出,则代表禁用成功。

b) 重启电脑,到达登录界面时,alt+ctrl+f1,进入text mode,登录账户

c) 关闭图形化界面

sudo  service lightdm stop

d) 切换到cuda安装文件的路径(一般都是在Downloads文件夹里面),输入(具体根据自己下的版本号来执行,最后那个指令是不按照openGL)

sudo chmod a+x cuda_8.0.61_375.26_linux.run --no-opengl-files

按照提示一步步操作

一开是cuda的描述,一直回车到100%即可,然后输入accept
遇到是否安装openGL,一定输入n,然后提示是否安装nvidia-xconfig,如果你的电脑还存在一个核显或者集显就输入n,反之输入y

下一个提示是 是否安装CUDA Toolkit,输入y

后面的提示都是使用默认或者y了

安装完会显示哪些安装成功,哪些安装失败

e) 重新启动图形化界面

sudo service lightdm start 

Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。

如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。
如果,我说如果,出现了无限循环登录的情况,那…就尴尬了,自己另外百度吧,本人之前试了各种办法没解决

f) 重启电脑。检查Device Node Verification。

检查路径/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files)
如果没有的话,可以参考官方文档里的指导步骤,进行添加。

g) 设置环境变量。

输入

sudo gedit /etc/profile 

在文件末尾,添加以下两行。

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH

保存文件。

这里有点与官方安装文档稍有不同,需要说明:

官方文档里说只需在终端中运行上述两条export语句即可,但如果不将它们不写入/etc/profile文件的话,这样的环境变量在你退出终端后就消失了,不起作用了,所以写入才是永久的做法。

h) 重启电脑,检查上述的环境变量是否设置成功。

输入 : env
检查一下有没有上一项设置的变量,有就成功了,没有再返回查看文档有没有成功保存。

i) 查看CUDA的版本信息
两个指令都可以查看
(1) nvcc -v
(2)cat /usr/local/cuda/version.txt
如果正常输出CUDA的版本信息,那么基本上就没什么问题,恭喜恭喜。

2.CUDNN 5.1

① 到官网下载cudnn5.1

需要注册一个NVIDIA Developer的账号,登录之后会有一个调查文件,然后点击I Agree就会出现下载列表
cudnn
选择cudnn5.1(现在都更新到7.3版本了)
cudnn5.1
选择cuDNN v5.1 Library for Linux

② 开始安装

cd到刚刚cudnn安装的目录下,然后输入

tar xvzf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
③检查

查看cudnn版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

3.GCC 4.9

ubuntu的gcc编译器是5.4.0,然而cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9:
在terminal中执行:

sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++/usr /bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++

检查版本

gcc -v

输出显示4.9.3就说明正常降级了

4.Tensorflow GPU版

到这里就容易了,直接再anaconda里面搭环境,建一个以van命名的环境

conda create -n van python=2.7 scipy numpy pillow git bazel tensorflow-gpu

5.下载DL框架

① DL框架neural-style下载

我把它保存在tensorflow的文件夹里面(当然你保存在其他地方也可以 do what you want)

cd ~/anaconda3/envs/van/lib/python2.7/site-packages/tensorflow
git clone https://github.com/anishathalye/neural-style.git
② 然后下载vgg19,保存在neural-style的文件夹根目录下
cd neural-style
wget http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat

van
到这里环境的配置工作就基本完成了

6.测试

输入指令开始训练模型

python neural_style.py --content ./examples/tong.jpg --styles ./examples/2-style2.jpg --output ./examples/test-tong.jpg

主要是三个参数

  • –content:目标图片(要模仿梵高画作的图片)
  • –styles:训练图片,以此图片的特征来训练神经网络(这个包里只提供了三种风格的梵高画)
  • –output:输出图片

van

效果对比:
tong
test
跑这个图用CPU花了七个小时,用GPU版的tensorflow十一分钟就完工了(GPU:TITAN xp)。

欢迎大家多多交流学习心得。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值