星号代表对软件库的推荐度,考虑了适用范围、开发语言、更新情况、文档示例完整性等方面,Just personal opinion。
根据编程语言,对深度学习的软件资源分类:
PYTHON:
★★★★★ 五星 Theano – CPU/GPU 符号表示编译器in python (from LISA lab at University of Montreal)
相关资源:
Deep Learning Tutorials – 使用Theano实现深度学习的示例 (from LISA lab at University of Montreal)
Pylearn2 - Pylearn2是一个机器学习库,功能建立在 Theano 之上.
Gnumpy 是一个Python模块,提供与numpy相似的接口,使用GPU进行计算,运行于cudamat之上.
cudamat 是一个基于GPU的矩阵库,包括训练Neural Networks and Restricted Boltzmann Machines的示例代码。
3-way factored RBM and mcRBM 是Python代码,调用CUDAMat用于为自然图像训练模型(from Marc’Aurelio Ranzato ).
mPoT 是Python代码,调用CUDAMat和gnumpy用于为自然图像训练模型 (from Marc’Aurelio Ranzato ).
MATLAB:
★★★★★ 五星
DeepLearnToolbox – A Matlab toolbox for Deep Learning (from Rasmus Berg Palm)
Matlab code for training conditional RBMs/DBNs and factored conditional RBMs (from Graham Taylor ).
★★★★ 四星
Deep Belief Networks . Matlab代码用于学习深度信念网络(Deep Belief Networks) (from Ruslan Salakhutdinov).
Estimating Partition Functions of RBM’s . Matlab代码用于使用退火重要性采样(Annealed Importance Sampling)估计Restricted Boltzmann Machines的剖分函数(the partition function) (from Ruslan Salakhutdinov).
Learning Deep Boltzmann Machines Matlab代码用于训练与微调Deep Boltzmann Machines (from Ruslan Salakhutdinov).
★★★ 三星
matrbm . Ruslan Salakhutdinov’s代码的简化版本, by Andrej Karpathy (Matlab).
C++:
★★★ 三星
Cuda-Convnet –一个快速的卷积(或更一般地,前向式feed-forward)神经网络的C++/CUDA实现。可用于建模arbitrary layer connectivity and network depth. Any directed acyclic graph of layers will do. Training is done using the back-propagation algorithm.
★★★★★ 五星
Eblearn 是 C++机器学习库,BSD许可证,用于基于能量的学习(energy-based learning),卷积网络(convolutional networks), 视觉/识别应用(vision/recognition applications)等。EBLearn最初由 Pierre Sermanet at NYU维护。
★★★ 三星
The CUV Library (github link ) 是一个C++库,包括python绑定,易于操作Nvidia CUDA矩阵函数。包括一个RBM实现,退火重要性采样代码( annealed importance sampling),以及精确计算剖分函数(the partition function)的代码 (from AIS lab at University of Bonn).
LUSH:
★★ 两星
Eblearn.lsh 是基于 LUSH的机器学习库,用于实现基于能量的学习(Energy-Based Learning). 它包括 “Predictive Sparse Decomposition” 的代码以及其他非监督学习的sparse auto-encoder methods. Koray Kavukcuoglu 在其 主页 上提供多篇深度学习相关论文的Eblearn代码。
相关资源:
LUSH 编程语言及开发环境, 用于@ NYU 开发深度卷积网络。LUSH全称是Lisp Universal Shell,Wiki上有 介绍 。
LUA:
★★★★★ 五星
Torch – 提供与Matlab相似的环境,用于最新的机器学习算法。(from Ronan Collobert, Clement Farabet and Koray Kavukcuoglu)
推荐从Theano的Tutorials开始学习,若更关注算法效率,推荐Eblearn和Torch7,尤其是后者,值得一试。