写点什么

Facebook 开源深度学习项目 Torchnet

  • 2016-07-31
  • 本文字数:1089 字

    阅读完需:约 4 分钟

Facebook 发表了一篇学术论文博客,详细介绍基于 Lua Torchnet 项目。这是一个以深度学习为中心的新的开源项目,以之前开源的 Torch 库为基础构建。

在一次采访中,Facebook 人工智能研究实验室( FAIR )的 Laurens van der Maaten 指出,它可以用于类似图像识别、自然语言处理这样的工作,其方法和面向 Theano 框架的 Blocks Fuel Python 库类似。他还指出:

举例来说,它让完全隐藏 I/O[输入 / 输出] 开销变得非常简单,如果想要训练一个实际的大规模深度学习系统,那么这是许多人都需要的东西。

据报道,Torchnet 提供的抽象不限于 Torch,也可以用于 Caffe 和 TensorFlow,因为 Torchnet 对底层学习框架的限制很少。

据报道,基于 Torch-7 的 Torchnet 提供了可重用的抽象和样板逻辑(围绕异步数据加载、机器学习多 GPU 计算等诸如此类的工作)。Torch 7 使用 Lua 构建,用于在 CPU 上使用 OpenMP / SSE 以及通过 CUDA 体系结构在 GPU 上运行代数运算。据 FAIR 介绍,Torch 7 是深度机器学习的基本框架之一。FAIR 打算将 Torchnet 打造成一个社区驱动的、基于插件的平台。对于 Torchnet 项目的动机和愿景,FAIR 指出:

开源的 Torch 库已经有了一个非常活跃的开发者社区,创建出了用于优化、“流形学习(manifold learning)”、度量学习、神经网络等的程序包。Torchnet 以此为基础构建,而且被设计成了一个研究社区可以做贡献的平台,主要是通过实现机器学习实验或工具的插件……按照我们的设想,Torchnet 会成为一个社区所有的平台,在 Torchnet 核心实现完成之后,它会使用和 Torch 一样的方式提供一系列的子程序包。

根据 FAIR 的论文,Torchnet 主要运用了5 个抽象,以实现高效地重用和优化,否则,就要像许多项目所做的那样使用客户化代码。_Dataset_ 抽象提供了数据集中的样本数量和一个返回样本的_get()_ 函数。_DatasetIterator_ 抽象允许遍历数据集,并管理异步并行。_Engine_ 抽象实现了模型、_DatasetIterator_ 和损失函数之间的交互以及一个训练和测试函数。 Engine_ 还提供了钩子,让用户可以注入实验特有的代码,比如性能 _Meter。据报道,将钩子实现为闭包让 Torchnet 可以在用于训练和测试模型的代码之间共享逻辑。_Meter_ 抽象一般会实现两个函数 _add(output, target)_ 函数和 _value()_ 函数。Meter 提供了度量如下性能属性的能力:

一个训练阶段的执行时间,所有示例的损失函数平均值,二元分类器 ROC 曲线下的面积,多类分类器的分类错误,检索模型的准确率和召回率,或者排序算法的归一化衰减累积熵。

最后,Log 抽象提供了将实验日志输出为原始文本或 JSON 的能力。

查看英文原文 Facebook Open-Sources Deep Learning Project Torchnet

2016-07-31 19:003295
用户头像

发布了 1008 篇内容, 共 422.0 次阅读, 收获喜欢 346 次。

关注

评论

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

KubeFATE 部署多集群联邦学习平台 FATE

亨利笔记

学习 Kubernetes FATE KUBEFATE

Windows10 如何正确修改本地用户的名称及目录

Geek_3gb7ez

windows Windows 10 电脑故障 Windows技巧

在 Go 中使用并发编程 - 第二部分

TuringTuring

并发编程 协程 线程模型 Go 语言

一个前端的 Windows10 开发环境

Gadzan

大前端 windows Windows Terminal 环境安装 开发工具

【译】并不存在的普通用户(面向极端用户的设计)

Yukun

设计思维 可用性

使用 Python 和 SudachiPy 进行日语分词

Roc

Python 日语 分词

Kubernetes in action 笔记

FeiLong

Kubernetes 容器

Git数据传输模型及常用命令整理

wangkx

git git flow

微信推文无缝滚动是这样炼成的

Geek_3gb7ez

微信 大前端 微信公众号 微信推文 图文混排

OBS推流学习笔记

IT蜗壳-Tango

直播 OBS 推流 B站直播

ARTS week 1

时之虫

ARTS 打卡计划

阅读对写作的好处

董一凡

写作

JUC整理笔记三之测试工具jcstress

JFound

Java

redis数据结构介绍五-第五部分 对象

Nick

redis 源码 数据结构 源码分析 算法

使用 Markdown 制作五线谱

Roc

GitHub markdown 五线谱

数据与广告系列三:合约广告与与衍生的第三方广告数据监控

黄崇远@数据虫巢

数据挖掘 互联网 广告 移动互联网

ansible-playbook中when结合tags使用,实现变量控制执行

唯爱

RocketMQ - 如何实现顺序消息

Java收录阁

RocketMQ

教师节H5案例制作思路分享

Geek_3gb7ez

大前端 H5游戏

2020全球首创币期权DAPP智能合约强势来袭,闪耀数字经济

极客编

企业也有中年危机?探讨数字化与永续经营

FinClip

数字化转型 小程序生态

平台化服务的基石:用户认证模型设计

孤岛旭日

企业架构 模型 用户权限

redis数据结构介绍四-第四部分 压缩表

Nick

redis 源码 数据结构 源码分析 算法

财富的大门给我开了一条缝

YoungZY

读书笔记 读书

[JVM] String#intern 面试必会

猴哥一一 cium

Java JVM string pool string Java 25 周年

Java 异步编程:从 Future 到 Loom

理帆

Java 并发编程 kotlin Netty

redis数据结构介绍六 快表

Nick

redis 源码 数据结构 源码分析 算法

使用 Python 分析 Google Calender 日程

Roc

Python 总结 日历

写给产品经理的信(4):你一定要做产品经理么?

punkboy

生涯规划 产品 程序人生 产品经理 职业规划

学慢点儿,想深点儿

熊斌

学习

ARTS-weekly-31

落英坠露

ARTS 打卡计划

Facebook开源深度学习项目Torchnet_开源_Dylan Raithel_InfoQ精选文章