Source code for epynn.dropout.forward

# EpyNN/epynn/dropout/forward.py


[docs]def initialize_forward(layer, A): """Forward cache initialization. :param layer: An instance of dropout layer. :type layer: :class:`epynn.dropout.models.Dropout` :param A: Output of forward propagation from previous layer. :type A: :class:`numpy.ndarray` :return: Input of forward propagation for current layer. :rtype: :class:`numpy.ndarray` """ X = layer.fc['X'] = A return X
import numpy as np
[docs]def dropout_forward(layer, A): """Forward propagate signal to next layer. """ # (1) Initialize cache X = initialize_forward(layer, A) # (2) Generate dropout mask D = layer.np_rng.uniform(0, 1, layer.fs['D']) # (3) Apply a step function with respect to drop_prob (k) D = layer.fc['D'] = (D > layer.d['d']) # (4) Drop data points A = X * D # (5) Scale up signal A /= (1 - layer.d['d']) return A # To next layer