class_docstr: Base class for `Corr3dMM`, `Corr3dMM_gradWeights` and
  `Corr3dMM_gradInputs`. Cannot be used directly.
  
  Every sub-class must define internal attribute ``_direction`` out of __init__().
  ``_direction`` must take one of following values:
  
   - "forward" to correlate bottom with weights and store results in top.
   - "backprop weights" to do a valid convolution of bottom with top
     (swapping the first two dimensions) and store results in weights.
   - "backprop inputs" to do a full convolution of top with weights
     (swapping the first two dimensions) and store results in bottom.
  
  Parameters
  ----------
  border_mode : {'valid', 'full', 'half'}
      Additionally, the padding size could be directly specified by an integer
      or a tuple of three of integers
  subsample
      Perform subsampling of the output (default: (1, 1, 1)).
  filter_dilation
      Perform dilated correlation (default: (1, 1, 1))
  num_groups
      Perform grouped convolutions (default: 1)
class_docstr_tok: ["Base","class","for","`","Corr3dMM","`",",","`","Corr3dMM_gradWeights","`","and","`","Corr3dMM_gradInputs","`",".","Can","not","be","used","directly",".","Every","sub-class","must","define","internal","attribute","``","_direction","``","out","of","__init__","(",")",".","``","_direction","``","must","take","one","of","following","values",":","-","``","forward","''","to","correlate","bottom","with","weights","and","store","results","in","top",".","-","``","backprop","weights","''","to","do","a","valid","convolution","of","bottom","with","top","(","swapping","the","first","two","dimensions",")","and","store","results","in","weights",".","-","``","backprop","inputs","''","to","do","a","full","convolution","of","top","with","weights","(","swapping","the","first","two","dimensions",")","and","store","results","in","bottom",".","Parameters","--","--","--","--","--","border_mode",":","{","'valid","'",",","'full","'",",","'half","'","}","Additionally",",","the","padding","size","could","be","directly","specified","by","an","integer","or","a","tuple","of","three","of","integers","subsample","Perform","subsampling","of","the","output","(","default",":","(","1",",","1",",","1",")",")",".","filter_dilation","Perform","dilated","correlation","(","default",":","(","1",",","1",",","1",")",")","num_groups","Perform","grouped","convolutions","(","default",":","1",")"]
code: def c_compile_args(self):
      compile_args = ldflags(libs=False, flags=True)
      compile_args += super(BaseCorr3dMM, self).c_compile_args()
      return compile_args
  
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 8 for calling the BaseCorr3dMM obj's underlying member method code with example usage: obj.c_compile_args() and returns: compile_args