code: def forward_gpu(self, x):
      self.retain_outputs((0,))
      shape = x[0].shape
      invx, info = _inv_gpu(x[0].reshape(1, *shape))
      if chainer.is_debug():
          if cuda.cupy.any(info != 0):
              raise ValueError("Input has singular matrices.")
      invx = invx.reshape(shape)
      return (invx,)
  
imports: import numpy.linalg
  import chainer
  from chainer.backends import cuda
  from chainer import function_node
  import chainer.functions
  from chainer.functions.math import matmul
  from chainer import utils
  from chainer.utils import precision
  from chainer.utils import type_check
label_desc: Use image node_id 3 for calling the Inv obj's underlying member method code with example usage: obj.forward_gpu(x) and returns: invx