Activations API

namespace activations

Enums

enum class ActivationType

Values:

enumerator Tanh
enumerator Hardtanh
enumerator Fasttanh
enumerator ReLU
enumerator LeakyReLU
enumerator PReLU
enumerator Sigmoid
enumerator SiLU
enumerator Hardswish
enumerator LeakyHardtanh
enumerator Softsign

Functions

inline float relu(float x)
inline float sigmoid(float x)
inline float hard_tanh(float x)
inline float leaky_hardtanh(float x, float min_val, float max_val, float min_slope, float max_slope)
inline float fast_tanh(const float x)
inline float fast_sigmoid(const float x)
inline float leaky_relu(float x, float negative_slope)
inline float leaky_relu(float x)
inline float swish(float x)
inline float hardswish(float x)
inline float softsign(float x)
class Activation
#include <activations.h>

Subclassed by nam::activations::ActivationFastTanh, nam::activations::ActivationHardSwish, nam::activations::ActivationHardTanh, nam::activations::ActivationIdentity, nam::activations::ActivationLeakyHardTanh, nam::activations::ActivationLeakyReLU, nam::activations::ActivationPReLU, nam::activations::ActivationReLU, nam::activations::ActivationSigmoid, nam::activations::ActivationSoftsign, nam::activations::ActivationSwish, nam::activations::ActivationTanh, nam::activations::FastLUTActivation, nam::gating_activations::IdentityActivation

Public Types

using Ptr = std::shared_ptr<Activation>

Public Functions

Activation() = default
virtual ~Activation() = default
inline virtual void apply(Eigen::MatrixXf &matrix)
inline virtual void apply(Eigen::Block<Eigen::MatrixXf> block)
inline virtual void apply(Eigen::Block<Eigen::MatrixXf, -1, -1, true> block)
virtual void apply(float *data, long size) = 0

Public Static Functions

static Ptr get_activation(const std::string name)
static Ptr get_activation(const ActivationConfig &config)
static Ptr get_activation(const nlohmann::json &activation_config)
static void enable_fast_tanh()
static void disable_fast_tanh()
static void enable_lut(std::string function_name, float min, float max, std::size_t n_points)
static void disable_lut(std::string function_name)

Public Static Attributes

static bool using_fast_tanh
struct ActivationConfig
#include <activations.h>

Public Members

ActivationType type
std::optional<float> negative_slope
std::optional<std::vector<float>> negative_slopes
std::optional<float> min_val
std::optional<float> max_val
std::optional<float> min_slope
std::optional<float> max_slope

Public Static Functions

static ActivationConfig simple(ActivationType t)
static ActivationConfig from_json(const nlohmann::json &j)
class ActivationFastTanh : public nam::activations::Activation
#include <activations.h>

Public Functions

inline virtual void apply(float *data, long size) override
class ActivationHardSwish : public nam::activations::Activation
#include <activations.h>

Public Functions

inline virtual void apply(float *data, long size) override
class ActivationHardTanh : public nam::activations::Activation
#include <activations.h>

Public Functions

inline virtual void apply(float *data, long size) override
class ActivationIdentity : public nam::activations::Activation
#include <activations.h>

Public Functions

ActivationIdentity() = default
~ActivationIdentity() = default
inline virtual void apply(float *data, long size) override
class ActivationLeakyHardTanh : public nam::activations::Activation
#include <activations.h>

Public Functions

ActivationLeakyHardTanh() = default
inline ActivationLeakyHardTanh(float min_val_, float max_val_, float min_slope_, float max_slope_)
inline virtual void apply(float *data, long size) override
class ActivationLeakyReLU : public nam::activations::Activation
#include <activations.h>

Public Functions

ActivationLeakyReLU() = default
inline ActivationLeakyReLU(float ns)
inline virtual void apply(float *data, long size) override
class ActivationPReLU : public nam::activations::Activation
#include <activations.h>

Public Functions

ActivationPReLU() = default
inline ActivationPReLU(float ns)
inline ActivationPReLU(std::vector<float> ns)
inline virtual void apply(float *data, long size) override
inline virtual void apply(Eigen::MatrixXf &matrix) override
class ActivationReLU : public nam::activations::Activation
#include <activations.h>

Public Functions

inline virtual void apply(float *data, long size) override
class ActivationSigmoid : public nam::activations::Activation
#include <activations.h>

Public Functions

inline virtual void apply(float *data, long size) override
class ActivationSoftsign : public nam::activations::Activation
#include <activations.h>

Public Functions

inline virtual void apply(float *data, long size) override
class ActivationSwish : public nam::activations::Activation
#include <activations.h>

Public Functions

inline virtual void apply(float *data, long size) override
class ActivationTanh : public nam::activations::Activation
#include <activations.h>

Public Functions

inline virtual void apply(float *data, long size) override
class FastLUTActivation : public nam::activations::Activation
#include <activations.h>

Public Functions

inline FastLUTActivation(float min_x, float max_x, std::size_t size, std::function<float(float)> f)
inline float lookup(float x) const
inline virtual void apply(float *data, long size) override
class Activation

Subclassed by nam::activations::ActivationFastTanh, nam::activations::ActivationHardSwish, nam::activations::ActivationHardTanh, nam::activations::ActivationIdentity, nam::activations::ActivationLeakyHardTanh, nam::activations::ActivationLeakyReLU, nam::activations::ActivationPReLU, nam::activations::ActivationReLU, nam::activations::ActivationSigmoid, nam::activations::ActivationSoftsign, nam::activations::ActivationSwish, nam::activations::ActivationTanh, nam::activations::FastLUTActivation, nam::gating_activations::IdentityActivation

Public Types

using Ptr = std::shared_ptr<Activation>

Public Functions

Activation() = default
virtual ~Activation() = default
inline virtual void apply(Eigen::MatrixXf &matrix)
inline virtual void apply(Eigen::Block<Eigen::MatrixXf> block)
inline virtual void apply(Eigen::Block<Eigen::MatrixXf, -1, -1, true> block)
virtual void apply(float *data, long size) = 0

Public Static Functions

static Ptr get_activation(const std::string name)
static Ptr get_activation(const ActivationConfig &config)
static Ptr get_activation(const nlohmann::json &activation_config)
static void enable_fast_tanh()
static void disable_fast_tanh()
static void enable_lut(std::string function_name, float min, float max, std::size_t n_points)
static void disable_lut(std::string function_name)

Public Static Attributes

static bool using_fast_tanh
enum class nam::activations::ActivationType

Values:

enumerator Tanh
enumerator Hardtanh
enumerator Fasttanh
enumerator ReLU
enumerator LeakyReLU
enumerator PReLU
enumerator Sigmoid
enumerator SiLU
enumerator Hardswish
enumerator LeakyHardtanh
enumerator Softsign
struct ActivationConfig

Public Members

ActivationType type
std::optional<float> negative_slope
std::optional<std::vector<float>> negative_slopes
std::optional<float> min_val
std::optional<float> max_val
std::optional<float> min_slope
std::optional<float> max_slope

Public Static Functions

static ActivationConfig simple(ActivationType t)
static ActivationConfig from_json(const nlohmann::json &j)