搜狐媒体平台-搜狐网站>IT

他一出家就成中国最帅和尚

眼眸深邃、轮廓分明、身材颀长,活生生的一幅画。

大学副教授与在押服刑女结婚

这在监狱民警看来,那么令人不可思议。

GitHub|Forge:Metal技术平台上的神经网络工具箱

声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。举报

  全球人工智能:专注为AI开发者提供全球最新AI技术动态和社群交流。用户来源包括:北大、清华、中科院、复旦、麻省理工、卡内基梅隆、斯坦福、哈佛、牛津、剑桥等世界名校的AI技术硕士、博士和教授;以及谷歌、腾讯、百度、脸谱、微软、华为、阿里、海康威视、滴滴、英伟达等全球名企的AI开发者和AI科学家。

文章来源:GitHub 编辑:马卓奇博士

  Forge 是一个开源库,可以方便使用苹果的MPSCNN框架来构建神经网络。

  为什么需要Forge

  苹果的MPSCNN框架很适合在iOS设备上创建快速的深度学习网络。他使用Metal技术助力,能够让你的iPhoneGPU发挥最好的作用。然而使用GPU也有不好的一面:Metal只会从纹理和图像方面考虑问题。将图像作为卷积网络的输入是很常见的,但是你还需要把网络的输出转化成你可以用Swift调用的东西。那对于非图像数据,例如音频和文字,网络该如何工作呢?Forge可以很简单的将你的数据转换形成纹理特征。

  例如,一个分类网络会产生类别可能性分布。你所需要的是一个浮点数矩阵,但是Metal给你的是一个MTLTexture文件,嵌在一个MPSImage文件中,他们都使用的奇怪的16位浮点数存储.

  使用Forge,你可以简单的用下面的命令来获得前5个预测分数最高的标签:

  let probabilities = outputImage.toFloatArray()let top5 = probabilities.top(k: 5)

  Forge的亮点

  计算核

  大部分神经网络都需要自定义计算核,Forge可以可以协助你写出自己的计算核。

  预处理核

  一般情况下,在数据进入网络之前都要进行预处理,Forge自带了一些很好用的预处理核:

  · 颜色去均值

  · RGBGray

  · RGBBGR

  更多网络层。

  MPSCNN只支持有限数量层,所以Forge增加了其中没有的自定义层:

  · 深度卷积

  · 转置通道

  · 反卷积

  调试工具

  当你在Metal中实现神经网络时,你想确认它的计算是正确的。根据Metal编码数据的方式,观察MTLTexture的内容不是一直那么直白。Forge可以帮助到这一点。

  领域特定语言(domain-specific languageDSL

  然而,Forge目前最大的特征是领域特定语言(domain-specific languageDSL),为你的网络创作层只需要很简单的指令。

  没有开发模版了!

  iPhone上实现深度学习网络总是需要大量的开发模版代码。苹果的Inception-v3网络的样例代码用了大概2000行代码来设置和运行网络。这样的代码写起来很慢,而且还很容易出错。有了Forge的领域特定语言,定义一个完整的神经网络只需要几行代码。、

  

  目前该功能只支持基础的卷积,池化和全连接层。你也可以插入你自己的计算核。将来作者会增加对多种层的支持。

  这种迷你语言的好处就是在他流通过整个网络的时候,它会自动推算数据的大小。

  样例中的Resize层可以将任何大小的RGB图像缩减成64×64的尺寸。

  每个卷积层(Convolution layer)都会增加数据的深度,每个最大池化层(MaxPooling layer )会将空间维度减半。

  该网络的数据形状为(宽度*高度*深度):

  如果只用MPSCNN代码,你还需要对所有不同尺寸的数据建立MPSImageDeor项。Forge会代替你完成这些工作,你永远都不需要再建立一个MPSImageDeor项了。

  Inception-v3网络现在只需要130行代码就足够说明,而不用2000行了。样例可以参考该网页:https://github.com/hollance/Forge/blob/master/Examples/Inception/Inception/Inception3.swift

  编译模型

  当你指定了模型之后,你可以编译它:

  

  编译首先计算层输出的形状,然后为该层建立MPSCNN项。

  MPSCNN卷积(MPSCNNConvolution)项或MPSCNN全连接(MPSCNNFullyConnected)项需要知道网络学习的权重和偏置,所以你需要提供这些参数。这样一来,model.compile()函数进行闭包,并且返回一个参数数据(ParameterData)项。

  这样的闭包函数对于使用参数的每一层都会调用,一次计算权重,一次计算偏置。上面的例子会返回一个ParameterLoaderBundle实例,它是ParameterData的实现,可以从在程序束储存的文件中读入权重和偏置。对于命名为“Conv1”的层,它会下载文件conv1_W.bin (权重)和conv1_b.bin(偏置)。

  在模型成功编译之后,print(model.summary())命令会输出一个列表,包含模型中所有的层。这对于复查是很有用的。

  

  如果你使用过Keras,这个应该看起来很熟悉,的确,KerasForgeDSL的创作灵感来源。注意到每层输出的形状是根据层参数自动计算的,例如计算核的尺寸,带宽等等。

  有什么缺点呢?

  使用这种DSL来定义网络时有个一缺点:会出现不可避免的间接消耗,因为Forge需要横贯整个层图,并且组装所有的片段。这比手动的代码要慢。

  你当然是希望你的网络代码运行速度越快越好,尤其是编码了GPU增益时。DSL在这里也会有一些间接消耗。不过在实际应用中这种速度差基本可以忽略不计。消耗的时间绝大部分都是在编码和运行GPU指令上。在目前的硬件水平下你的网络的运行速度,都会比Forge慢几个数量级。

  如何实现运行Demo

  Xcode 中打开Forge.xcworkspace,然后在你的设备上运行MNIST程序,就可以观看Forge在活动状态下的演示。

  你需要Xcode 8.3版本及以上,以及带有A8处理器的设备(iPhone6及以上),运行系统为iOS10或更新的系统。如果不支持Metal的话,是无法建立模拟器的。

  如何安装

  使用Xcode 8.3版本及以上。

  1 复制Forge文件夹到你的项目下。

  2 使用File > Add Files to "YourProject" > Forge.xcodeproj 来把Forge项目添加到你的项目内。

  3 Products/Forge.framework拖入项目设置的Embedded Binaries部分

  4 在代码中导入Forge

  使用方法

  使用领域特定语言来产生新网络的样例:https://machinethink.net/blog/forge-neural-network-toolkit-for-metal/

  

  热门文章推荐

  揭秘|一张图读懂腾讯的AI战略布局

  黑科技|MIT最新机器人DCP:可安全、快速建造大型建筑

  最新|霍金称世界正迈入“新科学复兴”,李开复微博点赞

  资源|杜克大学计算机统计学(Python)全部内容中文翻译

  重磅|马斯克的第四次惊天创举:这一次,他将拿人脑开刀!

  重磅|15种排序算法动画演示(附视频)

  爆闻|107篇中国学者论文涉嫌造假遭撤稿,中国科协约谈Springer Nature总裁(附完整名单

  干货|年薪百万的机器学习专家,为什么不产生价值?

mt.sohu.com true 搜狐媒体平台 https://mt.sohu.com/20170429/n491185711.shtml report 15690 全球人工智能:专注为AI开发者提供全球最新AI技术动态和社群交流。用户来源包括:北大、清华、中科院、复旦、麻省理工、卡内基梅隆、斯坦福、哈佛、牛津、剑桥等世界名
阅读(0) 举报
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。

热门关注

搜生活

搜生活+关注

搜狐公众平台官方账号

MAGIC杨梦晶

MAGIC杨梦晶+关注

生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者

搜狐教育

搜狐教育+关注

搜狐网教育频道官方账号

星吧GEO

星吧GEO+关注

全球最大华文占星网站-专业研究星座命理及测算服务机构

热门图片

  • 热点视频
  • 影视剧
  • 综艺
  • 原创
锦绣缘

同步热播-锦绣缘

主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
神雕侠侣

大结局-神雕侠侣

主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
封神英雄榜

同步热播-封神英雄榜

主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓

六颗子弹

主演:尚格·云顿/乔·弗拉尼甘/Bianca Bree
龙虎少年队2

龙虎少年队2

主演:艾斯·库珀/ 查宁·塔图姆/ 乔纳·希尔

《奔跑吧兄弟》

baby14岁写真曝光

《我看你有戏》

李冰冰向成龙撒娇争宠

《明星同乐会》

李湘遭闺蜜曝光旧爱

《非你莫属》

美女模特教老板走秀

《一站到底》

曝搬砖男神奇葩择偶观

搜狐视频娱乐播报

柳岩被迫成赚钱工具

大鹏嘚吧嘚

大屁小P虐心恋

匆匆那年第16集

匆匆那年大结局

隐秘而伟大第二季

乔杉遭粉丝骚扰

The Kelly Show

男闺蜜的尴尬初夜

我来说两句排行榜

客服热线:86-10-58511234

客服邮箱:kf@vip.sohu.com