百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

加入巨头竞争之列,索尼开源可在Windows中运行的神经网络库NNabla

ccwgpt 2024-11-06 09:58 47 浏览 0 评论

选自Sony

机器之心编译

参与:蒋思源、李泽南

索尼昨天宣布开源了自己的神经网络库 NNabla,其中包含用于深度学习系统的 Python API 与用于嵌入式设备的 C++API。彭博社也表示索尼正在加入谷歌、Facebook 和亚马逊等巨头的人工智能开发竞争。

神经网络是深度学习模型的核心,后者自 2012 年在图像识别领域获得突破性进展以来获得了人们的广泛关注。现在,深度学习已经在很多领域中获得应用,它不仅仅是一种图像识别的算法,也是一种用于建模的黑箱系统。

用于处理深度学习模型的架构各有不同:从小到大,从前馈到循环,从非监督到监督……对于深度学习技术的研究发展也有很快速度,新的架构、组件或神经网络每天都在出现。目前装备 GPU 的高性能深度学习计算机或集群,对于运行深度学习的移动设备、物联网设备的要求也在催生技术的发展。

索尼从 2010 年起就加入了深度学习的研究行列。这次开源的深度学习核心库已是其研究成果的第三代了,它包含以下特性:

  • CUDA 兼容性。

  • 它拥有 Python API,因此最大化了设计神经网络模型的灵活性,并且还能支持快速的原型设计和测试。

  • 同时支持静态和动态计算图(computation graphs)。静态计算图在速度和内存上有更高的效率,而动态计算图在设计模型上更加灵活。

  • 有各种内置的神经网络模块,如函数、算子和优化器等。该神经网络库的模块软件架构允许开发者添加新的模块,因此开发者可以基于新的研究思路实现更快的原型设计、产品或服务部署。

  • 它由轻便、轻量的 C++11 核所编写,并能在多个平台上运行。该框架已经在 Linux (Ubuntu 16.04) 和 Windows (8, 10) 上进行了测试。

  • 极高的速度和内存效率。计算图引擎允许安全的原位计算(in-place computation)和内存分享,这将极大地将少内存的占用。因此该框架的设计仅采用少量的计算负载就能执行前向和后向传播。

  • 为各种计算方案而设计的解耦合实现(Decoupled implementation)接口允许为每一个计算方案提供插件式的开发方案。开发者可以更关注函数算子实际计算的特定实现,而不用管计算图引擎与其内存优化等。

索尼官方将很快发出更具体更详细的神经网络库使用方法。

索尼表示他们的神经网络库提供了最基本的深度学习开发研究和部署的函数。他们希望该软件库能推动人工智能的发展,并且不论是在先进研究领域还是前沿应用部署上都能提供强有力的助力。

  • 项目地址:https://github.com/sony/nnabla

  • 说明文档:https://nnabla.readthedocs.io/

  • 项目官网:https://nnabla.org/

下面是该神经网络库的 Github 项目介绍:

NNabla 是一个深度学习框架,计划在研究,开发与生产领域当中使用。索尼的目标是让它可以在任何地方运行,就像个人笔记本电脑、高性能计算集群、嵌入式装置和生产服务器一样。因此索尼希望通过提供高效便捷的机器学习库而将算法嵌入到边缘设备中。

安装

安装 NNabla 很简单:

pip install nnabla

这是 CPU 版本的 NNabla,GPU-加速器可以通过安装 CUDA 工具包来添加:pip install nnabla-ext-cuda

特征

简单,灵活并且有表现力

基于 NNabla C++11 内核的 Python API 给你提供了灵活性和高产出效率。例如,一个带有分类损失的两层神经网络可以仅通过以下 5 行代码被定义(超参数由<>括出)。

import nnabla as nnimport nnabla.functions as Fimport nnabla.parametric_functions as PF

x = nn.Variable(<input_shape>)

t = nn.Variable(<target_shape>)

h = F.tanh(PF.affine(x, <hidden_size>, name='affine1'))

y = PF.affine(h, <target_size>, name='affine2')

loss = F.mean(F.softmax_cross_entropy(y, t))

训练可以通过以下步骤来完成:

import nnabla.solvers as S

# Create a solver (parameter updater)

solver = S.Adam(<solver_params>)

solver.set_parameters(nn.get_parameters())

# Training iterationfor n in range(<num_training_iterations>):

# Setting data from any data source

x.d = <set data>

t.d = <set label># Initialize gradients

solver.zero_grad()

# Forward and backward execution

loss.forward()

loss.backward()

# Update parameters by computed gradients

solver.update()

动态计算图使网络结构的执行时间变得灵活。NNabla 可以使用静态和动态图的模型,在两种情况下都使用相同的 API。

x.d = <set data>

t.d = <set label>

drop_depth = np.random.rand(<num_stochastic_layers>) < <layer_drop_ratio>with nn.auto_forward():

h = F.relu(PF.convolution(x, <hidden_size>, (3, 3), pad=(1, 1), name='conv0'))

for i in range(<num_stochastic_layers>):

if drop_depth[i]:

continue # Stochastically drop a layer

h2 = F.relu(PF.convolution(x, <hidden_size>, (3, 3), pad=(1, 1),

name='conv%d' % (i + 1)))

h = F.add2(h, h2)

y = PF.affine(h, <target_size>, name='classification')

loss = F.mean(F.softmax_cross_entropy(y, t))# Backward computation (can also be done in dynamically executed graph)

loss.backward()

便携式和多平台

  • Python API 能够在 Linux 和 Windows 上使用。

  • 大多数函数库的代码都是使用 C++11 写的,所以可以部署到嵌入设备中。

