phitodeep.layers.base ===================== .. py:module:: phitodeep.layers.base Classes ------- .. autoapisummary:: phitodeep.layers.base.Layer phitodeep.layers.base.Flatten phitodeep.layers.base.Dense Module Contents --------------- .. py:class:: Layer(name: str, initializer: phitodeep.optimization.initialization.Initializer = Initializer()) Base class for all layers in the network. .. py:attribute:: name .. py:attribute:: cache .. py:attribute:: grads .. py:attribute:: initializer .. py:method:: forward(X: numpy.ndarray) :abstractmethod: .. py:method:: backward(dL_dZ) :abstractmethod: Backward pass through the block. :param dL_dZ: gradient of loss w.r.t. output of this block :returns: gradient of loss w.r.t. input (to pass to previous layer) :rtype: dL_dX .. py:method:: copy() :abstractmethod: .. py:class:: Flatten Bases: :py:obj:`Layer` Flattens the input tensor into a 2D tensor. .. py:method:: forward(X: numpy.ndarray) X: (batch_size, ...) -> (batch_size, ...) .. py:method:: backward(dL_dZ) dL_dZ: (batch_size, ...) -> (batch_size, ...) .. py:method:: copy() .. py:class:: Dense(input_size: int, output_size: int, initializer: phitodeep.optimization.initialization.Initializer = He()) Bases: :py:obj:`Layer` Fully connected layer. .. py:attribute:: grads .. py:attribute:: input_size .. py:attribute:: output_size .. py:attribute:: W .. py:attribute:: b .. py:method:: forward(X: numpy.ndarray) X: (batch_size, input_size) -> (batch_size, output_size) .. py:method:: backward(dL_dZ) Backpropagate through Dense layer. :param dL_dZ: (batch_size, output_size) - gradient of loss w.r.t. output :returns: (batch_size, input_size) - gradient to pass to previous layer :rtype: dL_dX .. py:method:: copy()