机器学习实战篇—TensorFlow做梵高风格图片

安装TensorFlow:

在mac下面执行以下命令即可安装:(目前mac os下只支持cpu版本)

pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl

更多TensorFlow相关信息可以参考中文社区:http://www.tensorfly.cn/

下载代码:

我们用的是MIT的博士Anish Athalye的代码,地址如下:

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

作者的思路是:通过输入原图,在较深层的卷积层中得到的特征进行图像内容约束,使用参考艺术作品,在卷积不同阶段的卷积特征学习得到图像纹理,进行纹理约束,从而优化得到最终结果。

下载图片识别模型VGG-19:

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

大小是576MB,一个19层的深度神经网络,包含16个卷积层(分为5个卷积阶段),每个阶段末尾都有 pooling 层,全连接层被抛弃掉,另外Pooling阶段使用average pooling。

步骤:

  1. 解压上面下载好的neural-style的代码,进入到neural-style的根目录。

  2. 把上面下载好的VGG-19的模型文件复制到neural-style的根目录。

  3. 选取一张输入图片,注意控制文件大小,建议在20k左右,因为运行起来会很慢,200k的图片1000次迭代大概要2小时左右才能出结果。

  4. 建议修改一下迭代次数为500,打开neural_style.py的文件,找到ITERATIONS的参数,把1000改为500,保存。

  5. 细心的童鞋可能看到了代码中有build_parser的函数,里面的参数就是我们要传的。--content是原图片,--styles是梵高的风格选择,--output是最终输出结果。

  6. 在neural-style文件夹的examples中选择一个风格,在这里我们选择1-style.jpg,然后执行命令:

python neural_style.py --content ./examples/sqc.jpg --styles ./examples/1-style.jpg --output ./examples/newsqc.jpg

梵高图片如下:

机器学习实战篇—TensorFlow做梵高风格图片

输入图片

机器学习实战篇—TensorFlow做梵高风格图片

接下来就是等待结果了

。。。10分钟后

结果出来了

机器学习实战篇—TensorFlow做梵高风格图片

机器学习实战篇—TensorFlow做梵高风格图片

我嚓,确实不错。

总结:

介绍了卷积神经网络的入门级应用,熟悉整个流程:安装Tensorflow,选择输入数据,选择模型训练,参数调优(这个过程花时间),得到输出结果。这就是机器学习非常吸引人的地方,入门很容易,即使不懂很多数学知识和算法,按照步骤执行,用开源的工具像TensorFlow这样的,去做一些小demo,很有意思的创意都是可以实现的。But,如果非常感兴趣被深深吸引住的时候,想深入了解,写出自己的模型,那是一定要学习算法和数学的,这个是躲不过去的,之后的文章我会总结出所需要掌握的数学知识清单,像一个字典一样,每当遇到生疏概念的时候都可以查询了解。


分享到:


相關文章: