【问题标题】:cuDNN error: CUDNN_STATUS_BAD_PARAM.Can someone explain why i am getting this error and how can i correct it?cuDNN 错误:CUDNN_STATUS_BAD_PARAM。有人可以解释为什么我会收到此错误以及如何纠正它?
【发布时间】:2019-03-07 11:40:00
【问题描述】:

我正在尝试使用 Pytorch 实现 Character LSTM。但我遇到了 cudnn_status_bad_params 错误。这是训练循环。我在行输出 = 模型(input_seq)上遇到错误。

for epoch in tqdm(range(epochs)):
  for i in range(len(seq)//batch_size):
   sidx = i*batch_size
   eidx = sidx + batch_size
   x = seq[sidx:eidx]
   x = torch.tensor(x).cuda()
   input_seq =torch.nn.utils.rnn.pack_padded_sequence(x,seq_lengths,batch_first = True)
   y = out_seq[sidx:eidx]
   output = model(input_seq)
   loss = criterion(output,y)
   loss.backward()
   optimizer.step()
/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    487             result = self._slow_forward(*input, **kwargs)
    488         else:
--> 489             result = self.forward(*input, **kwargs)
    490         for hook in self._forward_hooks.values():
    491             hook_result = hook(self, input, result)   
/usr/local/lib/python3.6/dist-packages/torch/nn/modules/rnn.py in forward(self, input, hx)
    180         else:
    181             result = _impl(input, batch_sizes, hx, self._flat_weights, self.bias,
--> 182                            self.num_layers, self.dropout, self.training, self.bidirectional)
    183         output = result[0]
    184         hidden = result[1:] if self.mode == 'LSTM' else result[1]

 RuntimeError: cuDNN error: CUDNN_STATUS_BAD_PARAM

【问题讨论】:

    标签: pytorch cudnn


    【解决方案1】:

    我得到了同样的错误,如果你切换到 CPU,你会得到一个更好的错误描述。就我而言,问题在于我提供给网络的输入类型。我猜是long,而模型需要float。我进行了以下更改并且代码有效。基本上切换到 cpu 可以提供更好的错误描述。

    input_seq = input_seq.float().cuda()
    

    【讨论】:

    • "如果你切换到CPU,你会得到一个更好的错误描述"绝对黄金
    【解决方案2】:

    我遇到了同样的问题,问题出在 torch==1.6 上。可以在这里找到解决方案git issue。看一看。它也可能是您的解决方案。

    【讨论】:

      【解决方案3】:

      我遇到了同样的错误。 Here's the solution

      您应该将输入类型从float64 更改为float32,这意味着您应该输入:

      input_seq = input_seq.float()
      

      【讨论】:

      • 这是您一年前已经发布的答案的精确副本。
      • 对不起,如果您认为它不是来源,请指出我复制的来源!此外,我已经提到了我从哪里获得解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-10
      • 2020-05-16
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      相关资源
      最近更新 更多