Declaration of the Instance Normalization layer class. More...
Public Member Functions | |
InstanceNorm () | |
Create the InstanceNorm object. More... | |
InstanceNorm (const size_t size, const size_t batchSize, const double eps=1e-5, const bool average=true, const double momentum=0.1) | |
Create the InstanceNorm layer object with the specified parameters. More... | |
bool | Average () const |
Get the average parameter. More... | |
bool | Average () |
Modify the average parameter. More... | |
template < typename eT > | |
void | Backward (const arma::Mat< eT > &input, const arma::Mat< eT > &gy, arma::Mat< eT > &g) |
Backward pass through the layer. More... | |
bool | Batchsize () const |
Get the batchSize parameter. More... | |
bool | Batchsize () |
Modify the batchSize parameter. More... | |
OutputDataType const & | Delta () const |
Get the delta. More... | |
OutputDataType & | Delta () |
Modify the delta. More... | |
bool | Deterministic () const |
Get the value of deterministic parameter. More... | |
bool & | Deterministic () |
Modify the value of deterministic parameter. More... | |
double | Epsilon () const |
Get the epsilon value. More... | |
double | Epsilon () |
Modify the epsilon value. More... | |
template < typename eT > | |
void | Forward (const arma::Mat< eT > &input, arma::Mat< eT > &output) |
Forward pass of the Instance Normalization layer. More... | |
template < typename eT > | |
void | Gradient (const arma::Mat< eT > &input, const arma::Mat< eT > &error, arma::Mat< eT > &gradient) |
Calculate the gradient using the output delta and the input activations. More... | |
OutputDataType const & | Gradient () const |
Get the gradient. More... | |
OutputDataType & | Gradient () |
Modify the gradient. More... | |
size_t | InputSize () const |
Get the number of input units / channels. More... | |
size_t | InputSize () |
Modify the input units/ channels. More... | |
double | Momentum () const |
Get the momentum value. More... | |
double | Momentum () |
Modify the momentum value. More... | |
OutputDataType const & | OutputParameter () const |
Get the output parameter. More... | |
OutputDataType & | OutputParameter () |
Modify the output parameter. More... | |
OutputDataType const & | Parameters () const |
Get the parameters. More... | |
OutputDataType & | Parameters () |
Modify the parameters. More... | |
template < typename Archive > | |
void | serialize (Archive &ar, const uint32_t) |
Serialize the layer. More... | |
OutputDataType const & | TrainingMean () const |
Get the mean over the training data. More... | |
OutputDataType & | TrainingMean () |
Modify the mean over the training data. More... | |
OutputDataType const & | TrainingVariance () const |
Get the variance over the training data. More... | |
OutputDataType & | TrainingVariance () |
Modify the variance over the training data. More... | |
Declaration of the Instance Normalization layer class.
The layer transforms the input data into zero mean and unit variance and then scales and shifts the data by parameters, gamma and beta respectively. These parameters are learnt by the network. The mean and standard-deviation are calculated per-dimension separately for each object in a mini-batch.
If deterministic is false (training), the mean and variance are calculated and the data is normalized. If it is set to true (testing) then the mean and variance accrued over the training set is used.
For more information, refer to the following paper,
InputDataType | Type of the input data (arma::colvec, arma::mat, arma::sp_mat or arma::cube). |
OutputDataType | Type of the output data (arma::colvec, arma::mat, arma::sp_mat or arma::cube). |
Definition at line 55 of file instance_norm.hpp.
InstanceNorm | ( | ) |
Create the InstanceNorm object.
InstanceNorm | ( | const size_t | size, |
const size_t | batchSize, | ||
const double | eps = 1e-5 , |
||
const bool | average = true , |
||
const double | momentum = 0.1 |
||
) |
Create the InstanceNorm layer object with the specified parameters.
size | The number of input units / channels. |
batchSize | Size of the minibatch. |
eps | The epsilon added to variance to ensure numerical stability. |
average | Boolean to determine whether cumulative average is used for updating the parameters or momentum. |
momentum | Parameter used to update the running mean and variance. |
|
inline |
Get the average parameter.
Definition at line 166 of file instance_norm.hpp.
|
inline |
Modify the average parameter.
Definition at line 168 of file instance_norm.hpp.
void Backward | ( | const arma::Mat< eT > & | input, |
const arma::Mat< eT > & | gy, | ||
arma::Mat< eT > & | g | ||
) |
Backward pass through the layer.
input | The input activations |
gy | The backpropagated error. |
g | The calculated gradient. |
|
inline |
Get the batchSize parameter.
Definition at line 171 of file instance_norm.hpp.
|
inline |
Modify the batchSize parameter.
Definition at line 173 of file instance_norm.hpp.
References InstanceNorm< InputDataType, OutputDataType >::serialize().
|
inline |
Get the delta.
Definition at line 125 of file instance_norm.hpp.
|
inline |
Modify the delta.
Definition at line 127 of file instance_norm.hpp.
|
inline |
Get the value of deterministic parameter.
Definition at line 135 of file instance_norm.hpp.
|
inline |
Modify the value of deterministic parameter.
Definition at line 137 of file instance_norm.hpp.
|
inline |
Get the epsilon value.
Definition at line 155 of file instance_norm.hpp.
|
inline |
Modify the epsilon value.
Definition at line 157 of file instance_norm.hpp.
void Forward | ( | const arma::Mat< eT > & | input, |
arma::Mat< eT > & | output | ||
) |
Forward pass of the Instance Normalization layer.
Transforms the input data into zero mean and unit variance, scales the data by a factor gamma and shifts it by beta.
input | Input data for the layer |
output | Resulting output activations. |
void Gradient | ( | const arma::Mat< eT > & | input, |
const arma::Mat< eT > & | error, | ||
arma::Mat< eT > & | gradient | ||
) |
Calculate the gradient using the output delta and the input activations.
input | The input activations |
error | The calculated error |
gradient | The calculated gradient. |
|
inline |
Get the gradient.
Definition at line 130 of file instance_norm.hpp.
|
inline |
Modify the gradient.
Definition at line 132 of file instance_norm.hpp.
|
inline |
Get the number of input units / channels.
Definition at line 150 of file instance_norm.hpp.
|
inline |
Modify the input units/ channels.
Definition at line 152 of file instance_norm.hpp.
|
inline |
Get the momentum value.
Definition at line 161 of file instance_norm.hpp.
|
inline |
Modify the momentum value.
Definition at line 163 of file instance_norm.hpp.
|
inline |
Get the output parameter.
Definition at line 118 of file instance_norm.hpp.
|
inline |
Modify the output parameter.
Definition at line 122 of file instance_norm.hpp.
|
inline |
Get the parameters.
Definition at line 113 of file instance_norm.hpp.
|
inline |
Modify the parameters.
Definition at line 115 of file instance_norm.hpp.
void serialize | ( | Archive & | ar, |
const uint32_t | |||
) |
Serialize the layer.
Referenced by InstanceNorm< InputDataType, OutputDataType >::Batchsize().
|
inline |
Get the mean over the training data.
Definition at line 140 of file instance_norm.hpp.
|
inline |
Modify the mean over the training data.
Definition at line 142 of file instance_norm.hpp.
|
inline |
Get the variance over the training data.
Definition at line 145 of file instance_norm.hpp.
|
inline |
Modify the variance over the training data.
Definition at line 147 of file instance_norm.hpp.