caffe 添加 weight diff

https://github.com/happynear/caffe-windows/commit/5027e7d424923872658855aa618add3017079ee3

 

 

string gradient_norm = "layer blob norm:";
    for (int k = 0; k < this->net_->blob_names().size(); k++) {
      if (this->net_->blob_names()[k].find("Convolution") != string::npos
          || this->net_->blob_names()[k].find("InnerProduct") != string::npos
          || this->net_->blob_names()[k].find("conv") != string::npos
          || this->net_->blob_names()[k].find("fc") != string::npos
          || this->net_->blob_names()[k].find("ip") != string::npos) {
        gradient_norm += std::to_string(this->net_->blobs()[k]->asum_diff() / this->net_->blobs()[k]->count()) + " ";
      }
    }
    if (gradient_norm.size() > 20) LOG(INFO) << gradient_norm;
    string scale_layers = "scale layer:";
    for (int k = 0; k < this->net_->layers().size(); k++) {
      if (strstr(this->net_->layers()[k]->type(), "Scale") != NULL
          && this->net_->layers()[k]->blobs().size() > 0) {
        scale_layers += std::to_string(this->net_->layers()[k]->blobs()[0]->asum_data() / this->net_->layers()[k]->blobs()[0]->count()) + " ";
      }
    }
    if (scale_layers.size() > 20) LOG(INFO) << scale_layers;
    string parameter_layers = "parameter layer:";
    for (int k = 0; k < this->net_->layers().size(); k++) {
      if (strstr(this->net_->layers()[k]->type(), "Parameter") != NULL
        && this->net_->layers()[k]->blobs().size() > 0) {
        parameter_layers += std::to_string(this->net_->layers()[k]->blobs()[0]->asum_data() / this->net_->layers()[k]->blobs()[0]->count()) + " ";
      }
    }
    if (parameter_layers.size() > 20) LOG(INFO) << parameter_layers;
    string prelu_layers = "prelu slope:";
    for (int k = 0; k < this->net_->layers().size(); k++) {
      if (strstr(this->net_->layers()[k]->type(), "PReLU") != NULL
          && this->net_->layers()[k]->blobs().size() > 0) {
        prelu_layers += std::to_string(this->net_->layers()[k]->blobs()[0]->asum_data() / this->net_->layers()[k]->blobs()[0]->count()) + " ";
      }
    }
    if (prelu_layers.size() > 20) LOG(INFO) << prelu_layers;
    string weight_gradient_norm = "weight diff/data:";
    for (int k = 0; k < this->net_->layers().size(); k++) {
      if (strstr(this->net_->layers()[k]->type(), "Convolution") != NULL
          || strstr(this->net_->layers()[k]->type(), "InnerProduct") != NULL
          || strstr(this->net_->layers()[k]->type(), "InnerDistance") != NULL) {
        if (this->net_->layers()[k]->blobs().size() > 0) {
          Blob<Dtype> diff_data_ratio;
          diff_data_ratio.ReshapeLike(*this->net_->layers()[k]->blobs()[0]);
          caffe_div(this->net_->layers()[k]->blobs()[0]->count(), this->net_->layers()[k]->blobs()[0]->cpu_diff(),
                    this->net_->layers()[k]->blobs()[0]->cpu_data(), diff_data_ratio.mutable_cpu_data());
          weight_gradient_norm += std::to_string(diff_data_ratio.asum_data() / diff_data_ratio.count()) + " ";
        }
      }
    }
    if (weight_gradient_norm.size() > 20) LOG(INFO) << weight_gradient_norm;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NineDays66

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值