trainAutoencoder在使用GPU时会变慢吗?

时间:2017-03-17 15:36:35

标签: matlab neural-network

我正在尝试使用matlab中的神经网络库深入学习。一个好的开始步骤似乎是训练自动编码器。在这方面,我很高兴看到我是否从我的gpu中获取了msot。

就此而言,当我跑

tic
  autoenc1 = trainAutoencoder(allSets,5,...
   'L2WeightRegularization',0.001,...
   'SparsityRegularization',1,...
   'SparsityProportion',0.2,...
   'DecoderTransferFunction','logsig',...
   'useGPU',true)
 toc

我得到"经过的时间是19.680823秒。"。 但是,不使用gpu(设置' useGPU'为false)它只需要8.272708秒。  我很困惑,因为我假设使用gpu进行神经网络会加快速度吗?有没有人知道检查matlab和cuda是否正确连接的任何方法,或者看看matlab实际上是如何使用这些资源的?

我安装了cuda 8.1,并且正在使用GeForce GTX 960M(计算能力5.0)。 matlab版本是2016b。

编辑:正如已经指出的那样,目前还没有cuda 8.1。我所拥有的是8.0和cudnn 5.1。

1 个答案:

答案 0 :(得分:1)

正如评论中所指出的,在GPU上执行计算不一定更快。相反,对性能的影响取决于数据转换和传输的额外开销。

通常,可以通过批量大小影响开销,但trainAutoencoder函数不提供该选项。

有关MATLAB中GPU性能的一般测量和改进,请参阅this link