星号代表对软件库的推荐度,考虑了适用范围、开发语言、更新情况、文档示例完整性等方面,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 andmcRBM 是Python代码,调用CUDAMat用于为自然图像训练模型(fromMarc’Aurelio Ranzato).
mPoT 是Python代码,调用CUDAMat和gnumpy用于为自然图像训练模型 (fromMarc’Aurelio Ranzato).
★★★★★ 五星
DeepLearnToolbox – A Matlab toolbox for Deep Learning (from Rasmus Berg Palm)
Matlab code for training conditional RBMs/DBNs andfactored conditional RBMs (fromGraham 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 MachinesMatlab代码用于训练与微调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 (githublink) 是一个C++库,包括python绑定,易于操作Nvidia CUDA矩阵函数。包括一个RBM实现,退火重要性采样代码( annealed importance sampling),以及精确计算剖分函数(the partition function)的代码 (fromAIS 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,尤其是后者,值得一试。