Beispiel #1
0
def local_structured_add_s_v(node):
    if node.op == sparse.structured_add_s_v:
        x, y = node.inputs

        x_is_sparse_variable = _is_sparse_variable(x)
        #y_is_sparse_variable = _is_sparse_variable(y)

        if x_is_sparse_variable:
            svar = x
            dvar = y
        else:
            svar = y
            dvar = x

        if dvar.type.ndim != 1:
            return False
        elif svar.type.format == 'csr':
            CSx = sparse.CSR
            structured_add_s_v_csx = sparse.structured_add_s_v_csr
        else:
            return False

        s_val, s_ind, s_ptr, s_shape = sparse.csm_properties(svar)

        c_data = structured_add_s_v_csx(s_val, s_ind, s_ptr, dvar)

        return [CSx(c_data, s_ind, s_ptr, s_shape)]

    return False
Beispiel #2
0
def local_structured_add_s_v(node):
    if node.op == structured_add_s_v:
        x, y = node.inputs

        x_is_sparse_variable = _is_sparse_variable(x)
        #y_is_sparse_variable = _is_sparse_variable(y)

        if x_is_sparse_variable:
            svar = x
            dvar = y
        else:
            svar = y
            dvar = x

        if dvar.type.ndim != 1:
            return False
        elif svar.type.format == 'csr':
            CSx = CSR
            structured_add_s_v_csx = structured_add_s_v_csr
        else:
            return False

        s_val, s_ind, s_ptr, s_shape = csm_properties(svar)

        c_data = structured_add_s_v_csx(s_val, s_ind, s_ptr, dvar)

        return [CSx(c_data, s_ind, s_ptr, s_shape)]

    return False
Beispiel #3
0
        def wrapper(*args):
            x = as_sparse_variable(args[0])
            
            xs = [scalar.as_scalar(arg) for arg in args[1:]]

            data, ind, ptr, shape = csm_properties(x)

            data = tensor_op(data, *xs)

            return CSM(x.format)(data, ind, ptr, shape)
Beispiel #4
0
        def wrapper(*args):
            x = as_sparse_variable(args[0])

            xs = [scalar.as_scalar(arg) for arg in args[1:]]

            data, ind, ptr, shape = csm_properties(x)

            data = tensor_op(data, *xs)

            return CSM(x.format)(data, ind, ptr, shape)
Beispiel #5
0
def local_sampling_dot_csr(node):
    if node.op == sparse.sampling_dot:
        x, y, p = node.inputs
        if p.type.format == 'csr':
            p_data, p_ind, p_ptr, p_shape = sparse.csm_properties(p)

            z_data, z_ind, z_ptr = sparse.sampling_dot_csr(x, y, p_data,
                p_ind, p_ptr, p_shape[1])

            return [sparse.CSR(z_data, z_ind, z_ptr, p_shape)]
    return False
Beispiel #6
0
def structured_exp(x):
    """
    Element-wise exponential function to the non-zero elements.
    """
    x = as_sparse_variable(x)

    x_data, x_ind, x_ptr, x_shape = csm_properties(x)

    x_data = tensor.exp(x_data)

    return CSR(x_data, x_ind, x_ptr, x_shape)
Beispiel #7
0
def structured_sigmoid(x):
    """
    Element-wise sigmoid function only to the non-zero elements.
    """
    x = as_sparse_variable(x)

    x_data, x_ind, x_ptr, x_shape = csm_properties(x)

    x_data = tensor.nnet.sigmoid(x_data)

    return CSR(x_data, x_ind, x_ptr, x_shape)
Beispiel #8
0
def local_sampling_dot_csr(node):
    if node.op == sampling_dot:
        x, y, p = node.inputs
        if p.type.format == 'csr':
            p_data, p_ind, p_ptr, p_shape = csm_properties(p)

            z_data, z_ind, z_ptr = sampling_dot_csr(x, y, p_data, p_ind, p_ptr,
                                                    p_shape[1])

            return [CSR(z_data, z_ind, z_ptr, p_shape)]
    return False
Beispiel #9
0
def structured_minimum(x, y):
    """
    Element-wise minimum function only to non-zero elements.
    """
    x = as_sparse_variable(x)

    y = tensor.as_tensor_variable(y)

    x_data, x_ind, x_ptr, x_shape = csm_properties(x)

    x_data = tensor.minimum(x_data, y)

    return CSR(x_data, x_ind, x_ptr, x_shape)