Facebook宣布开源用于简化深度学习、加速开发的软件Torchnet。
- 用Lua编写
- 提供样板代码、关键抽象和参考实现,可以聚合分拆重用,以模块化编程减少bug概率
- 简化异步、并行数据loading,提升多GPU效率
- 可能不会一直局限于Torch,其抽象将有Caffe、TensorFlow实现
- 方法有点类似于Theano框架的Blocks和Fuel库
- 已经应用于Facebook图像识别和NLP
Facebook工程师Laurens van der Maaten表示,Torchnet的核心不是让Torch更快(而是简化深度学习工作),举例而言它可以减少IO开销,这对大型神经网络尤其重要。
The goal of open-sourcing Torchnet is to empower the developer community, allowing it to rapidly build effective and reusable learning systems.
与Caffe、Chainer、TensorFlow和Theano等深度学习框架的一个很大的不同,是不注重深层网络中高效率的推理和梯度计算,Torchnet提供一个深度学习框架之上的框架(如torch/nn),使得rapid experimentation更容易。
Torchnet provides a collection of subpackages and implements five main types of abstractions:
- Datasets — provide a size function that returns the number of samples in the data set, and a get(idx) function that returns the idx-th sample in the data set.
- Dataset Iterators — a simple for loop that runs from one to the data set size and calls the get() function with loop value as input.
- Engines — provides the boilerplate logic necessary for training and testing models.
- Meter — used for performance measurements, such as the time needed to perform a training epoch or the value of the loss function averaged over all examples.
- Logs — for logging experiments.
The most important subpackages provide implementations of boilerplate code that is relevant to machine-learning problems. These include computer vision, natural language processing, and speech processing.
相关资源:
- Github:https://github.com/torchnet/torchnet
- 官方博客:Lighting the way to deep machine learning
- ICML论文:https://lvdmaaten.github.io/publications/papers/Torchnet_2016.pdf