教你从头到尾利用DL学梵高作画

2023-12-24 17:38
文章标签 dl 从头到尾 作画 梵高

本文主要是介绍教你从头到尾利用DL学梵高作画,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

教你从头到尾利用DL学梵高作画

作者:七月在线开发/市场团队三人,骁哲、李伟、July。本教程主要由骁哲撰写,李伟负责Linux命令部分。

配置:GTX 1070 cuda 8.0 Ubuntu 14.04 cudnn 5.1 tensorflow gpu

时间:二零一六年九月二十五日

一、前言

12年本博客推出SVM三层境界,July开始学习接触ML。14年July团队开始做机器学习线下班的时候,July则跟着讲师一起学习更多ML,因此也写了一系列ML博客。再后来,July团队开始做专注数据领域的在线教育,涵盖算法、机器学习、深度学习三大重心,16年从上半年的5个课程陆续扩展到下半年的30个课程,讲师团队也从上半年的5人扩大至现有的19人。

机器学习越来越火,而随着计算机计算能力的提高深度学习则更趋火热。我们在做深度学习的课程时,也会顺带着学习学习,包括7月份July刚写完一份CNN笔记,但从始至终都只是学习原理,从没自己实际动手做过任何实验。

直到最近,我们团队人手渐渐齐了之后,发现可以动手做一些实验了。为何呢?学一个东西,懂它理论之后,最重要的是付诸实践,动手实验一把,不然永远只是纸上谈兵。且虽然我们三都不讲课,一个市场一个PHP一个打杂,但可以辅助讲师团队带动更多学员一起做实验。而且就是啥也不懂偏要啥都要搞,而且要带动更多人一起搞。

激情澎湃,心血来潮。

  • 21号下午5点,同事李、许开始搞DL:用DL学梵高作画,恩,是搞DL 不是搞ML
  • 接近6点的时候,开始卷积计算,等待的过程就像生孩子一样
  • 晚上8点, CPU搞了一个半小时搞出来了, 然后开始装cuda,好用GPU搞几副梵高笔下的画
  • 0点, 同事还在装,因为 GTX 1070下装cuda8.0实在是费劲呐(1070+8.0之所以难装,一一个是网上教程很少,一个是1070 8.0都是刚出来的,特别是 8.0 目前只支持1070和1080的显卡。可能960/970/980搭cuda 7.5会轻松太多 )
  • 接下来,两同事在黑暗中前行了一夜,趟遍无数坑
  • 22号早上6点半,cuda、TensorFlow终于编译好,我..
  • 22号早上8点,用DL学梵高作画,GTX 1070 cuda 8.0 Ubuntu 14.04 cudnn 5.1 tensorflow gpu,折腾一整夜,趟遍无数坑,两位同事一PHP一市场终于搞定。(恩,btw,有人说,PHP是世界上最好的语言)

我们搭建好之后,兴高采烈的在微博上发布(因为两同事此前从未搞过DL,可以想象我们心情之兴奋),发现咱5月DL班里一学员之前也搭过这个配置,说:“装cuda 和驱动花了几天,经常出现黑屏”。也有朋友反馈:“配置这玩意确实很麻烦。”、以及“是真的很麻烦,我自己尝试搭建就一直没成功”。所以,很多朋友求教程。

事实上,最后跑下demo就几分钟的事,主要是整个搭建过程 很折腾。不信?你可以先不看本教程,然后自个从头到尾摸一把1070+8.0,没试过1070+8.0之前就不要轻易来下结论了  :-)

综上,特此推出本份教程,应该是网站极少有的1070+8.0教程里面最详尽的一份(部分图都是由骁哲用手机对着电脑拍下),希望让更多人少走弯路。此外,我们更会在 9月ML算法班 上带领更多人跟我们一块做DL实验,一起玩。

二、配置

我们的配置为

  • 硬件配置: 酷睿 i7-6700+GTX1070+500G 固态硬盘 +8G 内存 + 主板
  • 软件配置: Ubuntu14.04 +GTX1070 显卡驱动 +CUDA8.0+cudnn5.1+Tensorflow

三、下载

考虑到有些同学 Linux 操作不是很熟练,以下步骤尽量详细,高手可跳过。另, 操作系统为全新安装的 Ubuntu14.04 英文桌面版,如果已安装其它版本或非全新安装,步骤可相应调整。

1、 Ubuntu14.04

