Source code for pyNNsMD.utils.activ

import tensorflow as tf
import tensorflow.keras as ks


[docs]@tf.keras.utils.register_keras_serializable(package='pyNNsMD', name='leaky_softplus') class leaky_softplus(tf.keras.layers.Layer): r"""Leaky soft-plus activation function similar to :obj:`tf.nn.leaky_relu` but smooth. """
[docs] def __init__(self, alpha=0.05, **kwargs): """Initialize with optionally learnable parameter. Args: alpha (float, optional): Leak parameter alpha. Default is 0.05. """ super(leaky_softplus, self).__init__(**kwargs) self.alpha = float(alpha)
[docs] def call(self, inputs, **kwargs): """Compute leaky_softplus activation from inputs.""" x = inputs return ks.activations.softplus(x) * (1 - self.alpha) + self.alpha * x
[docs] def get_config(self): config = super(leaky_softplus, self).get_config() config.update({"alpha": self.alpha}) return config
[docs]@tf.keras.utils.register_keras_serializable(package='pyNNsMD', name='shifted_softplus') def shifted_softplus(x): """Soft-plus function from tf.keras shifted downwards. Args: x (tf.tensor): Activation input. Returns: tf.tensor: Activation. """ return ks.activations.softplus(x) - ks.backend.log(2.0)