Theano / Pylearn2。如何并行化培训?

阿纳托利·瓦西里耶夫(Anatoly Vasilyev)

我在YAML中描述了卷积神经网络模型。当我运行pylearn2时train.py,我看到只使用了四核之一。

有没有一种方法可以运行训练多线程?

是的,可能是一个Theano问题。我遵循了有关多核支持的http://deeplearning.net/software/theano/tutorial/multi_cores.html Theano教程,OMP_NUM_THREADS=2 python theano/misc/check_blas.py -q但不适用于我-我只看到一个线程在运行。还有一个问题:培训可以与之并行OMP_NUM_THREADS吗?因为OMP_NUM_THREADS无法执行此操作,所以我无法对其进行检查那我应该为我的BLAS烦吗?

我有带有LAPACK的BLAS,已numpy连接到它们,python 2.7.9,我的系统是Core i5 4300U上的Ubuntu 15.04。

谢谢,热烈的祝福!

丹尼尔·伦肖

您问题的最直接答案是:您无法以所需的方式并行进行培训。

BLAS,OpenMP和/或在GPU上运行仅允许对某些操作进行并行化。如果训练算法设计为并行化,则只能按照您希望的方式并行化训练本身。默认情况下,PyLearn2使用不可并行的普通随机梯度下降(SGD)训练算法。有一些SGD版本支持并行化(例如Google的DistBelief),但是现成的PyLearn2中不提供这些版本。这主要是因为PyLearn2建立在Theano之上,并且Theano非常适合共享内存操作。

如果您拥有GPU,那么几乎可以肯定的是,切换到GPU可以更快地接受培训。如果这不是一种选择,那么只要正确设置BLAS和OpenMP,您应该会看到一段时间使用多个内核。check_blas.py没有任何改善的事实OMP_NUM_THREADS > 2表明您没有正确设置它们。我建议您打开一个新问题,如果您需要帮助,请提供更多有关已完成操作的信息,以及在打印其配置时numpy显示的设置(例如,请参见此处)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何设置theano配置

来自分类Dev

如何使用多处理并行化Theano函数?

来自分类Dev

使用Theano的并行迭代计算

来自分类Dev

如何与Theano形成复合函数?

来自分类Dev

Theano中的张量如何翻转?

来自分类Dev

Theano dot产品如何播出

来自分类Dev

Theano中的张量如何翻转?

来自分类Dev

theano的扫描功能是如何工作的?

来自分类Dev

在theano中逐行标准化矩阵

来自分类Dev

澄清Theano中的扁平化功能

来自分类Dev

OpenCL Theano-如何强制禁用CUDA?

来自分类Dev

如何调试theano张量的形状不匹配?

来自分类Dev

如何在GPU上运行theano

来自分类Dev

如何计算符号theano向量转置?

来自分类Dev

如何解决theano分割错误?

来自分类Dev

如何从 Theano 张量中提取 numpy 数组?

来自分类Dev

如何指定 theano.tensor.ivector 的值?

来自分类Dev

如何防止被Theano除以零或替换Theano中的无穷大值?

来自分类Dev

为什么theano conv2d添加空尺寸?

来自分类Dev

theano.tensor.nnet.conv.conv2d的输出大小

来自分类Dev

如何在Ubuntu 16.04上将Theano与GPU结合使用?

来自分类Dev

如何通过Theano使Keras能够利用多个GPU

来自分类Dev

如何在Theano中进行按元素的条件索引比较?

来自分类Dev

如何在Theano的TensorVariable上执行范围调整?

来自分类Dev

如何在Theano中获取共享变量的名称?

来自分类Dev

如何在theano中组合两个张量

来自分类Dev

Theano在计算梯度方面的效率/智能程度如何?

来自分类Dev

如何创建给定dtype和形状的任意theano张量?

来自分类Dev

我如何在theano中进行一维卷积