pycuda vs theano vs pylearn2

时间:2014-09-17 19:51:48

标签: pycuda theano deep-learning

我目前正在学习GPU编程,以提高机器学习算法的性能。最初我尝试用纯c学习编程cuda,然后我发现pycuda对我来说是cuda库的包装,然后我找到了theano和pylearn2并且有点困惑:

我以这种方式理解他们:

  1. pycuda:cuda库的python包装器
  2. theano:类似于numpy但对GPU和CPU透明
  3. pylearn2:基于theano的深度学习包,实现了多种机器学习/深度学习模型
  4. 由于我是GPU编程的新手,我应该从C / C ++实现开始学习还是从pycuda开始就足够了,甚至从theano开始?例如。我想在学习GPU编程后实现randomForest模型。谢谢。

1 个答案:

答案 0 :(得分:8)

你的理解几乎是正确的。我只想补充一些关于Theano的评论。它不仅仅是可以在GPU上运行的Numpy。 Theano确实是数学表达式编译器,它在高度优化的C / CUDA代码中转换符号数学表达式,针对CPU和GPU。它生成的代码通常比大多数程序员编写的代码更有效。 Theano也可以进行符号区分(对基于梯度的优化非常有用),并且还具有实现更好的数值稳定性的特征(这可能是有用的,尽管我不知道真正的程度)。 Theano很可能足以实现您的需求。如果您仍然决定学习CUDA或PyCUDA,请选择不使用的语言,C ++或Python。