http://www.ubuntu.com/download/alternative-downloads (下载地址)

说明:

  1. 我们自己下载的时候是在官方英文版页面下载,中 文 版网页面似乎没有 Ubuntu14.04 的下载页。
  2. Ubuntu14.04 版本选择上建议使用英文原版, Kylin (麒麟:给中国用户特别定制)版本不建议使用。原因:呵呵,外来和尚会念经
  3. Ubuntu16.04 版本我跟同事测试后发现进入桌面会屏幕闪动,分析原因似乎跟我们的显卡是 1070 版本有关(其实只要把 GTX1070 显卡驱动装上就行),而 Ubuntu14.04 未出现以上状况。所以考虑为广大人民群众减少麻烦,当您的显卡与我们类似( GTX1070\GTX1080 ),请参考本条建议。

UltraISO 软碟通:

http://cn.ultraiso.net/xiazai.html (下载地址)

说明:

  1. 这个软件是将你 U 盘制作成 Ubuntu14.04 安装盘的工具。
  2. 使用方法请查看百度文库相关说明: http://wenku.baidu.com/link?url=XIitpKr9kKSXLLBzhrO7DzCOgGtrqpvxyfnI8tt3ugnt59dEWzMwUAUzMy-mIyY1gDeqaOPkKMB5EwlWYCwWZjaq2CaLiZzWpENTpgk04SG
  3. 如果下载地址链接失效,自行百度: UltraISO 软碟通。
  4. 安装是在 Windows 下安装的。

2、 GTX1070 显卡驱动

http://www.geforce.cn/drivers (下载地址)

说明:

( 1 )选项图解

( 2 )大家可以根据自己电脑配置进行选择。

3、 CUDA

https://developer.nvidia.com/cuda-toolkit (下载地址)

说明:

( 1 )在 NVIDIA 的 CUDA 下载页面下,选择要使用的 CUDA 版本进行下载。

( 2 )我们这里使用 CUDA8.0 (页面有提示 GTX1070 、 GTX1080 支持 8.0 版本),学员如果没有使用以上两个版本的 GPU ,可以下载 CUDA7.5 。 DOWNLOAD(下载)。

( 3 )下载需要注册。

( 4 )图解选择

4、 Cudnn

https://developer.nvidia.com/cudnn (下载地址)

说明:

( 1 )下载需要填写一个调查问卷,就三个选项,建议认真填写,毕竟人家免费给咱使用。

( 2 )填写完毕点击   I Agree To     前面的小方框,出现如下:

5、 Tensorflow

https://github.com/tensorflow/tensorflow (下载地址)

说明:

( 1 )打开下载页面,往下翻,直到下图这个位置:

(2) 点击 Python 2 开始下载。

最后,将所有下载文件全部存放至自己的移动硬盘 /U 盘内,等待安装时候使用。

四、 安装

4.1、 安装 Ubuntu14.04 :

http://jingyan.baidu.com/article/eb9f7b6d8536a8869364e813.html

说明:

( 1 )我们与同事直接安装的英文原版系统,语言也是选择英文的。

( 2 )上述链接在 -- 第三步:安装类型上选择的是 -- 自定义。我们选择的是 -- 清除整个磁盘并且安装,如果你有 Windows 系统,还会提示安装 Ubuntu14.04 与 Windows 并存模式。这个自行选择 ,切记! 这个地方谨慎选择。

( 3 )感谢百度经验上传者!

4.2、 安装 GTX1070 显卡驱动及 CUDA8.0 :

步骤:

( 1 )进入 Ubuntu 界面

( 2 )插入 U 盘,将内容拷贝至 Desktop 文件下。熟悉 Ubuntu 的同学,这步可以按照自己习惯放置在其他文件夹下。

( 3 )如图搜索 Terminal

(4) 将命令框图标拖动到左边栏里或者桌面,以便使用。

(5) 打开命令框,输入 sudo  –i

输入开机密码

输入 sudo  vi   /etc/default/grub

(6) 此时系统会进入一个文本页面。在第 20 行前后会出现 GRUB_CMDLINE_LINUX_DEFAULT="quiet" 。 将光标移动到这个命令最前端,然后键盘点击 Esc 键 ,再点击 y 键两次 , 点一下 p 键 。 就会将本条指令复制一个放到下一行。然后点击 i键,就能进行编辑了,在本行命令前面添加 # 号,然后移动到复制出来的那条,修改quiet 为 text , 按 Esc 键 。 Shift+ : 输入 wq 。