可扩展性

  • 可以像神经网络运算符和优化器那样添加新的模块。

  • 该软件库允许开发者添加特定的实现(如在 FPGA 上的实现等)。例如我们提供 CUDA 后端作为扩展,这将可以利用 GPU 加速计算来加速算法。

高效性

  • 在单块 CUDA GPU 上速度极快

  • 内存优化引擎

  • 支持多 GPU(即将可用)

文档

  • https://nnabla.readthedocs.org

安装

  • https://nnabla.readthedocs.io/en/latest/python/installation.html

入门指南

  • 在 tutorial 页面中可以找到很多 Jupyter notebook 教程。我们建议由 by_examples.ipynb 开始在 NNabla 学习第一个案例,python_api.ipynb 文档介绍了 NNabla API。

  • 我们同样在 examples 中提供了一些其他复杂的案例。

相关推荐

用Deepseek扩写土木工程毕业论文实操指南

用Deepseek扩写毕业论文实操指南一、前期准备整理现有论文初稿/提纲列清楚论文核心框架(背景、现状、意义、方法、数据、结论等)梳理好关键文献,明确核心技术路线二、Deepseek扩写核心思路...

985学霸亲授,DeepSeek也能绘6大科研图表,5分钟就出图

在实验数据处理中,高效可视化是每个科研人的必修课。传统绘图软件操作复杂、耗时费力,而智能工具DeepSeek的出现彻底改变了这一现状。本文将详解如何用DeepSeek一键生成六大科研常用图表,从思维导...

AI写论文刷屏?大学生正在丢掉的思考力

一、宿舍深夜:当论文变成"Ctrl+C+V"凌晨两点的大学宿舍,小王对着电脑屏幕叹气。本该三天前开始写的近代史论文,此刻还一片空白。他熟练打开某AI写作网站,输入"论五四运动的...

Grok在辅助论文写作上能不能既“聪明”又“可怕”?!

AcademicIdeas-学境思源AI初稿写作随着人工智能技术的飞速发展,论文写作这一学术任务正迎来新的助力。2025年2月18日,美国xAI公司推出了备受瞩目的Grok3模型,其创始人埃隆·...

大四论文沟通场景!音频转文字难题听脑AI来化解

大四学生都知道,写论文时和导师沟通修改意见,简直是“过关斩将”。电话、语音沟通完,想把导师说的修改方向、重点要求记下来,麻烦事儿可不少。手写记不全,用普通录音转文字工具,转完还得自己慢慢找重点,稍不注...

论文写作 | 技术路线图怎么画?(提供经典优秀模板参考)

技术路线图是一种图表或文字说明,用于描述研究目标、方法和实施计划。它展示了研究的整体框架和步骤,有助于读者理解研究的逻辑和进展。在课题及论文中,技术路线图是常见的一部分,甚至是一个类似心脏一样的中枢器...

25年信息系统项目管理师考试第2批论文题目写作建议思路框架

25年信息系统项目管理师考试第2批论文题目写作建议思路框架--马军老师

微信购物应尽快纳入法律框架(微信购物管辖)

符向军近日,甘肃省工商行政管理局发布《2016年上半年信息分析报告》。报告显示,微信网购纠纷迅猛增长,网络购物投诉呈上升趋势。投诉的主要问题有出售的商品质量不过关、消费者通过微信付款后对方不发货、购买...

泛珠三角区域网络媒体与腾讯微信签署《战略合作框架协议》

新海南客户端、南海网7月14日消息(记者任桐)7月14日上午,参加第四届泛珠三角区域合作网络媒体论坛的区域网络媒体负责人及嘉宾一行到腾讯微信总部座谈交流,并签署《战略合作框架协议》(以下简称《框架协...

离线使用、植入微信-看乐心Mambo手环如何打破框架

从2014年开始智能手环就成功进入人们的生活,至今已经演变出数据监测、信息推送、心率监测等诸多五花八门的功能,人们选择智能手环并不指望其能够改变身体健康情况,更多的是通过数据来正视自身运动情况和身体健...

微信私域电商运营策略与框架(微信私域怎么做)

...

华专网络:如何零基础制作一个网站出来?

#如何零基础制作一个网站出来?#你是不是觉得网站建设很复杂,觉得自己是小白,需求不明确、流程搞不懂、怕被外包公司坑……这些问题我都懂!今天华专网络就用大白话给你捋清楚建站的全流程,让你轻松get网站制...

WAIC2024丨明日上午9点,不见不散!共同探讨智能社会与全球治理框架

大咖云集,硕果闪耀WAIC2024世界人工智能大会智能社会论坛将于7月5日9:00-12:00与你相约直播间WAIC2024上海杨浦同济大学哔哩哔哩多平台同步直播探讨智能社会与全球治理框架WAIC...

约基奇:森林狼换来戈贝尔时大家都在嘲笑 他们的阵容框架很不错

直播吧5月4日讯西部季后赛半决赛,掘金将迎战森林狼,约基奇赛前接受采访。约基奇说道:“当蒂姆-康纳利(森林狼总经理、前掘金总经理&曾选中约基奇)做了那笔交易(换来戈贝尔)时,每个人都在嘲笑他...

视频号带货为什么一个流量都没有?顶级分析框架送给你

视频号带货为什么一个流量都没有?遇到问题,一定是步步来分析内容,视频号带货一个流量都没有,用另外一个意思来讲,就可以说是零播放。为什么视频号带货一个流量都没有?跟你说再多,都不如来个分析框架。1、是否...

取消回复欢迎 发表评论: