首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何选择固定的caffe值[ clipping_gradients ]

如何选择固定的caffe值[ clipping_gradients ]
EN

Stack Overflow用户
提问于 2017-04-09 12:10:27
回答 1查看 868关注 0票数 0

在caffe.proto中

代码语言:javascript
运行
复制
  // Set clip_gradients to >= 0 to clip parameter gradients to that L2 norm,
  // whenever their actual L2 norm is larger.
  optional float clip_gradients = 35 [default = -1];

我在设置clipping_gradient时遇到了麻烦,我认为它无论如何都应该是动态的,但是如果我们要选择一个固定的数字,我们应该如何选择它?caffe是否将其设置为35?什么意思??我已经尝试了一些固定的选择,但我看不出有太大的区别。我在广义上理解爆炸梯度/梯度裁剪的概念,但是我不确定我应该如何在求解器中选择一个固定的数字。

EN

回答 1

Stack Overflow用户

发布于 2017-04-12 03:14:12

您可以打印出某些迭代的平方和梯度的和,以了解clip_gradients。这可以通过以下方式完成:

代码语言:javascript
运行
复制
net_->forward();
net_->backward();
const vector<Blob<Dtype>*>& net_params = net_->learnable_params();
float sumsq_diff = 0;
for (int i = 0; i < net_params.size(); ++i) {
    sumsq_diff += net_params[i]->sumsq_diff();
}
std::cout<<"sum of gradient: "<<std::sqrt(sumsq_diff)<<"\n";
net_->update();

有关如何使用clip_gradients的详细信息,请参阅solver.cpp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43302943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档