diff --git a/paddle/optimizer/adadelta_optimizer.h b/paddle/optimizer/adadelta_optimizer.h index 31f29f867521e30f771b7e9a3b34834974746297..e0f544a90e5aceaff326c4e76d872481d6cb6907 100644 --- a/paddle/optimizer/adadelta_optimizer.h +++ b/paddle/optimizer/adadelta_optimizer.h @@ -10,9 +10,6 @@ public: AdadeltaOptimizer( Tensor *parameter, LrPolicy *lr, double rho, double epsilon, double decay) : ParameterOptimizer(parameter, lr), - accum_gradient_(nullptr), - accum_delta_(nullptr), - update_delta_(nullptr), rho_(rho), epsilon_(epsilon), decay_(decay) { diff --git a/paddle/optimizer/adagrad_optimizer.h b/paddle/optimizer/adagrad_optimizer.h index 14a32cb683aaa8bf7553a46a24bc2d7cc899736d..ebc0fe2acc6fdcba22bd9c08925f098b156bcccb 100644 --- a/paddle/optimizer/adagrad_optimizer.h +++ b/paddle/optimizer/adagrad_optimizer.h @@ -20,6 +20,8 @@ public: if (accum_gradient_) delete accum_gradient_; } void Update(const Tensor *gradient); + const char *SerializeState(int *state_len); + void DeSerializeState(const std::string &state); private: Tensor *accum_gradient_; diff --git a/paddle/optimizer/adam_optimizer.cc b/paddle/optimizer/adam_optimizer.cc index 20cf4ef5a11cd660207c21bcba77f68f7c11897c..974039cf6dcb3d65d6aa96f7c2148e78d03af7bb 100644 --- a/paddle/optimizer/adam_optimizer.cc +++ b/paddle/optimizer/adam_optimizer.cc @@ -4,13 +4,6 @@ namespace paddle { namespace optimizer { -void AdamOptimizer::set_weight(Tensor *p) { - parameter_ = p; - size_t size = p->size(); - momentums_ = new Tensor(size); - velocitys_ = new Tensor(size); -} - void AdamOptimizer::Update(const Tensor *gradient) { num_sample_passed_ += 1; double learning_rate = lr_policy_->LearningRate(num_sample_passed_); diff --git a/paddle/optimizer/adam_optimizer.h b/paddle/optimizer/adam_optimizer.h index cb211c6d88832b2afcc3f3a78ef829661b773f2b..b8be2ca2227ea3dbee93e267affbd1fc5faddcd9 100644 --- a/paddle/optimizer/adam_optimizer.h +++ b/paddle/optimizer/adam_optimizer.h @@ -13,18 +13,19 @@ public: double epsilon, double decay) : ParameterOptimizer(parameter, lr), - momentums_(nullptr), - velocitys_(nullptr), beta_1_(beta_1), beta_2_(beta_2), epsilon_(epsilon), - decay_(decay) {} + decay_(decay) { + size_t size = p->size(); + momentums_ = new Tensor(size); + velocitys_ = new Tensor(size); + } ~AdamOptimizer() { if (momentums_) delete momentums_; if (velocitys_) delete velocitys_; } void Update(const Tensor *gradient); - void set_weight(Tensor *p); private: Tensor *momentums_; diff --git a/paddle/optimizer/serialization.h b/paddle/optimizer/serialization.h index a330dd96e93224ebba275d71eb899aadbc4549d2..18088991754096abd0bed1c2c5b77bf854be38fa 100644 --- a/paddle/optimizer/serialization.h +++ b/paddle/optimizer/serialization.h @@ -17,7 +17,7 @@ unsigned CalStateSize(const HEAD& head, const TAIL&... tail) { if (std::is_fundamental::value) { return sizeof head + CalStateSize(tail...); } else { - return sizeof(head[0] * head->size()) + CalStateSize(tail...); + return sizeof(head[0]) * head->size() + CalStateSize(tail...); } }