此时会调回命令框界面,输入 sudo update-grub

输入 shutdown   – r  now 重启

(7) 重启后进入字符界面,按照提示输入你的 用户名 及 密码

输入 sudo  -i

输入密码

输入 cd  /home/ ***( 这个按 Tab 键自动匹配 ) /Desktop

输入 ./NVIDIA-LIN … ( 这个按 Tab 键自动匹配 ) 或 /bin/bash 文件名

不懂的看图如下

按回车键后出现

…………………………………………………………………………………………………………………………………………………………………………………………………………………………….

说明开始安装

然后选择 Accept 等等同意字样

期间遇到协议的时候一直按 空格键 就行

协议完成后提示如图

输入 accept

然后一路同意就行

(7) 安装 NVIDIA 结束后,同样操作安装 CUDA8.0 ,这里需要注意其中一个地方需要填写 N 才行,不能写 Y 。如图

其余操作如图

然后回车等待就行

(8) 类似刚刚第( 5 )步的执行

输入 sudo  vi   /etc/default/grub 此时系统会进入一个文本页面。在第 20 行前后会出现 GRUB_CMDLINE_LINUX_DEFAULT="quiet" 。 将光标移动到这个命令最前端,然后键盘点击 Esc 键 , 再点击 y 键两次 , 点一下 p 键 。 就会将本条指令复制一个放到下一行。然后点击 i 键,就能进行编辑了,在本行命令前面 删除 # 号,然后移动到复制出来的那条,命令前面 添加 # 号,按 Esc 键 。 Shift + : 输入 wq 。

此时会调回命令框界面,输入 sudo update-grub

输入 shutdown   – r  now 重启

4.3、 Cudnn 安装

