当前位置: 首页 > 科技观察

在20分钟内,这个AI可以创造出复杂的艺术作品!1080显卡可以跑

时间:2023-03-14 14:18:30 科技观察

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。20分钟生成复杂的艺术作品,还在用Nvidia的上一代1080显卡?神经网络的入门门槛就这么亲民吗?没错,这是一个叫做neural-style-pt的风格迁移模型,基于Pytorch实现,刚刚开源!这个算法模型的话题在Reddit上才发布了一天,热度就接近2000了。Neural-style-pt,真的很酷很友好吗?丰富的融合方法neural-style-pt是论文ANeuralAlgorithmofArtisticStyle的Pytorch实现。论文介绍了一种算法,利用卷积神经网络将一张图片的内容与另一张图片的风格结合起来,这就是大家熟知的“风格迁移”网络。例如,将《星空》的艺术风格映射到一张斯坦福校园的夜景照片:或者根据给定图像的不同艺术风格融入到目标图像中:除了“分别”融合,多种艺术风格可以也可以综合输入一张图片:从左上角顺时针方向,风格分别为《星空》+《呐喊》、《呐喊》+《构图七(瓦西里·康定斯基油画)》、《坐着的裸女(莫提连·尼古拉斯油画)《+》作文七、《坐姿裸女》+《星空》。进行风格迁移时,加上“-original_colors1”命令,可以只改变风格,不改变原图颜色:1080卡能跑吗?根据背景和优化器的不同,算法的运行速度会有很大差异。使用512像素图像在TeslaK80上迭代500次时间参考:背景nn,优化器L-BFGS:117秒背景nn,优化器ADAM:100秒背景cudnn-optimizerL-BFGS:124秒背景cudnn-optimizerADAM:107秒背景cudnn-cudnn_autotune-optimizerL-BFGS:109秒背景cudnn-cudnn_autotune-optimizerADAM:91秒在GTX1080上,相同的基准测试时间更快:后端nn-optimizerL-BFGS:56秒背景nn-优化器ADAM:38秒后台cudnn-优化器L-BFGS:40秒后台cudnn-优化器ADAM:40秒后台cudnn-cudnn_autotune-优化器lbfgs:23秒后台cudnn-cudnn_autotune-优化器ADAM:24秒结合当前价格1080卡,不得不说这样的门槛对于机器学习来说已经很不错了。默认情况下,neural-style-pt使用后端进行卷积,使用L-BFGS进行优化。但是会占用大量内存,可以通过以下方法减少内存占用。要使用cuDNN,请添加-backendcudnn以使用cuDNN后端。并且在使用ADAM时,添加-optimizeradam以使用ADAM而不是L-BFGS。在默认设置下,neural-style-pt在系统上使用大约3.7GB的GPU内存;切换到ADAM和cuDNN可将GPU内存占用减少到大约1GB。如何开始尝试安装neural-style-pt,首先要准备好Pytorch。然后,使用如下一句话命令安装训练好的模型:pythonmodels/download_models.py安装完成后,上手试用非常简单。一行代码即可实现:pythonneural_style.py-style_image-content_image如果要加载更多不同的样式需要分隔不同的图片文件名:-style_imagestarry_night.jpg,the_scream.jpg注意图片名必须包含完整的地址路径。基本操作就是这些。Neural-style-pt还有一个强大的特性,就是它可以使用多种不同的计算设备来处理高分辨率图像。不同的设备会输出不同网络层的计算结果。您可以使用-gpu指令控制使用哪些GPU和CPU设备,还可以使用-multidevice_strategy控制层在设备之间的拆分方式。例如,在有四个GPU的服务器中,命令“-gpu0,1,2,3”表示依次在GPU0、1、2、3上处理。同时给出-multidevice_strategy3,6,12指令,表示前两层要在GPU0上计算,第3到第5层要在GPU1上计算,第6到第11层要在GPU上计算2、其余层应该在GPU上计算3.根据您的需要调整-multidevice_strategy以实现输出的最大分辨率。下面是一张4016x2213分辨率的图片,是在使用8个TeslaK80GPU的服务器上生成的:1080显卡入门,“分布式”计算,这么酷又好玩的低门槛风格的迁移网络,赶紧试试吧Let'sgo传送门:https://github.com/ProGamerGov/neural-style-pt