pydeepity
Python bindings for Deepity
Loading...
Searching...
No Matches
deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN Class Reference
Inheritance diagram for deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN:

Public Member Functions

None __init__ (self, *Layer|Activation architecture, tuple[int, int, int] input_shape, Optional[int] batch_size=None)
None configure (self, float learning_rate=1e-6, float inference_rate=0.1, float lmbda=1e-2, str optimizer="SGD")
None set_learning_rate (self, float lr)
None set_inference_rate (self, float ir)
None set_lambda (self, float lmbda)
None set_optimizer (self, str optimizer)
float train_step (self, npt.NDArray[np.float32] X, npt.NDArray[np.float32] Y, int steps)
npt.NDArray[np.float32] predict (self, npt.NDArray[np.float32] X, int steps)
float train_step_with_projection (self, npt.NDArray[np.float32] X, npt.NDArray[np.float32] Y, int steps)
npt.NDArray[np.float32] predict_with_projection (self, npt.NDArray[np.float32] X, int steps)
"SimpleConvolutionalPCN" fit (self, npt.NDArray[np.float32] X, npt.NDArray[np.float32] Y, int epochs, int steps, Optional[float] initial_lr=None, float decay_rate=1.0, bool shuffle=True)

Public Attributes

 architecture = architecture
 input_shape = input_shape
 layers

Protected Member Functions

None _validate_architecture (self)
None _build_backend (self)
None _require_configured (self)

Protected Attributes

Optional[float] _learning_rate = None
Optional[float] _inference_rate = None
Optional[float] _lambda = None
Optional[str] _optimizer = None
bool _configured = False

Detailed Description

Simple convolutional Predictive Coding Network.

The architecture is declared using Convolution and Activation objects,
while optimization and inference parameters are supplied through
configure().

Constructor & Destructor Documentation

◆ __init__()

None deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.__init__ ( self,
*Layer | Activation architecture,
tuple[int, int, int] input_shape,
Optional[int] batch_size = None )

Member Function Documentation

◆ _build_backend()

None deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN._build_backend ( self)
protected

◆ _require_configured()

None deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN._require_configured ( self)
protected

◆ _validate_architecture()

None deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN._validate_architecture ( self)
protected

◆ configure()

None deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.configure ( self,
float learning_rate = 1e-6,
float inference_rate = 0.1,
float lmbda = 1e-2,
str optimizer = "SGD" )
Configure network hyperparameters and initialize the backend.
Must be called once, before train_step()/predict().

@param learning_rate Learning rate for the forward weights.
@param inference_rate Inference/settling rate.
@param lmbda Regularization parameter.
@param optimizer Optimizer used for the forward weights.

◆ fit()

"SimpleConvolutionalPCN" deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.fit ( self,
npt.NDArray[np.float32] X,
npt.NDArray[np.float32] Y,
int epochs,
int steps,
Optional[float] initial_lr = None,
float decay_rate = 1.0,
bool shuffle = True )
Train for multiple epochs over (X, Y), batching by
`self.batch_size` and printing a progress bar.

◆ predict()

npt.NDArray[np.float32] deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.predict ( self,
npt.NDArray[np.float32] X,
int steps )
Run inference on `X`, settling for `steps` iterations.
@return The terminal layer's beliefs.

◆ predict_with_projection()

npt.NDArray[np.float32] deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.predict_with_projection ( self,
npt.NDArray[np.float32] X,
int steps )
Same as predict(), but initializes every layer's beliefs
via a forward projection pass first.

◆ set_inference_rate()

None deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.set_inference_rate ( self,
float ir )
Set the inference/settling rate on every layer.

◆ set_lambda()

None deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.set_lambda ( self,
float lmbda )
Set the regularization parameter on every layer.

◆ set_learning_rate()

None deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.set_learning_rate ( self,
float lr )
Set the learning rate on every layer.

◆ set_optimizer()

None deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.set_optimizer ( self,
str optimizer )
Set the optimizer used for the forward weights.

◆ train_step()

float deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.train_step ( self,
npt.NDArray[np.float32] X,
npt.NDArray[np.float32] Y,
int steps )
Run one training step on a single batch, settling for
`steps` iterations before updating weights.
@return Total settling energy accumulated over `steps`.

◆ train_step_with_projection()

float deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.train_step_with_projection ( self,
npt.NDArray[np.float32] X,
npt.NDArray[np.float32] Y,
int steps )
Same as train_step(), but initializes every layer's
beliefs via a forward projection pass first.

Member Data Documentation

◆ _configured

bool deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN._configured = False
protected

◆ _inference_rate

Optional[float] deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN._inference_rate = None
protected

◆ _lambda

Optional[float] deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN._lambda = None
protected

◆ _learning_rate

Optional[float] deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN._learning_rate = None
protected

◆ _optimizer

Optional[str] deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN._optimizer = None
protected

◆ architecture

deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.architecture = architecture

◆ input_shape

deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.input_shape = input_shape

◆ layers

deepity.SimpleConvolutionalPCN.SimpleConvolutionalPCN.layers

The documentation for this class was generated from the following file: