gpt4 book ai didi

python - Theano/Pylearn2。如何并行化训练?

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:37 25 4
gpt4 key购买 nike

我有 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's DistBelief ),但这些在现成的 PyLearn2 中不可用。这主要是因为 PyLearn2 构建在 Theano 之上,而 Theano 非常适合共享内存操作。

如果您有 GPU,那么您几乎可以肯定通过切换到 GPU 获得更快的训练。如果那不是一个选项,只要您的 BLAS 和 OpenMP 设置正确,您应该会在某些时候看到多个核心被使用。 check_blas.pyOMP_NUM_THREADS > 2 时没有显示任何改进这一事实表明您没有正确设置它们。如果您需要这方面的帮助,我建议您提出一个新问题,提供有关您所做的工作的更多信息,以及打印其配置时 numpy 显示的设置(例如,请参见 here)。

关于python - Theano/Pylearn2。如何并行化训练?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30470517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com