AICon上海「Agent与多模态解决方案专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

只有加法也能做深度学习的 AdderNet 开源了

  • 2020-02-27
  • 本文字数:1043 字

    阅读完需:约 3 分钟

只有加法也能做深度学习的AdderNet开源了

2 月 25 日,华为诺亚方舟实验室将 AdderNet 正式开源!目前,已经可以在 GitHub 上访问源代码(文末附 GitHub 代码库链接,感兴趣的开发者可以自行尝试)。


一个月以前,一篇名为《我们真的需要在深度学习中使用乘法吗?》的论文刷爆朋友圈,这篇来自华为诺亚方舟实验室与北大合作的论文提出了一种新的方法,名为:AdderNet。


根据论文介绍:与加法运算相比,乘法运算具有更高的计算复杂度。在深度神经网络中被广泛使用的卷积计算,正是衡量输入特征和卷积滤波器之间相似度的交叉相关计算,这涉及到浮点值之间的大量乘法。而 AdderNet 可以将深度神经网络中,特别是卷积神经网络中的乘法,转换为更简单的加法运算,以便减少计算成本。


在 AdderNet 中,研究者采用了 L1 正则距离,用于计算滤波器和输入特征之间的距离,分析了这种新的相似性度量方法对神经网络优化的影响。为了获得更好的性能,研究人员还开发了一种特殊的反向传播方法来研究 AdderNet 的全精度梯度。然后,根据每个神经元梯度的大小,提出一种自适应学习速率策略来增强 AdderNet 的训练过程。


因此,在不使用卷积乘法的情况下,AdderNet 在 ResNet-50 上对 ImageNet 数据集进行训练后,能够取得 74.9% 的 top-1 精确度和 91.7% 的 top-5 精确度,如下图所示:



开源后,用户可以在自己的设备上对 AdderNet 进行配置,需要的基础环境为:


  • python 3

  • pytorch >= 1.1.0

  • torchvision


用户可以按照pytorch / examples准备 ImageNet 数据。此外,官方表示预训练的模型将很快发布。


目前,开发者可以通过运行如下代码来对 ImageNet val 集进行评估:


python test.py --data_dir 'path/to/imagenet_root/'
复制代码


在 ResNet-50 上对 ImageNet 数据集训练,用户将达到 74.9%的最高精度和 91.7%的 Top-5 精度。开发者可尝试运行如下代码,在 CIFAR-10 上进行求值运算:


python test.py --dataset cifar10 --model_dir models/ResNet20-AdderNet.pth --data_dir 'path/to/cifar10_root/'
复制代码


此外,在 ResNet-20 上对 CIFAR-10 数据集进行训练,用户将达到 91.8%的精度。


由于加法器过滤器是由 torch.cdist 实现的,所以 AdderNet 的推理很慢,但是用户可以编写cuda以获得更高的推理速度。


虽然 AdderNet 简化了运算成本,但是有一些反对的声音认为:类似的工作是可以通过硬件的优化(如 AI 芯片)来解决的,因此加法的优势其实并不算明显。如果有读者对 AdderNet 有更多见解,欢迎在留言区发表您的观点。


GitHub 开源链接:


https://github.com/huawei-noah/AdderNet


论文地址:


https://arxiv.org/pdf/1912.13200.pdf


2020-02-27 15:031579
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 290.7 次阅读, 收获喜欢 1303 次。

关注

评论

发布
暂无评论
发现更多内容

2021 第七季 28天写作训练 测试

将军-技术演讲力教练

甲方日常 81

句子

随笔杂谈

甲方日常 82

句子

随笔杂谈

溯源反制之MySQL蜜罐研究

Java架构师迁哥

CSS05 - 常用的高级选择器

Mr.Cactus

html/css

在onelogin中使用OpenId Connect Implicit Flow

程序那些事

权限系统 程序那些事 openid 权限架构 onelogin

不愧是Alibaba技术官:程序员必会的架构知识清单,如何让你技术上的提升面试时的丰收

Java架构之路

Java 程序员 架构 面试 编程语言

大数据应用及其价值

Andy

Openresty协程调度对比Go协程调度

行如风

高并发 协程 openresty Go scheduler

掌上警务,二维码一键报警定位系统

t13823115967

二维码定位报警系统开发

如何通过NGINX的log日志来分析网站的访问情况,试试这些命令

我爱娃哈哈😍

nginx Shell

深入理解Nginx的四级指针

赖猫

c++ nginx Linux

数据库表数据量大读写缓慢如何优化(1)【冷热分离】

我爱娃哈哈😍

大数据 架构 海量数据库的设计与实践 优化 数据库优化

CSS07 - 伪类

Mr.Cactus

html/css

大数据指标分析思考

Andy

智慧城市智能化建设,平安社区平台建设综合解决方案

t13823115967

智慧城市

系统高可用分析

Andy

CSS08 - CSS特性

Mr.Cactus

html/css

测开之函数进阶· 第8篇《多个装饰器装饰同一个函数,三个内置的装饰器》

清菡软件测试

测试开发

惊艳!阿里人用29篇讲明白了多线程与高并发+设计模式,惊呆了!

996小迁

Java 面试 设计模式 多线程 高并发

吴桐/数字化的下一个十年,你可能不会更幸福

CECBC

数字化时代

四万字干货 | 《高博士区块链观察18讲》文字稿,带你系统了解区块链

CECBC

区块链

架构师训练营大作业(一)

我是谁

架构师训练营第 1 期

CSS06 - 标签的显示模式与转换

Mr.Cactus

html/css

2020年无人场景市场趋势洞察

IoT云工坊

人工智能 物联网 智慧照明 节能管理 安防报警

量子通信触达消费者

CECBC

量子通信

阿里巴巴Java架构师70W年薪招聘需求,已拿Offer经验分享

Java架构追梦

Java 学习 阿里巴巴 架构 面试

一文汇总数据库基础知识点!(建议收藏)

Java鱼仔

架构师训练营W12作业

Geek_f06ede

天天CRUD,被领导怼,我是如何从小公司菜鸡到阿里P8架构师?,首次分享Java程序员黄金五年进阶心得

Java架构之路

Java 程序员 架构 面试 编程语言

CSS09 - 文本&背景属性

Mr.Cactus

html/css

只有加法也能做深度学习的AdderNet开源了_开源_陈思_InfoQ精选文章