在Ubuntu14.04下安装TensorFlow并实现图片的风格迁移

TensorFlow简介

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可被用于语音识别或图像识别等多项机器深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。

在ubuntu14.04下安装TensorFlow

安装相关环境和工具

sudo apt-get install python-pip python-dev python-virtualenv 

为tensorflow创建一个专用的virtualenv

virtualenv --system-site-packages ~/tensorflow

进入该virtualenv中进行编程

cd ~/tensorflow
source bin/activate 

安装最新版本的tensorflow

tensorflow)$ pip install --upgrade tensorflow

//如果pip版本小于8需升级 Pip install -U pip

以后编写tensorflow程序只要执行下面两句即可

cd ~/tensorflow
source bin/activate 

退出环境使用下面的语句

deactivate

接下来我们就用TensorFlow上一个风格迁移的例子,来看一下运行效果

风格迁移简介

风格迁移(Style Transfer)是深度学习众多应用中非常有趣的一种,如图,我们可以使用这种方法把一张图片的风格“迁移”到另一张图片上:
这里写图片描述

而快速风格迁移可以不把生成图片当做一个“训练”的过程,而当成一个“执行”的过程。下面这篇论文就对快速风格迁移(fast neural style transfer)进行了阐述:Perceptual Losses for Real-Time Style Transfer and Super-Resolution

快速风格迁移的网络结构包含两个部分。一个是“生成网络”(原文中为Transformation Network),一个是“损失网络”(Loss Network)。生成网络接收一个图片当做输入,然后输出也是一张图片(即风格迁移后的结果)。如下图,左侧是生成网络,右侧为损失网络:

这里写图片描述

训练阶段:首先选定一张风格图片。训练的目标是让生成网络可以有效生成图片。目标由损失网络定义。

执行阶段:给定一张图片,将其输入生成网络,输出这张图片风格迁移后的结果。

我们可以发现,在模型的“执行”阶段我们就可以完成风格图片的生成。因此生成一张图片的速度非常块,在GPU上一般小于1秒,在CPU上运行也只需要几秒的时间。

快速风格迁移的Tensorflow实现

接下来为大家介绍Github上一个用Tensor实现快速风格迁移的例子, Github地址:hzy46/fast-neural-style-tensorflow

具体编程实现可以看工程源码,在这里,我们用训练好的模型做过演示

关于训练好的模型可以从百度云中下载 http://pan.baidu.com/s/1mi9Ilyo
下载后将models文件夹放在工程fast-neural-style-tensorflow-master的根目录下

然后用训练好的模型进行实现快速风格迁移

python eval.py --model_file <your path to wave.ckpt-done> --image_file img/test.jpg

your path to wave.ckpt-done 是所用模型的路径
img/test.jpg 是测试图片的路径

下面在ubuntu下的具体操作流程

这里写图片描述

原始图片:
这里写图片描述
风格迁移后的图片: (generated/res.jpg)
这里写图片描述
以上是在虚拟机的ubuntu上跑的,生成图片需要10s左右。

总结

随着TensorFlow的不断改进,TensorFlow现在已经是github上star最多的机器学习项目了,有兴趣的同学按照上文所介绍的方法,安装好TensorFlow,然后把这个风格迁移的demo跑一下。(特别感谢风格迁移项目的作者,这里再贴其开源项目下地址:hzy46/fast-neural-style-tensorflow

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值