

def grad(self, inputs, gout):
    (x, y) = inputs
    (gz,) = gout
    assert (_is_sparse_variable(x) and _is_dense_variable(y))
    assert _is_sparse_variable(gz)
    if ((gz.dtype == 'float64') and (y.dtype == 'float32')):
        y = y.astype('float64')
    if ((gz.dtype == 'float32') and (y.dtype == 'float64')):
        gz = gz.astype('float64')
    return (mul_s_v(gz, y), sp_sum((x * gz), axis=0, sparse_grad=True))

dataset/ETHPy150Open rizar/attention-lvcsr/libs/Theano/theano/sparse/basic.py MulSV.grad/original