cd  /home/***( 自己的用户名 )/Desktop/###( 这个命令意思是找到刚刚我们用 U 盘传过来的文件 )

tar xvzf cudnn- 8.0 -linux-x64-v5.1-ga.tgz ### (解压这个文件)

sudo cp cuda/include/cudnn.h /usr/local/cuda/include ### (复制)

sudo cp cuda/lib64/libcudnn *  /usr/local/cuda/lib64 ### (复制)

sudo   chmoda+r/usr/local/cuda/include/cudnn.h/usr/local/cuda/lib64/libcudnn *

4.4、 其他依赖安装:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

我们是在 github 的 Tensorflow 官方网页上,根据提示安装,地址如上。按步骤截图如下

sudo apt-get install python-pip python-dev   (这个不完整,完整版如下)

sudo apt-get install python-pip python-dev  Python-scipy Pythoy-numpy git

4.5、 Bazel 安装

链接: https://www.bazel.io/versions/master/docs/install.html

自动跳转

4.6、 numpy 安装

http://www.scipy.org/scipylib/download.html

git clone git://github.com/numpy/numpy.git numpy

4.7、 Tensorflow 安装

还是刚刚的网址

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

./configure

bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

sudo pip install / home / *** (你自己的用户名) /Desktop /tensorflow-0.10.0- cp 2-none-any.whl

bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

# To build with GPU support:

bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

mkdir _python_build

cd  _python_build

ln -s ../bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/org_tensorflow/ *   .

ln -s ../tensorflow/tools/pip_package/ *   .

python setup.py develop

五、  测试 Tensorflow

六、 实验:模仿梵高绘画

https://github.com/anishathalye/neural-style

在这个 github 网站下载相应代码

然后在命令窗口 cd  /home/***( 你自己的用户名 )/Desktop/

git clone  https://github.com/anishathalye/neural-style.git

接着 你就能在桌面打开这个文件夹了

把你想修改的照片放入 example 文件夹内,然后在刚才的窗口命令接着输入:

python   neural_style.py   --content  ./example/***.jpg( 此括号内不要复制: *** 代表你想要使用的图片名称 )   --styles  ./example/ 1-style.jpg( 此括号内不要复制: 1-style.jpg 是梵高星空图片在文件夹内名称,你也可以换其他的风格,该名称就行了 ) --output  ./example/$$$.jpg( 此括号内不要复制: $$$ 代表你想要生成的图片名称 )

例如我的输入如下python neural_style.py –content ./example/ 1-content .jpg   --styles   ./example/ 1-style .jpg   --output ./example/ 1-output .jpg

接下来,见证奇迹的时刻到了。

在计算机学到梵高作品星空的风格之后,让计算机对指定图片进行梵高式处理,如下图所示

这篇关于教你从头到尾利用DL学梵高作画的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/532587

相关文章

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

【DL--05】深度学习基本概念—函数式模型

函数式模型 函数式模型算是本文档比较原创的词汇了,所以这里要说一下 在Keras 0.x中,模型其实有两种,一种叫Sequential,称为序贯模型,也就是单输入单输出,一条路通到底,层与层之间只有相邻关系,跨层连接统统没有。这种模型编译速度快,操作上也比较简单。第二种模型称为Graph,即图模型,这个模型支持多输入多输出,层与层之间想怎么连怎么连,但是编译速度慢。可以看到,Sequentia

【DL--04】深度学习基本概念—data_format

data_format 这是一个无可奈何的问题,在如何表示一组彩色图片的问题上,Theano和TensorFlow发生了分歧,’th’模式,也即Theano模式会把100张RGB三通道的16×32(高为16宽为32)彩色图表示为下面这种形式(100,3,16,32),Caffe采取的也是这种方式。第0个维度是样本维,代表样本的数目,第1个维度是通道维,代表颜色通道数。后面两个就是高和宽了。这种t

【DL--03】深度学习基本概念—张量

张量 TensorFlow中的中心数据单位是张量。张量由一组成形为任意数量的数组的原始值组成。张量的等级是其维数。以下是张量的一些例子: 3 # a rank 0 tensor; this is a scalar with shape [][1. ,2., 3.] # a rank 1 tensor; this is a vector with shape [3][[1., 2., 3.]

【DL--02】深度学习基本概念--符号计算

符号计算 Keras的底层库使用Theano或TensorFlow,这两个库也称为Keras的后端。无论是Theano还是TensorFlow,都是一个“符号式”的库。 因此,这也使得Keras的编程与传统的Python代码有所差别。笼统的说,符号主义的计算首先定义各种变量,然后建立一个“计算图”,计算图规定了各个变量之间的计算关系。建立好的计算图需要编译以确定其内部细节,然而,此时的计算图还

【DL--01】深度学习 揭开DL的神秘面纱

什么是深度学习 深度学习=深度神经网络+机器学习 人工智能 > 机器学习 > 表示学习 > 深度学习 神经元模型 输入信号、加权求和、加偏置、激活函数、输出 全连接层 输入信号、输入层、隐层(多个神经元)、输出层(多个输出,每个对应一个分类)、目标函数(交叉熵) 待求的参数:连接矩阵W、偏置b 训练方法:随机梯度下降,BP算法(后向传播) Python中深度学习实现:Ke

【DL--22】实现神经网络算法NeuralNetwork以及手写数字识别

1.NeuralNetwork.py #coding:utf-8import numpy as np#定义双曲函数和他们的导数def tanh(x):return np.tanh(x)def tanh_deriv(x):return 1.0 - np.tanh(x)**2def logistic(x):return 1/(1 + np.exp(-x))def logistic_derivati

android开发之Android SDK更新出现Connection to http://dl-ssl.google.com refused 的解决办法

文章出处:http://blog.csdn.net/foxeatapple/article/details/8450372 问题描述使用SDK Manager更新时出现问题Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-6.xml, reason: Connection to https

DL/T645-2007_Part2(参变量数据标识编码表)

数据类型分为7类:电能量、最大需量及发生时间、变量、事件记录、参变量、冻结量、负荷记录。 数据标识数据格式 数据 长度  (字节)单位功能数据项名称DI₃DI₂DI₁DI₀读写04 00 01 01020304050607YYMMDDWWhhmm55NNNNXXXXYYNM00hhmmYYNMDDhhmm  4  3  1  2  5  5年月日星期时分秒分分毫秒年月日时分年月日时分日期及星期(其

DL/T645-2007_Part2(变量数据标识编码表)

数据类型分为7类:电能量、最大需量及发生时间、变量、事件记录、参变量、冻结量、负荷记录。 数据标识数据格式数据长度字节单位功能数据项名称 DI₃ DI₂ DI₁DI₀读写 02  01  01 02 03 FF  00 XXX,X2 V十A相电压B相电压C相电压电压数据块 02  02  01 02 03 FF  00 XXX.XXX3 AA相电流B相电流C相电流电流数据块 02  03  00