原标题:资源 | 神经网络框架Chainer发布2.0正式版:CuPy独立

选自GitHub

机器之心编译

参与:李泽南、吴攀

Chainer 是一个灵活的神经网络框架,它的一个主要目标就是展现灵活性,允许我们用简单直观的方式编写出复杂的架构。近日,Chainer 发布了 v2.0.0正式版。

Chainer 项目链接:https://github.com/chainer

大多数现有的深度学习框架都是基于「定义-运行(Define-and-Run)」方式的,即先定义一个网络,然后用户对其输入批量梯度下降。由于网络在前向/反向计算之前已经固定,所有逻辑必须作为数据嵌入到网络架构中。所以,这样的系统(例如 Caffe)中定义的网络架构遵循声明性方法;同时,我们也可以使用命令式语言(例如,Torch、基于 Theano 的框架和 TensorFlow)来产生这样的静态网络定义。

与以上方法相反,Chainer 使用「通过运行定义(Define-by-Run)」的方式,即通过即时正向运算定义网络。更准确地说,Chainer 存储计算历史,而不是编程逻辑。这一方式可以帮助我们充分发挥 Python 中编程逻辑的力量。例如,Chainer 不需要任何技巧就可以将条件和循环加入网络定义中。通过运行定义的方式就是 Chainer 的核心理念。由于逻辑更接近于网络处理过程,这种方式让编写多 GPU 并行运算的优化方法变得简单。

在 Chainer 2.0.0 测试版推出近三个月之后,该框架刚刚推出了 2.0.0 正式版,以下是我们对新版本主要更新内容的整理。

重要更新说明

CuPy 已从 Chainer 中分离,现在是一个单独的包:https://github.com/cupy/cupy

这意味着如果你想让 Chainer 使用 GPU 的话,你需要安装 CuPy。

请在使用 GPU 前遵循安装指南:http://docs.chainer.org/en/stable/install.html

与 CuPy 分离相关,我们删除了部分旧版本的 CUDA 和 cuDNN 支持。在 Chainer v2.0.0 和 CuPy 1.0.0 中支持的版本为:

CUDA 7.0 或更高

cuDNN 4.0 或更高

Chainer 的 repository 已从 pfnet/chainer 移动到了 chainer/chainer。旧的 URL 仍然可以通过 git 使用,但任何操作都会重新定向到新的。

对 Chainer v1.x 用户:

有一个升级指南介绍了与 v1 的变化之处:http://docs.chainer.org/en/stable/upgrade.html

对贡献者:

请再次阅读贡献者指南,其中有多处更新:http://docs.chainer.org/en/stable/contribution.html

如贡献者指南所述,我们改变了开发和发布周期。主要开发将在主分支上继续进行,这将应用于 v3(包括 alpha、beta 和正式)版本,v2 的维护将在 v2 分支完成。

如果你有一个修改意见,请将其置于主分支中。

发布说明

以下内容仅是在 v2.0.0b1 上的改进。请参阅 v2.0.0a1 与 v2.0.0b1 的发布说明以找到所有与 v1 版本的不同:

https://github.com/chainer/chainer/releases/tag/v2.0.0a1

https://github.com/chainer/chainer/releases/tag/v2.0.0b1

新特性和 API 变化

v2.0.0a1

统一配置:配置 Chainer 的以下四个配置现在由 chainer.config 和 chainer.global_config 对象管理

debug 模式(由 set_debug 配置)

enable_backprop 模式(由 no_backprop_mode 配置)

