用tensorflow深度学习梵高的画并模仿
最近在知乎上发现的一个好玩的东西:杨航锋的回答
动手把它实现了一下,记录下自己遇到的问题防止遗忘。
1、tensorflow需要python3
这一点曾经深深影响了我学习这个教程的动力。不过好在anaconda可以新建一个环境使得python2和python3兼容。
所以到网上查看搭建python2和python3环境的攻略就好了,记得设置python3为环境变量。
2、按照教程完成基本工作
1.相关依赖库的安装
2.配置运行环境
3.代码编写
3、开始实践
完成以上步骤之后,建立一个这样的文件夹(随便在哪里建立,finshed是为了存储方便,使用说明是我自己写的备忘录),必要的是条件是:教程里面给写好的py文件,test中放入要处理的图像,train中放入要学习的图像。
然后打开cmd命令,进入所在文件夹,
运行如下语句:
python3 neural_style_transfer.py D:\办公\tensorflow图像处理\test\2.jpg D:\办公\tensorflow图像处理\train\11.jpg D:\办公\tensorflow图像处理\finished\
解释:
python3 neural_style_transfer.py 指用python3运行neural_style_transfer.py这个文件
D:\办公\tensorflow图像处理\test\2.jpg 指要处理的图像
D:\办公\tensorflow图像处理\train\11.jpg 指要学习的图像
D:\办公\tensorflow图像处理\finished\ 把处理好的图像存储在哪里
常见(自己犯过)的问题:
1、python3 没有设置环境变量,会提示找不到python3命令。
2、图像的大小是有限制的,我用了梵高的《星夜》超清图(448M)结果像素超过了限制。用PS修改像素,处理一下就好
运行成功的截图:
一共迭代10次,迭代过程比较慢,i7 7700k+1066+8G大概需要1个多小时跑完。
下面是完成迭代后的结果:
最后一张就是效果最好的图片,对比教程里面的照片而言,不会出现非常突兀的黄色,云朵的纹路也非常完美,也许是训练图片的像素、色差之类的影响吧。
但是模仿的图里不会像梵高的画里面有一些扭曲的线条,直线还是直线,这也许是个优化的方向。
当我第一眼看到这张图的时候,还是非常震撼的。尤其是图书馆屋顶上的两抹黄色,就像对应着圣光照耀一般(手动滑稽,圣骑给我往死里奶)
把那个新建的文件夹包括配置文件传在百度云里了,百度云经常失效还速度慢,****不知道怎么传文件,看来以后真的要转Github了。
链接:https://pan.baidu.com/s/1ZAkASaX6bzAhKIW-Ctbufw 密码:jqqj