ค้นหาการคอมมิชชันที่เพิ่มบรรทัดของรหัสเฉพาะใน Github เป็นครั้งแรก


4

ฉันต้องการที่จะหาสิ่งที่กระทำที่เพิ่มบรรทัดต่อไปนี้ของรหัสsolver.cppสำหรับห้องสมุดการเรียนรู้ลึกCaffeซึ่งเป็นโฮสต์บน Github ฉันไม่ได้เป็นผู้มีส่วนร่วมหรือมีสิทธิ์พิเศษใด ๆ ฉันจะทำอย่างไร

template <typename Dtype>
void SGDSolver<Dtype>::ClipGradients() {
  const Dtype clip_gradients = this->param_.clip_gradients();
  if (clip_gradients < 0) { return; }
  const vector<shared_ptr<Blob<Dtype> > >& net_params = this->net_->params();
  Dtype sumsq_diff = 0;
  for (int i = 0; i < net_params.size(); ++i) {
    if (this->net_->param_owners()[i] < 0) {
      sumsq_diff += net_params[i]->sumsq_diff();
    }
  }
  const Dtype l2norm_diff = std::sqrt(sumsq_diff);
  if (l2norm_diff > clip_gradients) {
    Dtype scale_factor = clip_gradients / l2norm_diff;
    LOG(INFO) << "Gradient clipping: scaling down gradients (L2 norm "
        << l2norm_diff << " > " << clip_gradients << ") "
        << "by scale factor " << scale_factor;
    for (int i = 0; i < net_params.size(); ++i) {
      if (this->net_->param_owners()[i] < 0) {
        net_params[i]->scale_diff(scale_factor);
      }
    }
  }
}

คำตอบ:


4

ก่อนอื่นคุณต้องทำการโคลนที่เก็บข้อมูลกับเครื่องของคุณ:

git clone https://github.com/BVLC/caffe.git

เพียงใช้git-blameเพื่อค้นหาว่าใครเป็นผู้กำหนดบรรทัดหนึ่ง:

git blame -L 123,123 path/to/file.cpp

หรือสำหรับช่วงของเส้นให้ใช้-L 100,150หรือคล้ายกัน คุณอาจต้องการตัวเลือก-Mที่ตรวจพบว่ามีการย้ายสาย

คุณยังสามารถใช้git-logสำหรับบันทึกการกระทำทั้งหมด:

git log -L 123,123:path/to/file.cpp
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.