STE*_*STE 22 hadoop gpu neural-network
我需要训练一个有2-4个隐藏层的神经网络,不确定实际网络的结构.我正在考虑使用Hadoop map reduce(12个集群)或gpu来训练它以获得更快的结果.你觉得哪个更好?还有任何可用的库已经实现了吗?谢谢
zer*_*ord 32
我一直幸运地在一个实验室工作,该实验室涉及这两种训练网络的方法,虽然两者在计算量很大的设置中都很有用,但计算瓶颈的位置通常决定了使用哪种方法.
使用分布式系统(例如HADOOP)培训网络
当您的网络足够大以至于培训中涉及的矩阵乘法在传统PC上变得难以处理时,这非常有用.当你有严格的时间限制(例如在线培训)时,这个问题尤为普遍,否则HADOOP实施的麻烦是不值得的(只需在一夜之间运行网络).如果您正在考虑HADOOP,因为您想要摆弄网络参数而不必等待一天再摆弄一些(在我的实验室中经常出现这种情况),那么只需在不同的机器上运行具有不同参数的多个网络实例.这样,您可以在不处理实际分布式计算的情况下使用您的集群.
例:
您正在训练网络以查找图像中的人数.您决定让程序从Google中提取随机图像,而不是预定义的一组训练示例(图像对人数).在网络处理图像时,您必须查看图像并提供有关图像中实际人数的反馈.由于这是图像处理,因此您的网络规模可能达到数百万单位.而且,由于您实时提供反馈,因此网络计算的速度很重要.因此,您应该投资分布式实现.
在GPU上训练网络
如果主要的计算瓶颈不是网络规模,而是训练集的大小(尽管网络仍然非常大),这是正确的选择.由于GPU是理想的,涉及在大量的数据集的应用相同的矢量/矩阵运算的情况下,他们主要使用的时候可以使用批量培养具有非常大的批量大小.
例:
您正在训练网络来回答用自然语言提出的问题.你有一个庞大的问答配对数据库,不介意网络每10000个问题只更新一次权重.由于具有如此大的批量大小并且可能是相当大的网络,基于GPU的实现将是个好主意.
| 归档时间: |
|
| 查看次数: |
10651 次 |
| 最近记录: |