gpt4 book ai didi

cuda - 为什么 Theano 中的 dropout 函数会大大减慢卷积速度?

转载 作者:行者123 更新时间:2023-12-02 01:20:52 25 4
gpt4 key购买 nike

我正在学习Theano。我编写了一个简单的 dropout 函数,如下所示:

import theano.tensor as T
srng = T.shared_randomstreams.RandomStreams()

def drop(input, dropout=0.0):
if T.gt(dropout, 0.):
retain_prob = 1 - dropout.astype('floatX')
mask = srng.binomial(n=1, p=retain_prob, size=input.shape, dtype='floatX')
return input * mask / retain_prob
else:
return input

当我将此函数应用于前两个卷积层的输入时,每个图像花费的平均时间从 0.5ms 增加到大约 2.5ms!有谁知道速度如此急剧下降的原因是什么?

我使用的是安装了 cuDNN 的 GTX 980 卡。

最佳答案

RandomStream 仅适用于 CPU。因此,每次调用 drop 时,都必须将 mask 从 CPU 复制到 GPU,这就是速度急剧下降的原因。为了避免这种情况,我现在使用 random stream implementation which works on GPU

关于cuda - 为什么 Theano 中的 dropout 函数会大大减慢卷积速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29540592/

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