1. TensorFlow

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,表达了高层次的机器学习计算,大幅简化了第一代系统,并且具备更好的灵活性和可延展性。

TensorFlow一大亮点是支持异构设备分布式计算,它能够在各个平台上自动运行模型,从电话、单个CPU / GPU到成百上千GPU卡组成的分布式系统。

TensorFlow支持CNN、RNN和LSTM算法,这都是目前在Image,Speech和NLP最流行的深度神经网络模型。

2015年11月5日,Google开源了TensorFlow,按他们自己的说法,tensorflow会“成为机器学习界的安卓”。所以无论如何,这也表达了TensorFlow强大的性能以及应用的广泛性。无论如何,TensorFlow的开源对于学术界以及工业界,都是非常有价值的。

今天,我们就尝试在Ubuntu16.04+GTX1080上配置和使用这个强大的深度学习工具:TensorFlow。

2. 配置

Ubuntu16.04 

GTX1080 

CUDA8.0 

cudnn5.1 

TensorFlow

3. 安装

由于电脑的显卡以及CUDA8.0已经配置好,在此不再赘述,可以参考本人的第一篇文章。

3.1 cudnn

TensorFlow需要用到cudnn,cudnn是NVIDIA开发的用于深度神经网络的GPU加速库。下载地址 

这里我们下载的是:Download cuDNN v5.1 (August 10, 2016), for CUDA 8.0,因为我们的显卡是GTX1080以及CUDA8.0,你也可以根据你的显卡来选择你需要的版本。 

下载完后解压:

cp  cudnn-8.0-linux-x64-v5.1.solitairetheme8 cudnn-8.0-linux-x64-v5.1.tgz
tar -xvf cudnn-8.0-linux-x64-v5.1.tgz

以下的操作需要管理员权限。 

复制头文件:

cd cuda/include
sudo cp cudnn.h /usr/local/cuda-8.0/include

再将lib64目录下的动态文件进行复制和链接:

 cp lib* /usr/local/cuda/lib64/    #复制动态链接库
cd /usr/local/cuda/lib64/
rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
ln -s libcudnn.so.5.0.5 libcudnn.so.5
ln -s libcudnn.so.5 libcudnn.so

然后设置环境变量和动态链接库,在命令行输入:

gedit /etc/profile

在打开的文件末尾加入:

export PATH = /usr/local/cuda8.0/bin:$PATH

保存之后,创建链接文件:

vim /etc/ld.so.conf.d/cuda.conf

按下键盘i进行编辑,输入链接库位置:

/usr/local/cuda/lib64

然后保存退出,并在终端输入:

ldconfig

bug

yue@akayue:~$ sudo vim /etc/ld.so.conf.d/cuda.conf
[sudo] password for yue:
yue@akayue:~$ ldconfig
/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link
/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied

1.Permission denied 就用sudo ldconfig

2.libcudnn.so.7 is not a symbolic link

https://blog.csdn.net/weixin_32820767/article/details/81382877

libcudnn.so.7是一个文件,它本应是一个软连接。于是创建软接连:Create the new link manually:

yue@akayue:~$ ls -lh /usr/local/cuda/lib64/libcudnn.so.7
-rwxr-xr-x 1 root root 273M 8月 18 10:55 /usr/local/cuda/lib64/libcudnn.so.7
yue@akayue:~$ sudo ln -sf /usr/local/cuda/lib64/libcudnn.so.7.0.4 /usr/local/cuda/lib64/libcudnn.so.7

看ldconfig

~$ sudo ldconfig -v 

查到

libcudnn.so.7 -> libcudnn.so.7.0.3

这个时候的文件

yue@akayue:~$ ls -lh /usr/local/cuda/lib64/libcudnn.so.7
lrwxrwxrwx 1 root root 17 8月 18 11:10 /usr/local/cuda/lib64/libcudnn.so.7 -> libcudnn.so.7.0.3

3.2 TensorFLow

TensorFlow的安装在官网介绍的很详细。 

