这只是一个提示。
在以下情况下使用GPU功能强大
您的神经网络很大。
您的Batch_Size大。
-这是我在谷歌搜索中发现的。
0
这只是一个提示。
在以下情况下使用GPU功能强大
您的神经网络很大。
您的Batch_Size大。
-这是我在谷歌搜索中发现的。
0
我在这里有类似的问题:
CPU:Intel(R)Xeon(R)CPU E5-2697 v3 @ 2.60GHz
Ubuntu 14.04
imdb_bidirectional_lstm.py
秒
GPU:GTX 860m
Nvidia驱动程序:369.30
CUDA工具包:v8.0
cuDNN:v6.0
imdb_bidirectional_lstm.py
:450S
当我观察GPU负载曲线时,发现了一件有趣的事情:
这主要是由于LSTM层中的顺序计算。请记住,LSTM需要顺序输入来迭代计算隐藏层权重,换句话说,您必须等待时间t-1
隐藏状态才能计算时间t
隐藏状态。
对于GPU内核来说,这不是一个好主意,因为它们是许多小的内核,它们喜欢并行进行计算,因此顺序计算无法充分利用其计算能力。这就是为什么我们通常会看到GPU负载在10%-20%左右的原因。
但是在反向传播阶段,GPU可以并行运行导数计算,因此我们可以看到GPU的负载峰值约为80%。
0
0
批量太小。尝试增加。
我的GTX1050Ti的结果:
imdb_bidirectional_lstm.py batch_size time 32 (default) 252 64 131 96 87 128 66 imdb_lstm.py batch_size time 32 (default) 108 64 50 96 34 128 25
0
我的机器具有以下规格:
CPU:至强E5-1620 v4
GPU:Titan X(帕斯卡)
Ubuntu 16.04
Nvidia驱动程序375.26
CUDA接受了8.0
cuDNN 5.1
我已经以Tensorflow作为支持的参考对以下Keras示例进行了基准测试 :
我的GPU显然在非lstm模型中执行我的cpu。
其他人有没有经历过?