nets¶
Module contents¶
ABC of neural network.
-
class
poornn.nets.ANN(layers=None, labels=None)¶ Bases:
poornn.core.ContainerSequential Artificial Neural network.
-
add_layer(cls, label=None, **kwargs)¶ Add a new layer, comparing with
self.layers.append()input_shapeof new layer is infered fromoutput_shapeof last layer.itypeof new layer is infered fromotypeof last layer.
Parameters: - cls (class) – create a layer instance, take input_shape and itype as first and second parameters.
- label (str|None, default=None) – label to index this layer, leave None if indexing is not needed.
- **kwargs – keyword arguments used by
cls.__init__(), excludinginput_shapeanditype.
Note
if
num_layersis 0, this function will raise an error, because it fails to inferinput_shapeanditype.Returns: newly generated object. Return type: Layer
-
backward(xy, dy=array(1), data_cache=None, do_shape_check=False)¶ Compute gradients.
Parameters: - xy (tuple) – input and output
- dy (ndarray) – gradient of output defined as \(\partial J/\partial y\).
- data_cache (dict) – a dict with collected datas.
- do_shape_check (bool) – check shape of data flow if True.
Returns: gradients for vairables in layers.
Return type: list
-
dtype¶ variable data shape, which is infered from layers.
-
forward(x, data_cache=None, do_shape_check=False, **kwargs)¶ Feed input to this feed forward network.
Parameters: - x (ndarray) – input in ‘F’ order.
- data_cache (dict|None, default=None) – a dict used to collect datas.
- do_shape_check (bool) – check shape of data flow if True.
Note
data_cacheshould be pass to this method if you are about to call a subsequentbackward()method, because backward needdata_cache.'%d-ys'%id(self)is used as the key to store run-time output of layers in this network.data_cache['%d-ys'%id(self)]is a list with contents outputs in each layers generate in this forward run.Returns: output in each layer. Return type: list
-
get_runtimes()¶ show runtime variables used in this
Container.
-
get_variables()¶ Dump values to an array.
-
num_layers¶ number of layers.
-
num_variables¶ int – number of variables.
-
set_runtime_vars(var_dict)¶ Set runtime variables.
Parameters: var_dict (dict) – the runtime variables dict.
-
set_variables(v)¶ Load data from an array.
Parameters: v (1darray) – variables.
tags for this
Container, which is infered fromself.layers.
-
-
class
poornn.nets.ParallelNN(axis=0, layers=None, labels=None)¶ Bases:
poornn.core.ContainerParallel Artificial Neural network.
Parameters: axis (int, default=0) – specify the additional axis on which outputs are packed. -
axis¶ int – specify the additional axis on which outputs are packed.
-
add_layer(cls, **kwargs)¶ add a new layer, comparing with
self.layers.append()- input_shape of new layer is infered from input_shape of first layer.
- itype of new layer is infered from itype of first layer.
- otype of new layer is infered from otype of first layer.
Parameters: - cls (class) – create a layer instance, take input_shape and itype as first and second parameters.
- **kwargs – keyword arguments used by cls.__init__, excluding input_shape and itype.
Note
if self.num_layers is 0, this function will raise an error, because it fails to infer input_shape, itype and otype.
Returns: newly generated object. Return type: Layer
-
backward(xy, dy=array(1), do_shape_check=False, **kwargs)¶ Compute gradients.
Parameters: - xy (tuple) – input and output
- dy (ndarray) – gradient of output defined as \(\partial J/\partial y\).
- do_shape_check (bool) – check shape of data flow if True.
Returns: gradients for vairables in layers.
Return type: list
-
dtype¶ variable data shape, which is infered from layers.
-
forward(x, do_shape_check=False, **kwargs)¶ Feed input, it will generate a new axis,and storge the outputs of layers parallel along this axis.
Parameters: - x (ndarray) – input in ‘F’ order.
- do_shape_check (bool) – check shape of data flow if True.
Returns: output,
Return type: ndarray
-
get_runtimes()¶ show runtime variables used in this
Container.
-
get_variables()¶ Dump values to an array.
-
num_layers¶ number of layers.
-
num_variables¶ int – number of variables.
-
set_runtime_vars(var_dict)¶ Set runtime variables.
Parameters: var_dict (dict) – the runtime variables dict.
-
set_variables(v)¶ Load data from an array.
Parameters: v (1darray) – variables.
tags for this
Container, which is infered fromself.layers.
-
-
class
poornn.nets.JointComplex(real, imag)¶ Bases:
poornn.core.ContainerFunction \(f(z) = h(x) + ig(y)\), where \(h\) and \(g\) are real functions. This
Containercan be used to generate complex layers, but its non-holomophic (analytical type 3).Parameters: -
dtype¶ variable data shape, which is infered from layers.
-
get_runtimes()¶ show runtime variables used in this
Container.
-
get_variables()¶ Dump values to an array.
-
imag¶ the imaginary part layer.
-
num_layers¶ number of layers.
-
num_variables¶ int – number of variables.
-
real¶ the real part layer.
-
set_runtime_vars(var_dict)¶ Set runtime variables.
Parameters: var_dict (dict) – the runtime variables dict.
-
set_variables(v)¶ Load data from an array.
Parameters: v (1darray) – variables.
-
-
class
poornn.nets.KeepSignFunc(h, is_real=False)¶ Bases:
poornn.core.ContainerFunction \(f(z) = h(|z|)\sign(z)\), where \(h\) is a real function. This
Containerinherit sign from input, so it must have same input and ouput dimension. It can also be used to generate complex layers, but its non-holomophic (analytical type 3).Parameters: is_real (bool, default=False) – input is real if True. -
is_real¶ bool – input is real if True.
-
dtype¶ variable data shape, which is infered from layers.
-
get_runtimes()¶ show runtime variables used in this
Container.
-
get_variables()¶ Dump values to an array.
-
h¶ layer applied on amplitude.
-
num_layers¶ number of layers.
-
num_variables¶ int – number of variables.
-
set_runtime_vars(var_dict)¶ Set runtime variables.
Parameters: var_dict (dict) – the runtime variables dict.
-
set_variables(v)¶ Load data from an array.
Parameters: v (1darray) – variables.
-