QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

只有加法也能做深度学习的 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:031491
用户头像
陈思 InfoQ编辑

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

关注

评论

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

Kubernetes 原生 CI/CD 构建框架 Argo 详解!

字节跳动 Kubernetes 云原生 CI/CD argo

盘点:2021年最新、最全、最实用的Java岗面试真题,已收录GitHub

Java 架构 面试

威联通(NAS)应用篇:自建OwnCloud网盘(百度网盘,拜拜~~~)

BigYoung

NAS 威联通 28天写作 2月春节不断更

iMove 基于 X6 + form-render 背后的思考

阿里巴巴 开源 大前端 Web框架 逻辑编排

即构发布 LCEP 产品「RoomKit」 ,实现房间内0代码接入

ZEGO即构

架构师week11总结

Geek_xq

Spring Boot 微服务性能下降九成!使用 Arthas 定位根因

Java架构师迁哥

F2C能否让前端像运营配置一样开发?

阿里巴巴 开源 大前端 Web框架 逻辑编排

登上 Github 趋势榜,iMove 原理技术大揭秘!

阿里巴巴 开源 大前端 Web框架 逻辑编排

架构师week11 作业

Geek_xq

第十一周作业&总结

胡益

2021年前端趋势预测

阿里巴巴 开源 大前端 Web框架 逻辑编排

团队中的三种成员

熊斌

学习 管理 2月春节不断更

【百度技术分享】San介绍以及在百度APP的实践

百度Geek说

Java JavaScript feed

LoraWan的第一个网关与设备

远鹏

物联网 IoT ChirpStack LoraWan

日记 2021年2月5日(周五)

Changing Lin

个人感悟 2月春节不断更

因果迷境:为什么我们会问“为什么”?

脑极体

LeetCode题解:529. 扫雷游戏,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

【LeetCode】尽可能使字符串相等

Albert

算法 LeetCode 2月春节不断更

2021最新发布百度云面经总结:Java并发+Redis+数据库+分布式

比伯

Java 程序员 架构 面试 计算机

所见即所得! iMove 在线执行代码探索

阿里巴巴 开源 大前端 Web框架 逻辑编排

阿里新晋 CNCF TOC 委员张磊:“云原生”为什么对云计算生态充满吸引力?

阿里巴巴云原生

云计算 容器 微服务 云原生 cncf

通过配置开关 Spring Boot 中的 @Scheduled 定时任务

和白白

Java 定时任务 springboot

【得物技术】AB实验设计实现与分流算法

得物技术

算法 AB AB testing实战 实现 得物技术

正点原子DS100拆解全过程-硬件工程师必备

良知犹存

嵌入式

OpenCV--基本的线条操作

IT蜗壳-Tango

七日更 2月春节不断更

为什么联盟链系统没有“激励”?

CECBC

区块链

用 JSX 实现 Carousel 轮播组件

三钻

大前端 组件化 JSX

SDS离全面EC(纠删码)还有多远?

XSKY星辰天合

存储

产品经理训练营第二章作业2

阿波

百度亮相全球量子信息处理顶会QIP2021 推动全球量子科技进步

爱极客侠

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