code: def _use_cudnn(self, x, W, b):
      if (
          cuda._cudnn_version < 6000
          or configuration.config.cudnn_deterministic
      ) and any(d != 1 for d in self.dilate):
          # cuDNN < 6.0 and deterministic algorithms
          # does not support dilated convolutions
          return False
      if cuda._cudnn_version < 7000 and 1 < self.groups:
          # cuDNN < 7.0 does not support grouped convolutions
          return False
      return (
          chainer.should_use_cudnn(">=auto")
          and not self.cover_all
          and self.ndim > 1
          and x.dtype == W.dtype
          and (b is None or x.dtype == b.dtype)
      )
  
imports: import numpy
  from six import moves
  import chainer
  from chainer import backend
  from chainer.backends import cuda
  from chainer import configuration
  from chainer import function_node
  from chainer.functions.connection import convolution_2d
  from chainer.functions.connection import convolution_nd
  from chainer import utils
  from chainer.utils import conv
  from chainer.utils import conv_nd
  from chainer.utils import type_check
  import chainerx
label_desc: Use image node_id 3 for calling the DeconvolutionND obj's underlying member method code with example usage: obj._use_cudnn(x, W, b) and returns: unknown, False, False