gpt4 book ai didi

machine-learning - 在caffe中定义新层时如何获取学习率或迭代次数

转载 作者:行者123 更新时间:2023-11-30 08:31:43 25 4
gpt4 key购买 nike

我想在迭代次数达到一定次数时更改损失层中的损失计算方法。
为了实现它,我认为我需要获取当前的学习率或迭代次数,然后我使用 if 短语来选择是否改变损失计算方法。

最佳答案

您可以在Caffe类中添加一个成员变量来保存当前的学习率或迭代次数,并在您想要的层中访问它。

例如,要获得您想要的当前迭代时间,您需要进行 3 个关键修改(为了简化):

  1. common.hpp :

      class Caffe {
    public:
    static Caffe& Get();

    ...//Some other public members

    //Returns the current iteration times
    inline static int current_iter() { return Get().cur_iter_; }
    //Sets the current iteration times
    inline static void set_cur_iter(int iter) { Get().cur_iter_ = iter; }

    protected:

    //The variable to save the current itertion times
    int cur_iter_;

    ...//Some other protected members
    }
  2. solver.cpp :

      template <typename Dtype>
    void Solver<Dtype>::Step(int iters) {

    ...

    while (iter_ < stop_iter) {
    Caffe::set_cur_iter(iter_ );
    ...//Left Operations
    }
    }
  3. 要访问当前迭代次数的位置:

      template <typename Dtype>
    void SomeLayer<Dtype>::some_func() {
    int current_iter = Caffe::current_iter();
    ...//Operations you want
    }

关于machine-learning - 在caffe中定义新层时如何获取学习率或迭代次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38369565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com