class_docstr: CPU correlation implementation using Matrix Multiplication.
  
  Parameters
  ----------
  border_mode
      The width of a border of implicit zeros to pad the
      input with. Must be a tuple with 3 elements giving the width of
      the padding on each side, or a single integer to pad the same
      on all sides, or a string shortcut setting the padding at runtime:
      ``'valid'`` for ``(0, 0, 0)`` (valid convolution, no padding), ``'full'``
      for ``(kernel_rows - 1, kernel_columns - 1, kernel_depth - 1)``
      (full convolution), ``'half'`` for ``(kernel_rows // 2,
      kernel_columns // 2, kernel_depth // 2)`` (same convolution for
      odd-sized kernels). Note that the three widths are each
      applied twice, once per side (left and right, top and bottom, front
      and back).
  subsample
      The subsample operation applied to each output image. Should be a tuple
      with 3 elements. Set to `(1, 1, 1)` to disable subsampling.
  filter_dilation
      The filter dilation operation applied to each input image.
      Should be a tuple with 3 elements.
      Set to `(1, 1, 1)` to disable filter dilation.
  num_groups
      Perform grouped convolutions (default: 1)
class_docstr_tok: ["CPU","correlation","implementation","using","Matrix","Multiplication",".","Parameters","--","--","--","--","--","border_mode","The","width","of","a","border","of","implicit","zeros","to","pad","the","input","with",".","Must","be","a","tuple","with","3","elements","giving","the","width","of","the","padding","on","each","side",",","or","a","single","integer","to","pad","the","same","on","all","sides",",","or","a","string","shortcut","setting","the","padding","at","runtime",":","``","'valid","'","``","for","``","(","0",",","0",",","0",")","``","(","valid","convolution",",","no","padding",")",",","``","'full","'","``","for","``","(","kernel_rows","-","1",",","kernel_columns","-","1",",","kernel_depth","-","1",")","``","(","full","convolution",")",",","``","'half","'","``","for","``","(","kernel_rows","\/\/","2",",","kernel_columns","\/\/","2",",","kernel_depth","\/\/","2",")","``","(","same","convolution","for","odd-sized","kernels",")",".","Note","that","the","three","widths","are","each","applied","twice",",","once","per","side","(","left","and","right",",","top","and","bottom",",","front","and","back",")",".","subsample","The","subsample","operation","applied","to","each","output","image",".","Should","be","a","tuple","with","3","elements",".","Set","to","`","(","1",",","1",",","1",")","`","to","disable","subsampling",".","filter_dilation","The","filter","dilation","operation","applied","to","each","input","image",".","Should","be","a","tuple","with","3","elements",".","Set","to","`","(","1",",","1",",","1",")","`","to","disable","filter","dilation",".","num_groups","Perform","grouped","convolutions","(","default",":","1",")"]
code: def make_node(self, img, kern):
      img = as_tensor_variable(img)
      kern = as_tensor_variable(kern)
      img, kern = self.as_common_dtype(img, kern)
      if img.type.ndim != 5:
          raise TypeError("img must be 5D tensor")
      if kern.type.ndim != 5:
          raise TypeError("kern must be 5D tensor")
  
      broadcastable = [
          img.type.broadcastable[0],
          kern.type.broadcastable[0],
          False,
          False,
          False,
      ]
      dtype = img.type.dtype
      return Apply(
          self, [img, kern], [TensorType(dtype, broadcastable)()]
      )
  
imports: from __future__ import absolute_import, print_function, division
  import os
  import logging
  from six import integer_types
  import theano
  from theano import Apply
  from theano import gof
  from theano.gof import ParamsType, EnumList
  from theano.scalar import int64
  from theano.tensor import as_tensor_variable, TensorType
  from theano.tensor.nnet.abstract_conv import get_conv_output_shape
  from theano.tensor import blas_headers
  from theano.tensor.blas import ldflags, blas_header_version
label_desc: Use image node_id 1 for calling the Corr3dMM obj's underlying member method code with example usage: obj.make_node(img, kern) and returns: Apply