Обновляются ли параметры в ApplyUpdata в caffe? - PullRequest
0 голосов
/ 14 ноября 2018

ApplyUpdata в кафе показано ниже.И я получаю два вопроса:

  1. Действительно ли параметры обновляются в ApplyUpdata?backward только вычислить градиент, но ничего не сделано с параметрами?

  2. Что означает this->iter_?Если взять в качестве примера GAN обучение, как мне поступить с this->iter_, если я хочу тренировать генератор три раза, а дискриминатор тренируется только один раз, так как ApplyUpdate увеличит this->iter_ три раза для генератора, но только один раз для дискриминатора.

THX!

void SGDSolver<Dtype>::ApplyUpdate() {
  Dtype rate = GetLearningRate();
  if (this->param_.display() && this->iter_ % this->param_.display() == 0) {
    LOG_IF(INFO, Caffe::root_solver()) << "Iteration " << this->iter_
        << ", lr = " << rate;
  }
  ClipGradients();
  for (int param_id = 0; param_id < this->net_->learnable_params().size();
       ++param_id) {
    Normalize(param_id);
    Regularize(param_id);
    ComputeUpdateValue(param_id, rate);
  }
  this->net_->Update();

  // Increment the internal iter_ counter -- its value should always indicate
  // the number of times the weights have been updated.
  ++this->iter_;
}
...