code: def test_pickling(self, backend_config):
      (x_data,) = self.generate_inputs()
  
      link = self.create_link(self.generate_params())
      link.to_device(backend_config.device)
  
      x = chainer.Variable(x_data)
      x.to_device(backend_config.device)
  
      y = link(x)
      y_data1 = y.data
      del x, y
      pickled = pickle.dumps(link, -1)
      del link
      link = pickle.loads(pickled)
      x = chainer.Variable(x_data)
      x.to_device(backend_config.device)
      y = link(x)
      y_data2 = y.data
  
      testing.assert_allclose(y_data1, y_data2, atol=0, rtol=0)
  
imports: import unittest
  import numpy
  import six.moves.cPickle
  import chainer
  from chainer.backends import cuda
  from chainer import functions
  from chainer import initializers
  from chainer.links.connection import convolution_nd
  from chainer import testing
  from chainer.testing import attr
  from chainer.utils import conv_nd
label_desc: Use image node_id 7 for calling the TestConvolutionND obj's underlying member method code with example usage: obj.test_pickling(backend_config) without return types