一共提供了四种安装方式:

  1. Virtualenv installation
  2. Anaconda installation
  3. Docker installation
  4. Installing from sources

应为本机一直使用的是Anaconda,使用起来比较方便,在这四种安装方式中相比起来也比较简单,因此选择了Anaconda installation,你也可以根据你的喜好和个人情况来选择安装。 

创建tensorflow的conda环境:

conda create -n tensorflow python=2.7

使用刚刚创建的tensorflow环境:

source activate tensorflow
(tensorflow)$ # Your prompt should change

如果使用CPU版本:

# Linux/Mac OS X, Python 2.7/3.4/3.5, CPU only:
(tensorflow)$ conda install -c conda-forge tensorflow

我们使用的是Linux64bit,Python2.7的GPU版本,输入:

# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7
# Requires CUDA toolkit 8.0 and CuDNN v5. For other versions, see "Installing from sources" below.
(tensorflow)$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc0-cp27-none-linux_x86_64.whl

安装:

# Python 2
(tensorflow)$ pip install --ignore-installed --upgrade $TF_BINARY_URL

当你使用完TensorFlow时,关闭tensorflow环境:

(tensorflow)$ source deactivate
$ # Your prompt should change back

你可以通过命令行来测试是否安装成功:

$ 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来训练模型:

$ cd tensorflow/models/image/mnist
$ python convolutional.py
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
Initialized!
Epoch 0.00
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%
Epoch 0.12
Minibatch loss: 3.285, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.0%
...
...

如果你的输出结果如上所示,则代表安装是正确的。

如果安装不成功,还有另外一种方式。 

下载地址,在下面的Installation中选择Linux GPU: Python 2进行下载,你也可以根据你的系统、Python的版本以及GPU或者CPU选择相应的进行下载。下载完以后,将下载好的tensorflow_gpu-0.12.0rc0-cp27-none-linux_x86_64 .whl文件放到你的anaconda2/lib/python2.7/site-packages/ 里面,然后打开终端:

pip install
tensorflow_gpu-0.12.0rc0-cp27-none-linux_x86_64 .whl

也可以完成TensorFlow的安装。

4. 利用TensorFlow实现图像风格转换

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

第一步:neural-style下载 

第二步:下载vgg19 

第三步:把vgg19的mat文件放到neural-style的文件夹根目录下。 

第四步:在neural-style的文件夹的路径下输入:

python neural_style.py --content  ./example/1-content.jpg  --styles ./example/1-style.jpg --output ./example/1-output.jpg

你也可以根据你的需求,将–content后面的图片换成你想要转换的图片,–styles后换成你想要转换的风格图片,–output后改成输出的图片名称就可以了。


could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

sudo rm -rf ~/.nv




训练完成,来看看效果吧! 


怎么样,你也来试试吧!

