安装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。
步骤:
解压上面下载好的neural-style的代码,进入到neural-style的根目录。
把上面下载好的VGG-19的模型文件复制到neural-style的根目录。
选取一张输入图片,注意控制文件大小,建议在20k左右,因为运行起来会很慢,200k的图片1000次迭代大概要2小时左右才能出结果。
建议修改一下迭代次数为500,打开neural_style.py的文件,找到ITERATIONS的参数,把1000改为500,保存。
细心的童鞋可能看到了代码中有build_parser的函数,里面的参数就是我们要传的。--content是原图片,--styles是梵高的风格选择,--output是最终输出结果。
在neural-style文件夹的examples中选择一个风格,在这里我们选择1-style.jpg,然后执行命令:
python neural_style.py --content ./examples/sqc.jpg --styles ./examples/1-style.jpg --output ./examples/newsqc.jpg
梵高图片如下:
输入图片
接下来就是等待结果了
。。。10分钟后
结果出来了
我嚓,确实不错。
总结:
介绍了卷积神经网络的入门级应用,熟悉整个流程:安装Tensorflow,选择输入数据,选择模型训练,参数调优(这个过程花时间),得到输出结果。这就是机器学习非常吸引人的地方,入门很容易,即使不懂很多数学知识和算法,按照步骤执行,用开源的工具像TensorFlow这样的,去做一些小demo,很有意思的创意都是可以实现的。But,如果非常感兴趣被深深吸引住的时候,想深入了解,写出自己的模型,那是一定要学习算法和数学的,这个是躲不过去的,之后的文章我会总结出所需要掌握的数学知识清单,像一个字典一样,每当遇到生疏概念的时候都可以查询了解。
閱讀更多 5分鐘機器學習 的文章