code: def fake_shared(
      value, name=None, strict=False, allow_downcast=None, **kwargs
  ):
      from theano.tensor.sharedvar import (
          tensor_constructor,
          scalar_constructor,
      )
  
      for c in (
          gpuarray_shared_constructor,
          tensor_constructor,
          scalar_constructor,
      ):
          try:
              return c(
                  value,
                  name=name,
                  strict=strict,
                  allow_downcast=allow_downcast,
                  **kwargs,
              )
          except TypeError:
              continue
  
imports: from __future__ import absolute_import, print_function, division
  import unittest
  from theano.compat import izip
  from six import iteritems
  import numpy
  import theano
  import theano.tensor
  from theano.tensor import TensorType
  from theano.tensor.basic import alloc
  from theano.tensor.tests import test_basic
  from theano.tensor.tests.test_basic import rand, safe_make_node
  from theano.tests import unittest_tools
  from ..type import GpuArrayType, get_context, gpuarray_shared_constructor
  from ..basic_ops import host_from_gpu, HostFromGpu, GpuFromHost, GpuReshape, GpuToGpu, GpuAlloc, GpuAllocEmpty, GpuContiguous, gpu_join, GpuJoin, GpuSplit, GpuEye, GpuTri, gpu_contiguous
  from ..elemwise import GpuDimShuffle, GpuElemwise
  from ..subtensor import GpuSubtensor
  from .config import mode_with_gpu, mode_without_gpu, test_ctx_name
  from pygpu import gpuarray
label_desc: Use image node_id 2 for calling a global function with example usage: fake_shared(value, name, strict, allow_downcast) and returns: c