27 #ifndef MXNET_CPP_INITIALIZER_H_ 28 #define MXNET_CPP_INITIALIZER_H_ 42 const std::string& check_str) {
43 return (name.size() >= check_str.size() &&
44 name.substr(0, check_str.size()) == check_str);
47 const std::string& check_str) {
48 return (name.size() >= check_str.size() &&
49 name.substr(name.size() - check_str.size(), check_str.size()) ==
87 std::vector<float> weight(shape.Size(), 0);
88 int f = std::ceil(shape[3] / 2.0);
89 float c = (2 * f - 1 - f % 2) / (2. * f);
90 for (
size_t i = 0; i < shape.Size(); ++i) {
92 int y = (i / shape[3]) % shape[2];
93 weight[i] = (1 - std::abs(x / f - c)) * (1 - std::abs(y / f - c));
95 (*arr).SyncCopyFromCPU(weight);
104 std::default_random_engine generator;
105 std::uniform_int_distribution<int32_t> _val(-127, 127);
106 (*arr) = _val(generator);
140 : begin(begin), end(end) {}
159 : mu(mu), sigma(sigma) {}
205 : rand_type(rand_type), factor_type(factor_type), magnitude(magnitude) {}
218 float hw_scale = 1.0f;
219 if (shape.ndim() > 2) {
220 for (
size_t i = 2; i < shape.ndim(); ++i) {
221 hw_scale *= shape[i];
224 float fan_in = shape[1] * hw_scale, fan_out = shape[0] * hw_scale;
226 switch (factor_type) {
228 factor = (fan_in + fan_out) / 2.0;
236 float scale = std::sqrt(magnitude / factor);
251 :
Xavier(gaussian, factor_type, 2. / (1 + slope * slope)) {}
257 #endif // MXNET_CPP_INITIALIZER_H_ static bool StringStartWith(const std::string &name, const std::string &check_str)
Definition: initializer.h:41
static bool StringEndWith(const std::string &name, const std::string &check_str)
Definition: initializer.h:46
void operator()(const std::string &name, NDArray *arr) override
Definition: initializer.h:178
void operator()(const std::string &name, NDArray *arr) override
Definition: initializer.h:160
Definition: initializer.h:175
Definition: initializer.h:191
namespace of mxnet
Definition: api_registry.h:33
virtual void InitQuantizedWeight(NDArray *arr)
Definition: initializer.h:103
dynamic shape class that can hold shape of arbirary dimension
Definition: shape.h:43
Definition: initializer.h:114
MSRAPrelu(FactorType factor_type=avg, float slope=0.25f)
Definition: initializer.h:250
FactorType
Definition: initializer.h:197
Xavier(RandType rand_type=gaussian, FactorType factor_type=avg, float magnitude=3)
Definition: initializer.h:203
float value
Definition: initializer.h:122
virtual void InitOne(NDArray *arr)
Definition: initializer.h:98
virtual void InitGamma(NDArray *arr)
Definition: initializer.h:100
Definition: initializer.h:130
virtual void InitBias(NDArray *arr)
Definition: initializer.h:99
One()
Definition: initializer.h:132
virtual void InitZero(NDArray *arr)
Definition: initializer.h:97
NDArray interface.
Definition: ndarray.h:121
Definition: initializer.h:194
Definition: initializer.h:125
Definition: initializer.h:198
float sigma
Definition: initializer.h:172
virtual void InitBeta(NDArray *arr)
Definition: initializer.h:101
Definition: initializer.h:199
virtual void InitWeight(NDArray *arr)
Definition: initializer.h:102
Definition: initializer.h:156
Definition: initializer.h:248
RandType
Definition: initializer.h:193
Zero()
Definition: initializer.h:127
static void SampleUniform(mx_float begin, mx_float end, NDArray *out)
Sample uniform distribution for each elements of out.
Bilinear()
Definition: initializer.h:177
virtual void InitBilinear(NDArray *arr)
Definition: initializer.h:85
Normal(float mu, float sigma)
Definition: initializer.h:158
Constant(float value)
Definition: initializer.h:116
virtual void InitDefault(NDArray *arr)
Definition: initializer.h:111
float magnitude
Definition: initializer.h:202
std::vector< mx_uint > GetShape() const
virtual void operator()(const std::string &name, NDArray *arr)
Definition: initializer.h:52
static void SampleGaussian(mx_float mu, mx_float sigma, NDArray *out)
Sample gaussian distribution for each elements of out.
void operator()(const std::string &name, NDArray *arr) override
Definition: initializer.h:207
void operator()(const std::string &name, NDArray *arr) override
Definition: initializer.h:118
Definition: initializer.h:39
virtual void InitQuantizedBias(NDArray *arr)
Definition: initializer.h:108