spconv

Module contents

Convolution using sparse matrix.

class poornn.spconv.SPConv(input_shape, itype, weight, bias, strides=None, boundary='P', w_contiguous=True, var_mask=(1, 1), is_unitary=False, **kwargs)

Bases: poornn.linears.LinearBase

Convolution layer.

Parameters:
  • weight (ndarray) – dimensions are aranged as (feature_out, feature_in, kernel_x, ...), in ‘F’ order.
  • bias (1darray) – length of num_feature_out.
  • strides (tuple, default=(1,1,..)) – displace for convolutions.
  • boudnary ('P'|'O', default='P') – boundary type, * ‘P’, periodic boundary condiction. * ‘O’, open boundary condition.
  • is_unitary (bool, default=False) – keep unitary if True, here, unitary is defined in the map U: img_in -> feature_out.
  • var_mask (tuple<bool>, len=2, default=(True,True)) – variable mask for weight and bias.
weight

ndarray – dimensions are aranged as (feature_out, feature_in, kernel_x, ...), in ‘F’ order.

bias

1darray – length of num_feature_out.

strides

tuple – displace for convolutions.

boudnary

‘P’|’O’ – boundary type, * ‘P’, periodic boundary condiction. * ‘O’, open boundary condition.

is_unitary

bool – keep unitary if True, here, unitary is defined in the map U: img_in -> feature_out.

var_mask

tuple<bool>, len=2 – variable mask for weight and bias.

(Derived)
csc_indptr

1darray – column pointers for convolution matrix.

csc_indices

1darray – row indicator for input array.

weight_indices

1darray – row indicator for filter array (if not contiguous).

backward(xy, dy, **kwargs)
Parameters:
  • xy ((ndarray, ndarray)) –
    • x -> (num_batch, nfi, img_in_dims), input in ‘F’ order.
    • y -> (num_batch, nfo, img_out_dims), output in ‘F’ order.
  • dy (ndarray) – (num_batch, nfo, img_out_dims), gradient of output in ‘F’ order.
  • mask (booleans) – (do_xgrad, do_wgrad, do_bgrad).
Returns:

dw, dx

Return type:

tuple(1darray, ndarray)

forward(x, **kwargs)
Parameters:x (ndarray) – (num_batch, nfi, img_in_dims), input in ‘F’ order.
Returns:ndarray, (num_batch, nfo, img_out_dims), output in ‘F’ order.
img_nd

Dimension of input image.

num_feature_in

Dimension of input feature.

num_feature_out

Dimension of input feature.

set_runtime_vars(var_dict={})

Set runtime variables for layers.

Parameters:var_dict (dict) – the runtime variables dict.