极简keras:实现神经网络风格迁移(neural style)
2016-12-01 22:21
399 查看
前言
前段时间谷歌放出一个神经网络风格迁移的代码,看起来酷酷的,现在有人写了keras的代码,就在keras的例子中。今天我们就来跑一下它,反正运行一行代码搞定 。keras是一个非常简单的深度学习库。如果你不知道怎么安装它,我将简单的介绍一下。先放上来一张经过梵高风格迁移后的天安门的图片和中国风水画版本的天安门。
梵高图像,待学习的风格图像
天安门图像
梵高版天安门(这个只迭代了15次,如果迭代次数更多会更好看的)
向日葵图片
向日葵风格天安门
下面接收一下如何执行这个简单的代码
1.框架安装
1.1安装anaconda(若你已安装或者不想安装,跳过)
anaconda是一个python集成库,集成了上百个常用的python模块,安装anaconda后,你就可以一劳永逸的免安装各种python库。安装anaconda非常简单,从官网下载对应你系统版本的anaconda,例如我用的ubuntu,64位。下载后,bash Anaconda2-4.2.0-Linux-x86_64.sh
然后各种下一步就可以了,最后它会问你用不用把它加入环境变量,这里最后选
yes,然后执行
source ~/.bashrc更新环境变量,以后你使用的python解释器就是anaconda里面的了,不再是系统自带的了。
1.2安装keras(若已经安装,跳过)
这一步直接选择pip install keras就可以了,安装keras过程中会自动安装theano,keras是一个基于tensorflow或者theano运行的,但是默认是基于tensorflow,所以你打开终端,在python里面
import keras一下,如果提示没有tensorflow,那你编辑一下
~/.keras/keras.json文件,把里面的
"backend":"tensorflow"改为
"backend":"theano"就可以了。如果你想安装tensorflow,也很简单,也是一条命令搞定,具体看这篇博客把。ubuntu + cuda8.0 + tensorflow最简单的安装方式
2. 代码跑起来
2.1 从github上下载keras。地址在这里 keras github
2.2定位到你下载的keras的examples文件夹,里面的neural_style_transfer.py
就是我们要跑的代码,运行很简单的
python neural_style_transfer.py 第一个参数-你的基图像路径 第二个参数-你的风格图像路径 第三个参数-你要保存的生产图片路径加名称(注意不需要有.jpg后缀) 例如在我这 python neural_style_transfer.py '/home/xxx/Documents/Test/tiananmen.png' '/home/xxx/Documents/Test/fangao.jpg' '/home/xxx/Documents/Test/tiananmen_fangao'
寄上大威少的梵高风格
其实它是每次迭代逐渐逼近这个风格的,下面展示了第0,3,5,9,12,14次迭代的梵高风格的天-安-门图片
第一次迭代
第二次迭代
第三次迭代
第四次迭代
第五次迭代
第六次迭代
3.原理还没来得及看,看了会补上来。。。
相关文章推荐
- 极简keras:实现神经网络风格迁移(neural style)
- 利用pytorch实现神经网络风格迁移Neural Transfer
- Scala实现神经网络 ANN , 偏函数式风格
- 跟着吴恩达学深度学习:用Scala实现神经网络-第三课:消除所有的可变变量,利用scanLeft将神经网络重构为函数式风格
- LSTM的神经网络keras实现
- 全卷机神经网络图像分割(U-net)-keras实现
- 全卷机神经网络图像分割(U-net)-keras实现
- 深度学习、tensorflow--神经风格迁移(neural style transfer)原理以及实现代码
- keras:1)初体验-MLP神经网络实现MNIST手写识别
- 谷歌keras作者推荐:使用「风格迁移」合成高分辨率多尺度神经纹理
- 三种循环神经网络(RNN)算法的实现(From scratch、Theano、Keras)
- 神经网络_多层感知机MLP_以mnist为例(tensorflow和keras实现)
- 使用keras实现简单的前向全连接神经网络
- 图像风格迁移 (Neural Style)用 Keras简单实践。
- 各框架下(tensorflow, pytorch, theano, keras)实现几个基础结构神经网络(mlp, autoencoder, CNNs, recurrent, recursive)
- 全卷机神经网络图像分割(U-net)-keras实现
- 使用tensorlayer来实现:通过keras例子来理解lstm循环神经网络
- 全卷机神经网络图像分割(U-net)-keras实现
- 理解深层神经网络中的迁移学习及TensorFlow实现
- 使用keras实现简单的前向全连接神经网络