import tensorflow as tf

        self._dim = None
        self._p = p

    def _compute(self, x, y):
        self._dim = x._rank()
        kernel = np.zeros((tf.size(x), tf.size(y)))

        for l in tf.range(start=0, limit=tf.size(x), delta=1, dtype=None, name='l_range'):
            for m in tf.range(start=0, limit=tf.size(y), delta=1, dtype=None, name='m_range'):

                vx = tf.contrib.lookup.MutableHashTable(key_dtype=tf.string,
                                                        value_dtype=tf.int64,
                                                        default_value=-1)

                vz = tf.contrib.lookup.MutableHashTable(key_dtype=tf.string,
                                                        value_dtype=tf.int64,
                                                        default_value=-1)

                vx_keys = tf.reshape(tf.Variable([], collections=[], dtype=tf.string), (-1, 1))
                vz_keys = tf.reshape(tf.Variable([], collections=[], dtype=tf.string), (-1, 1))
