

def dot(x, y):
    'Multiplies 2 tensors.\n    When attempting to multiply a ND tensor\n    with a ND tensor, reproduces the Theano behavior\n    (e.g. (2, 3).(4, 3, 5) = (2, 4, 5))\n    '
    if ((ndim(x) is not None) and ((ndim(x) > 2) or (ndim(y_permute_dim) > 2))):
        x_shape = (((- 1),) + int_shape(x)[1:])
        y_shape = int_shape(y)
        y_permute_dim = list(range(ndim(y)))
        y_permute_dim = ([y_permute_dim.pop((- 2))] + y_permute_dim)
        xt = tf.reshape(x, [(- 1), x_shape[(- 1)]])
        yt = tf.reshape(tf.transpose(y, perm=y_permute_dim), [y_shape[(- 2)], (- 1)])
        return tf.reshape(tf.matmul(xt, yt), ((x_shape[:(- 1)] + y_shape[:(- 2)]) + y_shape[(- 1):]))
    out = tf.matmul(x, y)
    return out

dataset/ETHPy150Open fchollet/keras/keras/backend/tensorflow_backend.py dot/VarMisuse@39/122 `y`->`y_permute_dim`