Ubuntu16.04+GTX1080配置TensorFlow并实现图像风格转换的更多相关文章

  1. Ubuntu16.04安装配置和使用ctags

    Ubuntu16.04安装配置和使用ctags by ChrisZZ ctags可以用于在vim中的函数定义跳转.在ubuntu16.04下默认提供的ctags是很老很旧的ctags,快要发霉的版本( ...

  2. ubuntu16.04+cuda9+cudnn7+tensorflow+pycharm环境搭建

    安装环境:ubuntu16.04+cuda9+cudnn7+tensorflow+pycharm 1)前期搭建过程主要是按照这篇博文,对于版本选择,安装步骤都讲得很详细,亲测有效! https://b ...

  3. 通过Anaconda在Ubuntu16.04上安装 TensorFlow(GPU版本)

    一. 安装环境 Ubuntu16.04.3 LST GPU: GeForce GTX1070 Python: 3.5 CUDA Toolkit 8.0 GA1 (Sept 2016) cuDNN v6 ...

  4. Ubuntu16.04下配置ssh免密登录

    Ubuntu16.04下配置ssh免密登录 环境准备:新建两台虚拟机,而且两台虚拟机上都装有Ubuntu16.04的系统,使两台虚拟机之间保持互通状态.分别为两台虚拟机命名为A,B.假设我们要使A虚拟 ...

  5. Ubuntu16.04系统中不同版本Python之间的转换

    Ubuntu系统自带的版本是2.7.12 安装好python3.6之后,改变一下Python的优先级(需要root权限). 在使用下面这个命令查看电脑里面有几个Python版本 update-alte ...

  6. A Neural Algorithm of Artistic Style 图像风格转换 - keras简化版实现

    前言 深度学习是最近比较热的词语.说到深度学习的应用,第一个想到的就是Prisma App的图像风格转换.既然感兴趣就直接开始干,读了论文,一知半解:看了别人的源码,才算大概了解的具体的实现,也惊叹别 ...

  7. ubuntu16.04下安装TensorFlow(GPU加速)----详细图文教程【转】

    本文转载自:https://blog.csdn.net/zhaoyu106/article/details/52793183 le/details/52793183 写在前面 一些废话 接触深度学习已 ...

  8. Ubuntu16.04编译安装tensorflow,2018最新血泪踩坑之后的全面总结!绝对成功!【转】

    本文转载自:https://blog.csdn.net/pzh11001/article/details/79683133 大家好,我是 (深度学习硬件DIY总群)(719577294)群主:    ...

  9. ubuntu16.04 安装配置matlab+python +cuda8.0+cudnn+opencv3.1的caffe环境

    网络上有很多ubuntu上caffe配置环境的帖子,本人照着其中的许多进行了参考,都出现了或多或少的错误,很多地方也有差异. 于是自己整理了下自己的安装过程,成功进行了测试,跑通了faster-rcn ...

随机推荐

  1. 基于SpringBoot构建分模块项目

    前言 步骤过于详细,多图慎入!!! 假设一个场景,要开发一个4s店维修部的办公系统,其功能有:前台接待,维修抢单,财务结算,库存管理.于是我们创建一个项目balabalabala写完交工. 一段时间后 ...

  2. Nginx在Linux里安装 以及nginx实现负载均衡

    Nginx 一.在Linux里安装软件 1. rpm命令 rpm: redhat package manager,红帽软件包管理套件 常用命令: 安装:rpm -ivh 软件包 i :安装模式 v : ...

  3. ps 命令参数解释

    转自:https://www.cnblogs.com/fps2tao/p/7692482.html A 显示所有进程(等价于-e)(utility)-a 显示一个终端的所有进程,除了会话引线-N 忽略 ...

  4. 小知识点:linux下的mv命令怎么用?

    linux下的mv命令怎么用? mv a.txt b.txt  将a.txt 改名为b.txtmv a.txt /mnt/b.txt    同时更改路径为/mnt/mv a.txt /opt/ftp/ ...

  5. Python面向对象之接口类(抽象类)

    Python面向对象之接口类(抽象类):就是制定一个规范. 比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因). 他的定义是需要abc模块,要变的就是他的方 ...

  6. ASP .NET Core 2.1 HTTP Error 502.5 – Process Failure

    ASP .NET Core HTTP Error 502.5 – Process Failure https://www.cnblogs.com/loui/p/7826073.html 页面返回错误 ...

  7. 关于AQS——独占锁的相关方法(一)

    一.序言 Lock接口是juc包下一个非常好用的锁,其方便和强大的功能让他成为synchronized的一个很好的替代品. 我们常用的一个Lock的实现类(好像也是唯一一个只实现了Lock接口的类) ...

  8. sql like 多条件

    select * from student where name like 'mike%' or name like 'rose%';

  9. RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例

    你是否听说过或者使用过队列? 你是否听说过或者使用过消息队列? 你是否听说过或者使用过RabbitMQ? 提到这几个词,用过的人,也许觉得很简单,没用过的人,也许觉得很复杂,至少在我没使用消息队列之前 ...

  10. 告别JQuery(一)

    背景 很多很多传统的Web开发者还在用着传统的jquery和ES5,大家都知道现在的前端如火如荼,但是眼花缭乱的框架和层出不穷的新概念,让很多人无从下手,本文从0开始,带你一步步由jquery操作DO ...