mirror of https://github.com/alibaba/MNN.git
44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
//
|
|
// Initializer.hpp
|
|
// MNN
|
|
//
|
|
// Created by MNN on 2019/11/28.
|
|
// Copyright © 2018, Alibaba Group Holding Limited
|
|
//
|
|
|
|
#ifndef Initializer_hpp
|
|
#define Initializer_hpp
|
|
|
|
#include <MNN/expr/Expr.hpp>
|
|
|
|
namespace MNN {
|
|
namespace Express {
|
|
class RandomGenerator;
|
|
class MNN_PUBLIC Initializer {
|
|
public:
|
|
Initializer() = default;
|
|
virtual ~Initializer() = default;
|
|
Express::VARP createConstVar(Express::INTS dim, Express::Dimensionformat format = Express::NCHW);
|
|
virtual void onExecute(Express::VARP p) = 0;
|
|
|
|
static Initializer* constValue(float value);
|
|
static Initializer* uniform(float minValue = 0.0f, float maxValue = 1.0f);
|
|
|
|
enum VarianceNorm {
|
|
FANIN,
|
|
FANOUT,
|
|
AVERAGE,
|
|
};
|
|
|
|
static Initializer* xavier(VarianceNorm norm = FANIN);
|
|
static Initializer* gauss(float mean = 0.0f, float std = 1.0f);
|
|
static Initializer* MSRA(VarianceNorm norm = FANIN);
|
|
static Initializer* bilinear();
|
|
static Initializer* positiveUnitball();
|
|
};
|
|
|
|
} // namespace Express
|
|
} // namespace MNN
|
|
|
|
#endif // Initializer_hpp
|