MNN/tools/train/source/optimizer/ParameterOptimizer.cpp

52 lines
1.1 KiB
C++
Raw Normal View History

2019-12-27 22:16:57 +08:00
//
// ParameterOptimizer.cpp
// MNN
//
// Created by MNN on 2019/11/22.
// Copyright © 2018, Alibaba Group Holding Limited
//
#include "ParameterOptimizer.hpp"
namespace MNN {
namespace Train {
bool ParameterOptimizer::step(Express::VARP loss) {
mStep++;
2019-12-27 22:16:57 +08:00
auto res = this->onGetNextParameter(loss);
for (auto iter : res) {
iter.second.fix(Express::VARP::CONST);
}
for (auto iter : res) {
Express::Variable::replace(iter.first, iter.second);
}
return !res.empty();
}
int ParameterOptimizer::currentStep() {
return mStep;
}
void ParameterOptimizer::setCurrentStep(int step) {
mStep = step;
}
void ParameterOptimizer::append(const std::set<Express::VARP>& parameters) {
for (auto p : parameters) {
mParameters.insert(p);
}
this->onAppend(parameters);
}
void ParameterOptimizer::remove(const std::set<Express::VARP>& parameters) {
for (auto p : parameters) {
mParameters.erase(p);
}
this->onRemove(parameters);
}
const std::set<Express::VARP>& ParameterOptimizer::parameters() const {
return mParameters;
}
2019-12-27 22:16:57 +08:00
} // namespace Train
} // namespace MNN