Go to the documentation of this file.
26 #ifndef MXNET_CPP_INITIALIZER_H_
27 #define MXNET_CPP_INITIALIZER_H_
40 static bool StringStartWith(
const std::string& name,
const std::string& check_str) {
41 return (name.size() >= check_str.size() && name.substr(0, check_str.size()) == check_str);
43 static bool StringEndWith(
const std::string& name,
const std::string& check_str) {
44 return (name.size() >= check_str.size() &&
45 name.substr(name.size() - check_str.size(), check_str.size()) == check_str);
82 std::vector<float> weight(shape.
Size(), 0);
83 int f = std::ceil(shape[3] / 2.0);
84 float c = (2 * f - 1 - f % 2) / (2. * f);
85 for (
size_t i = 0; i < shape.
Size(); ++i) {
87 int y = (i / shape[3]) % shape[2];
88 weight[i] = (1 - std::abs(x / f - c)) * (1 - std::abs(y / f - c));
90 (*arr).SyncCopyFromCPU(weight);
109 std::default_random_engine generator;
110 std::uniform_int_distribution<int32_t> _val(-127, 127);
111 (*arr) = _val(generator);
216 float hw_scale = 1.0f;
217 if (shape.
ndim() > 2) {
218 for (
size_t i = 2; i < shape.
ndim(); ++i) {
219 hw_scale *= shape[i];
222 float fan_in = shape[1] * hw_scale, fan_out = shape[0] * hw_scale;
226 factor = (fan_in + fan_out) / 2.0;
234 float scale = std::sqrt(
magnitude / factor);
255 #endif // MXNET_CPP_INITIALIZER_H_
namespace of mxnet
Definition: api_registry.h:33
@ avg
Definition: initializer.h:198
Zero()
Definition: initializer.h:132
Bilinear()
Definition: initializer.h:181
float mu
Definition: initializer.h:176
virtual void InitZero(NDArray *arr)
Definition: initializer.h:92
static void SampleGaussian(mx_float mu, mx_float sigma, NDArray *out)
Sample gaussian distribution for each elements of out.
@ uniform
Definition: initializer.h:197
One()
Definition: initializer.h:137
Definition: initializer.h:38
virtual void InitGamma(NDArray *arr)
Definition: initializer.h:101
static bool StringEndWith(const std::string &name, const std::string &check_str)
Definition: initializer.h:43
Definition: initializer.h:246
Definition: initializer.h:179
virtual void InitWeight(NDArray *arr)
Definition: initializer.h:107
virtual void InitQuantizedWeight(NDArray *arr)
Definition: initializer.h:108
RandType
Definition: initializer.h:197
@ gaussian
Definition: initializer.h:197
void operator()(const std::string &name, NDArray *arr) override
Definition: initializer.h:122
virtual void InitBias(NDArray *arr)
Definition: initializer.h:98
enum mxnet::cpp::Xavier::RandType rand_type
Definition: initializer.h:135
NDArray interface.
Definition: ndarray.h:122
float value
Definition: initializer.h:127
float sigma
Definition: initializer.h:176
virtual void InitQuantizedBias(NDArray *arr)
Definition: initializer.h:113
static void SampleUniform(mx_float begin, mx_float end, NDArray *out)
Sample uniform distribution for each elements of out.
void operator()(const std::string &name, NDArray *arr) override
Definition: initializer.h:182
float magnitude
Definition: initializer.h:199
Normal(float mu, float sigma)
Definition: initializer.h:162
Definition: initializer.h:195
virtual void InitOne(NDArray *arr)
Definition: initializer.h:95
Definition: initializer.h:119
void operator()(const std::string &name, NDArray *arr) override
Definition: initializer.h:163
MSRAPrelu(FactorType factor_type=avg, float slope=0.25f)
Definition: initializer.h:248
Xavier(RandType rand_type=gaussian, FactorType factor_type=avg, float magnitude=3)
Definition: initializer.h:200
Definition: initializer.h:160
index_t ndim(void) const
return number of dimension of the tensor inside
Definition: shape.h:240
Constant(float value)
Definition: initializer.h:121
void operator()(const std::string &name, NDArray *arr) override
Definition: initializer.h:205
@ out
Definition: initializer.h:198
std::vector< mx_uint > GetShape() const
FactorType
Definition: initializer.h:198
dynamic shape class that can hold shape of arbirary dimension
Definition: shape.h:42
static bool StringStartWith(const std::string &name, const std::string &check_str)
Definition: initializer.h:40
virtual void InitDefault(NDArray *arr)
Definition: initializer.h:116
virtual void InitBilinear(NDArray *arr)
Definition: initializer.h:80
Definition: initializer.h:130
size_t Size(void) const
total number of elements in the tensor
Definition: shape.h:260
@ in
Definition: initializer.h:198
virtual void operator()(const std::string &name, NDArray *arr)
Definition: initializer.h:47
virtual void InitBeta(NDArray *arr)
Definition: initializer.h:104
enum mxnet::cpp::Xavier::FactorType factor_type