def __init__(self, X, drop_prob=0.5, rng=None, batcher=None):
        if batcher is not None:
            super(Dropout, self).__init__([X, batcher])
            batcher.add_dropout_node(self)
        else:
            super(Dropout, self).__init__([X])

        self.X         = X
        self.drop_prob = drop_prob

        if rng is None:
            self._rng = npr.RandomState()
        else:
            self._rng = rng

        self._enhancement = (1.0 + EPSILON)/(1.0 - self.drop_prob+EPSILON)
        self.draw_new_mask()
dataset/ETHPy150Open HIPS/Kayak/kayak/dropout.py/Dropout.__init__/original