def METHOD_NAME(self):
    import tensor_comprehensions as tc
    lang = """
    def convolution(float(N,CI,H,W) I, float(CO,CI,KH,KW) W1) -> (O) {
        O(n, co, h, w) +=! I(n, ci, h + kh, w + kw) * W1(co, ci, kh, kw)
    }
    """
    convolution = tc.define(lang, name="convolution")
    inp, kern = self.get_dataset()
    if (self.params.backend_opts['tc_autotune']):
        convolution.autotune(inp,
                             kern,
                             cache=self.get_tc_cache(),
                             options=tc.Options("conv"),
                             generations=self.params.backend_opts["tc_at_generations"],
                             pop_size=self.params.backend_opts["tc_at_population"],
                             elites=1,
                             threads=8)
    return convolution