sparsegrad.impl.sparse package¶
Submodules¶
sparsegrad.impl.sparse.sparse module¶
This module contains implementation details sparse matrix operations
-
class
sparsegrad.impl.sparse.sparse.sdcsr(mshape, s=array(1), diag=array(1), M=None)¶ Bases:
objectScaled matrix, which is stored as

where s is scalar, diag is row scaling vector (scalar and vector allowed), and M is general part (None is allowed to indicate diagonal matrix).
mshape stores matrix shape. None for mshape[0] denotes differentation of scalar. None for mshape[1] denotes differentiation with repsect to scalar.
No copies of M, diag are made, therefore they must be constant objects.
-
broadcast(output)¶ Return broadcast matrix
for broadcasting x to output, this matrix being Jacobian of x
-
chain(output, x)¶ Apply chain rule for elementwise operation
Jacobian of elementwise operation is
. Return 
-
classmethod
fma(output, *terms)¶ Apply chain rule to elementwise functions
Returns sum(d.chain(output,x) for x,d in terms)
-
classmethod
fma2(output, *terms)¶ Apply chain rule to elementwise functions
Returns sum(d.chain(output,x) for x,d in terms)
-
getitem_arrayp(output, idx)¶ Generate Jacobian matrix for operation output=x[idx], this matrix being Jacobian of x. idx is array with all entries positive.
-
getitem_general(output, idx)¶ Generate Jacobian matrix for operation output=x[idx], this matrix being Jacobian of x. General version.
-
classmethod
new(mshape, diag=array(1), M=None)¶ Alternative constructor, which checks dimension of diag and assigns to scalar/vector part properly
-
rdot(y, other)¶ Return Jacobian of
, with
denoting matrix multiplication.
-
sum()¶ Return Jacobian of y=sum(x), this matrix being Jacobian of x
-
tovalue()¶ Return this matrix as standard CSR matrix. The result is cached.
-
vstack(output, parts)¶ Return Jacobian of output=hstack(parts)
-
zero(output)¶ Return empty Jacobian, which would result from output=0*x, this matrix being Jacobian of x.
-
-
class
sparsegrad.impl.sparse.sparse.sparsity_csr(mshape, s=None, diag=None, M=None)¶ Bases:
sparsegrad.impl.sparse.sparse.sdcsrThis is a variant of matrix only propagating sparsity information
-
chain(output, x)¶ Apply chain rule for elementwise operation
Jacobian of elementwise operation is
. Return 
-
classmethod
fma(output, *terms)¶ Apply chain rule to elementwise functions
Returns sum(d.chain(output,x) for x,d in terms)
-
classmethod
fma2(output, *terms)¶ Apply chain rule to elementwise functions
Returns sum(d.chain(output,x) for x,d in terms)
-
rdot(y, other)¶ Return Jacobian of
, with
denoting matrix multiplication.
-
-
sparsegrad.impl.sparse.sparse.sample_csr_rows(csr, rows)¶ return (indptr,ix) such that csr[rows]=csr_matrix((csr.data[ix],csr.indices[ix],indptr))
-
sparsegrad.impl.sparse.sparse.csr_matrix¶ alias of
sparsegrad.impl.sparse.sparse.csr_matrix_nochecking
-
sparsegrad.impl.sparse.sparse.csc_matrix¶ alias of
sparsegrad.impl.sparse.sparse.csc_matrix_unchecked