class_docstr: GPU version of SparseBlockOuter. See SparseBlockOuter's docstring for more
  information.
  
  This op should not be called directly since its interface is
  subject to change without notice.  It is involved in the gradient
  of GpuSparseBlockGemv. The gradient is not implemented.
class_docstr_tok: ["GPU","version","of","SparseBlockOuter",".","See","SparseBlockOuter","'s","docstring","for","more","information",".","This","op","should","not","be","called","directly","since","its","interface","is","subject","to","change","without","notice",".","It","is","involved","in","the","gradient","of","GpuSparseBlockGemv",".","The","gradient","is","not","implemented","."]
code: def __init__(self, inplace=False):
      COp.__init__(
          self, ["c_code/blockger.c"], "APPLY_SPECIFIC(blockger)"
      )
      self.inplace = inplace
      if self.inplace:
          self.destroy_map = {0: [0]}
  
imports: from __future__ import absolute_import, print_function, division
  import logging
  import numpy
  from theano import Apply, tensor
  from theano.gof import COp, ParamsType
  from theano.tensor import discrete_dtypes, as_tensor_variable
  from theano.scalar import bool
  from theano.gradient import grad_undefined
  from .type import gpu_context_type
  from .basic_ops import as_gpuarray_variable, infer_context_name, gpuarray_helper_inc_dir
label_desc: Use image node_id 1 to create a new GpuSparseBlockOuter object from inherited base classes: COp with example: obj = GpuSparseBlockOuter(inplace)