4.1.4. Initializers

4.1.4.1. Base Class

class Initializer : primitiv::mixins::Nonmovable<Initializer>

Abstract class to provide parameter initialization algorithms.

Subclassed by primitiv::initializers::Constant, primitiv::initializers::Identity, primitiv::initializers::Normal, primitiv::initializers::Uniform, primitiv::initializers::XavierNormal, primitiv::initializers::XavierNormalConv2D, primitiv::initializers::XavierUniform, primitiv::initializers::XavierUniformConv2D

Public Functions

virtual void apply(Tensor &x) const = 0

Provides an initialized tensor.

Parameters
  • x: Tensor object to be initialized.

4.1.4.2. Inherited Classes

class Constant : public primitiv::Initializer

Initializer to generate a same-value tensor.

Public Functions

Constant(float k)

Crates a new Constant initializer.

Parameters
  • k: Initial value of all variables in the parameter.

void apply(Tensor &x) const

Provides an initialized tensor.

Parameters
  • x: Tensor object to be initialized.

class Uniform : public primitiv::Initializer

Initializer using a parameterized uniform distribution with the range \( (L, U] \).

Public Functions

Uniform(float lower, float upper)

Creates a new Uniform initializer.

Parameters
  • lower: Lower bound \( L \) of the uniform distribution.
  • upper: Upper bound \( U \) of the uniform distribution.

void apply(Tensor &x) const

Provides an initialized tensor.

Parameters
  • x: Tensor object to be initialized.

class Normal : public primitiv::Initializer

Initializer using a parameterized normal distribution \( \mathcal{N}(\mu, \sigma) \).

Public Functions

Normal(float mean, float sd)

Creates a new Normal initializer.

Parameters
  • mean: Mean \( \mu \) of the normal distribution.
  • sd: Standard deviation \( \sigma \) of the normal distribution.

void apply(Tensor &x) const

Provides an initialized tensor.

Parameters
  • x: Tensor object to be initialized.

class Identity : public primitiv::Initializer

Identity matrix initializer.

Public Functions

Identity()

Creates a new Identity initializer.

void apply(Tensor &x) const

Provides an initialized tensor.

Parameters
  • x: Tensor object to be initialized.

class XavierUniform : public primitiv::Initializer

The Xavier matrix initialization with the uniform distribution.

Public Functions

XavierUniform(float scale = 1.0f)

Creates a new XavierUniform initializer.

Parameters
  • scale: Additional scaling factor of the uniform distribution.

void apply(Tensor &x) const

Provides an initialized tensor.

Parameters
  • x: Tensor object to be initialized.

class XavierNormal : public primitiv::Initializer

The Xavier matrix initialization with the normal distribution.

Public Functions

XavierNormal(float scale = 1.0f)

Creates a new XavierNormal initializer.

Parameters
  • scale: Additional scaling factor of the normal distribution.

void apply(Tensor &x) const

Provides an initialized tensor.

Parameters
  • x: Tensor object to be initialized.

class XavierUniformConv2D : public primitiv::Initializer

The Xavier initialization with the uniform distribution for conv2d filters.

Public Functions

XavierUniformConv2D(float scale = 1.0f)

Creates a new XavierUniformConv2D initializer.

Parameters
  • scale: Additional scaling factor of the uniform distribution.

void apply(Tensor &x) const

Provides an initialized tensor.

Parameters
  • x: Tensor object to be initialized.

class XavierNormalConv2D : public primitiv::Initializer

The Xavier initialization with the normal distribution for conv2d filters.

Public Functions

XavierNormalConv2D(float scale = 1.0f)

Creates a new XavierNormalConv2D initializer.

Parameters
  • scale: Additional scaling factor of the normal distribution.

void apply(Tensor &x) const

Provides an initialized tensor.

Parameters
  • x: Tensor object to be initialized.