知行编程网知行编程网  2022-07-26 18:00 知行编程网 隐藏边栏 |   抢沙发  8 
文章评分 0 次,平均分 0.0
「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

贾浩楠 发自 凹非寺 

来自 | 量子位

20分钟生成复杂的艺术作品,而且还是用英伟达上上代的1080显卡?

「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

现在神经网络上手门槛这么亲民了吗?

没错,这是一个叫做neural-style-pt的风格迁移模型,基于Pytorch实现,而且刚刚开源!

有关这个算法模型的话题在Reddit上才发布一天,热度接近2000。

「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

neural-style-pt,真的酷炫又亲民吗?

丰富的融合方式

neural-style-pt是论文A Neural Algorithm of Artistic Style的Pytorch实现。

论文介绍了一种利用卷积神经网络将一张图片的内容,与另一张图片的风格相结合的算法,就是我们熟知的“风格迁移”网络。

比如,将《星空》的艺术风格映射到一张斯坦福校园的夜景照片上:

「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

或者根据给定图像的不同艺术风格,分别融合进目标图片:

「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

除了“分别”融合,还能把多个艺术风格融进一张图片:

「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

从左上角顺时针开始风格分别为”星空 “+”呐喊”、”呐喊 “+”构图七(瓦西里·康定斯基油画)“、”坐着的裸女(莫蒂里安尼油画) “+”构图七”、”坐着的裸体 “+”星空”。

在进行风格迁移时,添加“-original_colors 1”指令,还可以只改变风格,不改变原图颜色:

「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

1080卡就能跑?

根据后台和优化器的不同,算法运行速度会有很大差异。

在Tesla K80上使用512像素图片迭代500次时间参考:

  • 后台nn、优化器L-BFGS: 117秒

  • 后台nn、优化器 ADAM: 100秒

  • 后台cudnn -优化器L-BFGS: 124秒

  • 后台cudnn -优化器ADAM:107秒

  • 后台cudnn -cudnn_autotune -优化器L-BFGS: 109秒

  • 后台cudnn -cudnn_autotune -优化器ADAM: 91秒

而在GTX 1080上,相同基准下时间更快:

  • 后端nn -优化器L-BFGS: 56秒

  • 后台nn -优化器 ADAM: 38秒

  • 后台cudnn -优化器L-BFGS: 40秒

  • 后台cudnn -优化器ADAM:40秒

  • 后台cudnn -cudnn_autotune -优化器 lbfgs: 23秒

  • 后台cudnn -cudnn_autotune -优化器ADAM: 24秒

    「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

结合当下1080卡的售价,不得不说,这样的门槛,对于机器学习来说,已经很香了。

默认情况下,neural-style-pt使用后端进行卷积,L-BFGS进行优化。但会使用大量的内存,可以通过以下方法来减少内存的使用。

使用cuDNN,添加-backend cudnn来使用cuDNN后端。而使用ADAM时,添加-optimizer adam来使用ADAM而不是L-BFGS。

在默认设置下,neural-style-pt在系统上使用了大约3.7GB的GPU内存;切换到ADAM和cuDNN可以将GPU内存占用减少到大约1GB。

如何上手试玩

安装neural-style-pt,首先要准备好Pytorch。

然后,使用下方一句话指令就能安装已经训练好的模型:

安装完以后,上手试玩也很简单,一行代码就能实现:

如果要载入多种风格,需要分隔不同的图片文件名:

注意,图片名称要包含完整的地址路径。

基本操作就是这些。

neural-style-pt还有一点强大的功能,就是可以使用多个不同的计算设备来处理高分辨率图像。

不同的设备会输出不同网络层的计算结果。

你可以用-gpu指令控制使用哪些GPU和CPU设备,你也可以用-multidevice_strategy控制如何在不同设备上分割层。

例如,在一个有四个GPU的服务器中,指令“-gpu 0,1,2,3”,指按顺序在GPU 0、1、2和3上进行处理。

同时给出 -multidevice_strategy 3,6,12指令,表示前两层应该在GPU 0上计算,第3到5层应该在GPU 1上计算,第6到11层应该在GPU 2上计算,其余的层应该在GPU 3上计算。

根据你的需求调整-multidevice_strategy,可以达到输出的最大分辨率。

下面是一张4016x2213分辨率图像,是在使用8个Tesla K80 GPU的服务器上生成的:

「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

1080显卡入门,还能“分布式”计算,这么酷炫好玩低门槛的风格迁移网络,赶快来试试吧~

传送门:
https://github.com/ProGamerGov/neural-style-pt

<pre><section style="letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;"><section powered-by="xiumi.us"><section style="margin-top: 15px;margin-bottom: 25px;opacity: 0.8;"><section><section style="letter-spacing: 0.544px;"><section powered-by="xiumi.us"><section style="margin-top: 15px;margin-bottom: 25px;opacity: 0.8;"><section><section style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;text-align: center;"><span style="color: rgb(0, 0, 0);"><strong><span style="font-size: 16px;font-family: 微软雅黑;caret-color: red;">为您推荐</span></strong></span></section><p style="margin: 5px 16px;padding-right: 0em;padding-left: 0em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">一个算法工程师的日常是怎样的?</p><p style="margin: 5px 16px;padding-right: 0em;padding-left: 0em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">彻底搞懂机器学习中的正则化<br  /></p><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;"><span style="font-size: 14px;">13个算法工程师必须掌握的PyTorch Tricks</span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;"><span style="font-size: 14px;">吴恩达上新:生成对抗网络(GAN)专项课程</span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">从SGD到NadaMax,十种优化算法原理及实现</section></section></section></section></section></section></section></section></section>

「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享