code: def test_gpu_opt():
      # Does have some overlap with test_multinomial_0
  
      # We test the case where we put the op on the gpu when the output
      # is moved to the gpu.
      p = tensor.fmatrix()
      u = tensor.fvector()
      m = theano.sandbox.multinomial.MultinomialFromUniform("auto")(
          p, u
      )
      assert m.dtype == "float32", m.dtype
  
      f = function(
          [p, u], m, allow_input_downcast=True, mode=mode_with_gpu
      )
      assert any(
          [
              type(node.op) is GPUAMultinomialFromUniform
              for node in f.maker.fgraph.toposort()
          ]
      )
      pval = (
          np.arange(10000 * 4, dtype="float32").reshape((10000, 4))
          + 0.1
      )
      pval = pval / pval.sum(axis=1)[:, None]
      uval = np.ones_like(pval[:, 0]) * 0.5
      f(pval, uval)
  
      # Test with a row, it was failing in the past.
      r = tensor.frow()
      m = theano.sandbox.multinomial.MultinomialFromUniform("auto")(
          r, u
      )
      assert m.dtype == "float32", m.dtype
  
      f = function(
          [r, u], m, allow_input_downcast=True, mode=mode_with_gpu
      )
      assert any(
          [
              type(node.op) is GPUAMultinomialFromUniform
              for node in f.maker.fgraph.toposort()
          ]
      )
      pval = np.arange(1 * 4, dtype="float32").reshape((1, 4)) + 0.1
      pval = pval / pval.sum(axis=1)[:, None]
      uval = np.ones_like(pval[:, 0]) * 0.5
      f(pval, uval)
  
imports: from __future__ import absolute_import, print_function, division
  import os
  import numpy
  import unittest
  import theano
  from theano import config, function, tensor
  from theano.compat import PY3
  from theano.misc.pkl_utils import CompatUnpickler
  from theano.sandbox import multinomial
  from theano.sandbox.rng_mrg import MRG_RandomStreams
  import theano.tests.unittest_tools
  from .config import mode_with_gpu
  from ..multinomial import GPUAMultinomialFromUniform, GPUAChoiceFromUniform
label_desc: Use image node_id 5 for calling a global function with example usage: test_gpu_opt() without return types