手机能够实时地看、说、理解,而无需连接到远程服务器,但它们也有局限性。虽然近年来手机的计算能力有了显著的提升,每秒能够执行数十亿次数学运算,但它们仍受到诸如功率、存储器、计算能力等的各种资源限制,需要更聪明的软件设计。因此,对机器学习系统来说,手机既是机会也是挑战。 我们应对这个挑战的方案是设计一个非常轻量级,而且模块化的框架。为此,我们在开源Caffe2项目之上利用Unix原理。这确保了连接组件的核心框架非常轻量,而且能够附加多个模块——包括专门为移动设备进行的优化。我们使用一个精益算法框架,允许工程师将抽象运算描述为一个有向无环图(DAG),同时确保图中可以执行的这些节点的输入和输出没有被强加限制。这让我们的工程团队能够在不同平台上实现并优化模块,同时能轻松地把这些模块连接起来。当DAG实际运行时,它能利用各种硬件功能最快地实现具现化。 由于速度是计算密集型移动应用程序的核心,尤其是图像和视频应用,框架设计的轻量能让我们为已定义的运算符执行平台特定的优化。一个著名的例子是Caffe2集成在我们的移动运行库中的名为NNPack的库。利用移动CPU的NEON功能,我们能显著提高移动计算的速度。在 iOS设备上,我们还开始集成加速功能,例如Metal语言。所有这些都是通过模块化设计完成的,无需改变常规模型定义。因此,算法端和运行库端能够安全地彼此依赖,不需要担心任何潜在的不兼容性。 友好的开发环境 Caffe2也是我们的第一个具有产业实力的深度学习平台,可以在四个平台上用同样的代码集全速运行:服务器CPU,GPU,iOS和Android。由于模块化设计,框架可以使用相同的语言,但要分别在各个平台上优化。这是一个对开发者隐藏的实现细节,例如,j2直播,框架可以在手机(iOS和Android)的NNPack和服务器GPU的CUDNN之间选择。因此,开发者可以专业于算法的工作,而不用研究怎样运行卷积。 开发者还能从最新的设计部署中获益。从开发者的角度看,缩减手机的运行时间是一个难题,因为手机的工具链并不像台式机和服务器那样强大。我们通过压缩神经网络以匹配硬件来解决这一问题。Caffe2go 中一个序列化的网络在手机和服务器上都能实现相同的输出。最终,我们能把主要的工作转移到服务器环境中,模型训练、性能观察、用户体验研究等。如果一切进展顺利,我们仅需要设置一个按钮,就能再转移到手机环境中。
风格转换模型训练 风格转换的概念并不新鲜,最早提出是在2015年8月的一篇会议论文 A Neural Algorithm for Artistic Style。但是,当时的技术处理速度极慢并且要求强大的服务器。论文发表后的几个月,圈内的研究员提升了这一技术并且把速度提升了好几个维度,但是,对计算能力依然有很高的要求。 Caffe2go 把这一AI处理过程变得更快,并且在手持设备上就能完成。但是,风格转化模型依然要进行优化,来保证体验可以实时进行,同时保持好质量、高分辨率的图像。 有效模型尺寸优化 传统的风格转化研究模型(即使是前馈变量)都是很大的(指的是参数的数量),并且很慢。我们的目标是创建一个风格转换应用,能运行新的、更小的同时更有效的模型,来生成高质量的视频,视频能达到20FPS,能在iphone6或以上的设备中运行,并且避免掉帧。 我们采用了三个主要的方法,来缩减模型的尺寸,我们对卷积层数量进行了优化(这是处理过程最消耗时间的部分),也对每一层的宽度进行了优化,在处理过程中,我们还调整了空间分辨率。通过调整需要处理的图像特征数量,或者调整单独的处理行为所需要的时间,卷积网络层的数量和它们的宽度能在独立的层级使用,进而调整处理所需要的时间。 对于空间分辨率,我们能调整实际的尺寸,也就是在中间层中被处理的那些。通过使用早期池化(缩减被处理的图像的尺寸)以及后来的去卷积(在处理后放大图像),我们能加速处理时间,因为系统需要处理的信息变少了。我们还发现,有了这些技术,我们能极大地缩减训练网络的宽度和深度,同时又能确保图像质量维持在合理的水平。
手机上进行神经网络训练 (责任编辑:本港台直播) |