train 模式(由 train 或 test 的多种方法进行参数配置

type_check 模式(由 Function.type_check_enable 配置)

v2.0.0b1

变量方式的更新规则

每个参数变量现在都保持优化器的 update_rule 设置。用户可以编辑每个更新规则的超参数,以自定义每个参数的优化配置(例如使用不同的学习率)。每个更新规则还可以有自身的挂钩函数(hook function,例如,仅将权重衰减用于权重矩阵)。

应用主动缓冲释放

我们改变了计算图和变量的对象结构。变量对象不再是计算图的一部分,而是保存对作为计算图的一部分的 VariableNode 对象的引用。一些功能使变量节点不保留阵列缓冲区,从而减少内存消耗。只有最流行的功能(relu、arithemetics、concat、split_axis)支持这个功能。

根据此前的基准测试,它在现代卷积神经网络的运行中节省了 33% 的内存用量。

类型检查

类型检查的 API 略有改变,当代码通过检查时,此更改会降低类型检查的资源消耗。

加入 use_cudnn 模式

我们删除了多个函数中的 use_cudnn 参数。是否使用 uDNN 现在由 hainer.config.use_cudnn 负责配置。

未初始化的变量和参数

Variable 现在允许有一个未初始化的数据数组。这一改动简化了未初始化参数链接的改动。

更改 Variable 类型以在其复制的实例(包括初始化/未初始化状态)之间共享其实际数据和渐变数组。

扩展了 Evaluator 可接受的数据类型

过去,我们只能将 NumPy 和 CuPy 对象提供给 chainer.training.extensions.Evaluator 的评估函数,现在没有这个限制了,任意数据类型都是允许的。

v2.0.0

加入 L.StatelessGRU,更改了 L.GRU 的应用

input size/channels 现在是可选择的

Aggressive Buffer Release

有关 buffer release,加入了以下功能:

transpose_sequence

select_item

get_item

array method

copy

flip functions

cast

broadcast

noise functions

pooling functions

broadcast (revisited)

stack methods

math functions

depth2space

chainer.config.cudnn_deterministic: cuDNN 确定模式

删除 L.MLPConvolution2D 中的 wscale 选项

在 parameter/link 中增加新的 API,注册到 Link/Chain

在报告变量时清除图形

加入 Extension.initialize 删除了 invoke_before_training

让 None 可串行化

当提出过时参数时,显示错误

使用 cleargrads 代替 zerograds 作为默认选项

修复 STM 和 GRU 之间不一致的命名

为 Variable 加入 requires_grad 性质

repr 在 Variable 中支持类似于 numpy 的 repr

清除 L.Linear 的 API 与偏差参数相关的卷积状链接

删除 Optimizer 中已弃用的方法

默认情况下启用偏置向量 L.ConvolutionND 和 L.DeconvolutionND

增强

在 functions 和 links 中删除不必要的导入

检查 v2 中不支持的旧参数以显示错误消息

当 volatile 出现时显示错误

其他

加入 ResNet50 示例

说明文档改善

在教程中加入了 chainer.config.train 章节

下载

源代码

https://github.com/chainer/chainer/archive/v2.0.0.zip

https://github.com/chainer/chainer/archive/v2.0.0.tar.gz

更多有关GMIS 2017大会的内容,请点击「阅读原文」查看机器之心官网 GMIS 专题↓↓↓返回搜狐,查看更多

责任编辑:

cupy 安装_资源 | 神经网络框架Chainer发布2.0正式版:CuPy独立相关推荐

  1. 兼容 tmux,类似 rz / sz 的 trzsz ( trz / tsz ) 发布 1.0 正式版

    trzsz ( trz / tsz ) 是兼容 tmux 的 rz / sz . 现已支持 iTerm2 .tabby 和 electerm ,还支持 webshell ( 通过 https://gi ...

  2. 首个Laravel工作流引擎发布 V1.0正式版

    工作流在日常得系统开发中不常见,因为大部分能应用上流程引擎得都是大系统,大集团,或者政企客户.Tpflow作为开发比较久得工作流引擎,一直不支持Laravel. 辛酸历程: 2022年3月,我们立项开 ...

  3. iView 发布 1.0 正式版,43 个 UI 组件助力中后台业务开发

    时隔半年多,iView 终于迎来了它的第一个正式版本 1.0.0,到目前版本,已经有 43 个常用 UI 组件,从功能和设计上,是最接近 Ant.Design 的 Vue.js 实现. 关于 iVie ...

  4. 腾讯电脑管家发布8.0正式版

    下载地址:腾讯电脑管家8.0正式版 What's new: 1. 简约界面,轻快流畅. 2. 腾讯第二代反病毒引擎,智能强大. 3. 全球最大云库平台,实时拦截恶意网站. 4. 帐号风险即时提醒,保护 ...

  5. iView 一周年了,同时发布了 2.0 正式版,但这只是开始...

    两年前,我开始接触 Vue.js 框架,当时就被它的轻量.组件化和友好的 API 所吸引.之后我将 Vue.js 和 Webpack 技术栈引入我的公司(TalkingData)可视化团队,并经过一年 ...

  6. 路过秋天版博客 V2.0 正式版发布 增加后台管理系统[支持多语言、多用户、多数据库、目录级URL]...

    路过秋天版博客发布历史回顾: 1:2010年11月08日---支持多语言.多用户.多数据库.目录级URL之路过秋天版博客发布[绝对有杀伤力的博客] 2:2010年11月10日---基础却容易被忽略的那 ...

  7. 【软件周刊】Bootstrap 将不再支持 IE 9;Swoole 2.0 正式版发布,协程特性支持 PHP 7...

    2019独角兽企业重金招聘Python工程师标准>>> PHP 的异步并行.网络通信引擎 Swoole 发布 2.0 正式版,协程特性支持 PHP 7 2.0 版本最大的更新是增加了 ...

  8. Wonder 1.0 正式版发布,WebGL 3D引擎和编辑器

    介绍 Wonder 1.0正式版发布了.免费.开源,不用注册,直接打开在线编辑器即可使用. Wonder 是 web 端 3D 开发的解决方案,包括引擎.编辑器,致力于打造开放.分享.互助的生态.Wo ...

  9. 飞桨框架2.0正式版重磅发布,一次端到端的“基础设施”革新

    在人工智能时代,深度学习框架下接芯片,上承各种应用,是"智能时代的操作系统".近期,我国首个自主研发.功能完备.开源开放的产业级深度学习框架飞桨发布了2.0正式版,实现了一次跨时代 ...

最新文章

  1. 数智化浪潮之中,传统企业如何抓住转型机遇
  2. 2017阿里云TECH INSIGHT干货分享第六届隆重回归
  3. iOS -数据库网络之xml解析之远程解析XML
  4. PP部分主数据导出SQVI设置
  5. python新手遇到的5大坑
  6. lisp语言画阿基米德线_孩子总说“我不会画”!那么孩子是否要先学画形象?...
  7. Python字符串的encode与decode研究心得乱码问题解决方法
  8. JN_0005:PS改变图片指定内容颜色
  9. 某物流集团企业信息化案例介绍
  10. onnx格式转tensorRT
  11. Java基础面试题(2022最新版汇总)
  12. 智能优化算法:人工水母搜索算法 -附代码
  13. mysql表名、字段名命名规范
  14. QQ机器人-nonebot
  15. trinity运行原理及常见报错(二)
  16. 凸函数-convex function
  17. Vue 中 scoped 样式穿透
  18. 服务器操作系统linux,关于服务器的操作系统
  19. 华为交换机难点学习:导出配置文件/同步时间
  20. 组态基于DTU实现机床远程监控系统

热门文章

  1. 前端数据模拟的几种方法
  2. Angular 5 最新官方demo
  3. delphi Align属性
  4. speedoffice(Excel)表格如何设置上角标?
  5. PHP 链式操作 - 学习/实践
  6. 非压缩BCD码转压缩BCD码汇编语言
  7. 鸿蒙系统真实使用,OPPO公关发文抵制,鸿蒙系统应该如何破局?可以借鉴当年的谷歌...
  8. 互联网新名词2019年计算机新名词,2019年上半年网络热词盘点 2019最新网络热词排行榜...
  9. python的爱心表白代码
  10. Win10 14个常用快捷键,便捷日常小生活