code: def test_shape():
      x = GpuArrayType(
          dtype="float32", broadcastable=[False, False, False]
      )()
      v = gpuarray.zeros(
          (3, 4, 5), dtype="float32", context=get_context(test_ctx_name)
      )
      f = theano.function([x], x.shape)
      topo = f.maker.fgraph.toposort()
      assert np.all(f(v) == (3, 4, 5))
      if theano.config.mode != "FAST_COMPILE":
          assert len(topo) == 4
          assert isinstance(topo[0].op, T.opt.Shape_i)
          assert isinstance(topo[1].op, T.opt.Shape_i)
          assert isinstance(topo[2].op, T.opt.Shape_i)
          assert isinstance(topo[3].op, T.opt.MakeVector)
      mode = mode_with_gpu.excluding("local_shape_to_shape_i")
      f = theano.function([x], x.shape, mode=mode)
      topo = f.maker.fgraph.toposort()
      assert np.all(f(v) == (3, 4, 5))
      assert len(topo) == 1
      assert isinstance(topo[0].op, T.Shape)
  
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 10 for calling a global function with example usage: test_shape() without return types