class_docstr: GPU version of MaxAndArgmax
class_docstr_tok: ["GPU","version","of","MaxAndArgmax"]
code: def make_node(self, X):
      context_name = infer_context_name(X)
      # We keep the original broadcastable flags for dimensions on which
      # we do not perform the max / argmax.
      all_axes = set(self.axis)
      broadcastable = [
          b
          for i, b in enumerate(X.type.broadcastable)
          if i not in all_axes
      ]
      inputs = [as_gpuarray_variable(X, context_name)]
      outputs = [
          GpuArrayType(
              X.type.dtype, broadcastable, context_name=context_name
          )(),
          GpuArrayType(
              self.argmax_dtype,
              broadcastable,
              context_name=context_name,
          )(),
      ]
      return Apply(self, inputs, outputs)
  
file_path: Theano/theano/gpuarray/reduction.py
imports: from __future__ import print_function, absolute_import, division
  from theano.gof import Op, Apply
  from theano.gof.type import Generic
  from .basic_ops import infer_context_name, as_gpuarray_variable, gpuarray_helper_inc_dir
  from .type import GpuArrayType
label_desc: Use image node_id 3 for calling the GpuMaxAndArgmax obj's underlying member method code with example usage: obj.make_node(X) and returns: Apply