Skip to content

tenzr::nn::Dropout

Dropout regularization module active only in training mode.

#include <dropout.h>

Inherits from tenzr::nn::Module

Public Functions

Name
Dropout(double p =0.5, std::optional< uint64_t > seed =std::nullopt)
virtual Tensor Forward(const Tensor & input) override
double P() const
void SetP(double p)
virtual std::string Name() const override

Additional inherited members

Public Functions inherited from tenzr::nn::Module

Name
virtual ~Module() =default
Tensor operator()(const Tensor & input)
virtual void Train(bool mode)
void Train()
Switch to training mode.
void Eval()
Switch to evaluation mode.
bool IsTraining() const
Tensor & RegisterParameter(std::string name, Tensor param)
template <typename T ,typename... Args>
std::shared_ptr< T >
RegisterSubmodule(std::string name, Args &&... args)
std::shared_ptr< Module > RegisterSubmodule(std::string name, std::shared_ptr< Module > submod)
std::vector< Tensor > Parameters(bool recurse =true) const
std::unordered_map< std::string, Tensor > NamedParameters(std::string prefix ="", bool recurse =true) const
std::unordered_map< std::string, Tensor > StateDict() const
void LoadStateDict(const std::unordered_map< std::string, Tensor > & state)

Protected Attributes inherited from tenzr::nn::Module

Name
std::unordered_map< std::string, Tensor > parameters_
std::unordered_map< std::string, std::shared_ptr< Module > > submodules_
bool training_

Public Functions Documentation

function Dropout

explicit Dropout(
    double p =0.5,
    std::optional< uint64_t > seed =std::nullopt
)

Parameters:

  • p Dropout probability, in [0, 1).
  • seed Optional seed for the internal RNG.

Create a dropout layer with probability p.

function Forward

virtual Tensor Forward(
    const Tensor & input
) override

Parameters:

  • input Input tensor.
  • input Input tensor.

Return:

  • Tensor with dropped elements zeroed.
  • Dropped-out tensor.

Reimplements: tenzr::nn::Module::Forward

Apply dropout to input (identity when not training). Apply inverted dropout, passing the input through unchanged when inference or p_ == 0.

function P

inline double P() const

Return: Current drop probability.

function SetP

void SetP(
    double p
)

Parameters:

  • p New probability in [0, 1).
  • p New probability, in [0, 1).

Update the drop probability. Update the dropout probability.

function Name

inline virtual std::string Name() const override

Return: "Dropout".

Reimplements: tenzr::nn::Module::Name