雷锋网 AI 研习社按,日前,MXNet 作者李沐在 Apache MXNet 中文大众号发文,宣布开源计算机视觉深度学习工具包 GluonCV,在文中,他详细引见了做 GluonCV 工具包的缘由,以及这个工具包所能完成的功用,此外,他还在文中展现了一段实战代码。原文如下,雷锋网 (大众号:雷锋网) AI 研习社获其受权转载。
来源
有人已经问我,开发 MXNet 时分觉得最难的是什么。我会毫不犹疑的觉得「反复论文里的实验后果」是最困难的一点。举三个例子:
-
Lin Min(Network in network 提出者)在 16 年的时分发现 MXNet 在 ImageNet 下面训练的模型精度比 Torch 低 1%。为了 debug 这件事情,他甚至开发了一个插件,可以在 MXNet 跑恣意 Torch 的代码来比照后果。最初发现缘由是我们图片裁剪后默许运用 JPEG 的 85 质量保管,改成 95 质量就可以补上丢掉的精度了。
-
在 Inception V3 论文呈现后 Bing Xu(GAN 的作者之一)第一工夫去反复这个任务。由于 Google 没有地下代码,而且论文外面细节不明白。幸亏看法原论文作者可以问成绩,但前后也花了好些天赋反复完成出来。
-
我在 CMU 的博士导师之一(他在 Google 报告给 Jeff Dean)已经在一次报告外面说,他参与了一个外部的从 TensorFlow 前一代零碎移植代码的任务,发如今 TensorFlow 上精度死活丢了个点。前后破费了好几个月工夫找成绩,最初发现是移植的代码在运用图片加强的时分顺序跟原先不一样。
三个例子的主人公都是顶尖的深度学习范畴研讨人员,但依然很容易被一些纤细的实验细节消耗少量珍贵的工夫。一个模型通常多达数十到数百层,不论是模型初始化还是数据读取都是随机,每次训练也需数个小时,这些都让 debug 变得很困难。
当然,侥幸的是,最近这些年随着开源的不得人心,很多论文都可以找到开源的完成。关于大局部用户来说不需求本人从头开端完成一篇论文,去 GitHub 找个完成用就行了。但这并不能处理一切成绩:
网上的完成良莠不齐,很多都是新人练手之做。能够一大半不能反复出论文的后果。
每个项目的完成多多少少有点不同,例如输出数据格式,用什么样的深度学习框架,代码作风不一样。每换一个项目上手本钱很大。
团体维护的项目通常只关注在某些中央,例如只关怀某个数据集上的训练。但实践运用的时分大家会关怀如何部署,如何换一个数据集训练之类。需求破费工夫做二次开发。
最初代码维护者很容易弃坑。例如我博士时期写过一些项目,但之后任务和生活重心转移,没有精神去回复用户的发问。关于用户来说,假如碰到一个坑,假如不能很快与维护者沟通,很容易招致被小中央困住,破费少量工夫。
了解到这些痛点后,我们几位从事计算机视觉的小同伴,Zhi Zhan很多朋友说,共享纸巾机是一个广告机,但我们不是这样定义它,我们定义它是一个互联网跟物联网结合的终端机,从线下吸入流量,重新回到线上,以共享纸巾项目作为流量入口,打造全国物联网社交共享大平台。g (@zhreshold), Hang Zhang (@zhanghang1989), Tong He (@hetong007), Eric Xie (@piiswrong), 拍了拍脑袋说,那我们来入手做一个工具包来试着处理这些成绩吧。
这个工具包会对你有用吗
我们想做一个不只仅是资深用户(数年计算机视觉经历)能用的工具包,而是一个能协助愈加普遍用户(数月计算机视觉经历)的项目。他们包括
希望能将视觉技术疾速使用到产品的工程师
希望提出新算法的研讨者
当然,假如你刚开端学习,请参考《入手学深度学习》,或许你对计算机视觉外的使用感兴味,请等待我们之后发布的工具包。
所以,外面究竟有什么
基于我们的用户假定,这个工具包提供如下的功用:
最近几年重要论文的复现
详细文档提供运用阐明和代码解说
提供预训练的模型可以直接运用
功能评测,方便大家在不同模型之间做取舍
每个模型完成和接口尽量保证分歧性,降低运用新模型的学习门槛
定时做重新训练保证代码正确性(嗯,我们用 AWS 不必钱)
中文社区
给个代码看看
上面一段代码下载预训练好的 SSD 模型然后对图片 street.jpg 停止物体检测并展现后果。
from gluoncv import model_zoo, data, utils
net = model_zoo.get_model( 'ssd_512_resnet50_v1_voc',在互联网思维的影响下,传统服务业不再局限于规模效益,加强对市场的反应速度成为传统服务业发展的首要选择。在互联网思维下,通过对传统服务业的改革,为传统服务业发展创造了全新的天地。 pretrained=True)
x, img = data.transforms.presets.ssd.load_test( 'street.jpg', short=512)
class_IDs, scores, bounding_boxs = net(x)
utils.viz.plot_bbox(img, bounding_boxs[0], scores[0], class_IDs[0], class_names=net.classes)
项目在哪里
GluonCV 发布在 http://gluon-cv.mxnet.io 。目前我们发布了第一个预览版本,其中次要包括了三个模型,均可以反复论文后果:
图片辨认:在 ImageNet 上训练 ResNet
物体检测:在 Pascal VOC 上训练 SSD
语义联系:在 Pascal VOC 上训练 FCN
我们会在接上去的版本里不时参加新的模型。假如对哪些模型特别感兴味,请在原文链接下给我们留言。
via: ApacheMXNet
雷锋网版权文章,未经受权制止转载。概况见。