为什么我的CUDA内存用完了

时间:2019-03-08 04:50:31

标签: gpu pytorch

我有一个训练有素的NN,可以使用pyTorch预测方程的输出。这是一个非常基本的全连接神经网络。我使用它已经好几个星期了,但是由于某种原因,今天我开始遇到CUDA error: out of memory错误。我将批处理大小减小为1(最初在1024的批处理大小下工作得很好),但仍然出现此错误。我在共享的Linux机器上运行此程序(但是大多数时候我是唯一的用户)。我登录和注销了几次,但仍然出现该错误。我尝试了nvidia-smi,但发现GPU的使用率为99-100%,但是后来,该值下降到0%,但仍然出现错误。我对AI真的很陌生,对GPU也不了解。有谁知道这可能是什么问题吗?谢谢! 更新:这是代码的一部分:

for filename in os.listdir(pathdir):
    print(filename)

    for i in range(1):

        n_variables = np.loadtxt(pathdir+"/%s" %filename, dtype='str').shape[1]-1
        variables = np.loadtxt(pathdir+"/%s" %filename, usecols=(0,))

        if n_variables==0:
            print("Solved! ", variables[0])
            continue
        elif n_variables==1:
            variables = np.reshape(variables,(len(variables),1))
        else:
            for j in range(1,n_variables):
                v = np.loadtxt(pathdir+"/%s" %filename, usecols=(j,))
                variables = np.column_stack((variables,v))

        f_dependent = np.loadtxt(pathdir+"/%s" %filename, usecols=(n_variables,))
        f_dependent = np.reshape(f_dependent,(len(f_dependent),1))

        factors = torch.from_numpy(variables[0:100000])
        print(len(factors))
        factors = factors.cuda()

错误似乎出现在最后一行factors = factors.cuda()中。因素是大小为4 x 100000的割炬张量。我将其设置为大小4 x 1,但仍然用尽了CUDA内存。

0 个答案:

没有答案