| 565 | |
| 566 | template <typename Dtype> |
| 567 | void Net<Dtype>::BackwardFromTo(int start, int end) { |
| 568 | CHECK_GE(end, 0); |
| 569 | CHECK_LT(start, layers_.size()); |
| 570 | for (int i = start; i >= end; --i) { |
| 571 | for (int c = 0; c < before_backward_.size(); ++c) { |
| 572 | before_backward_[c]->run(i); |
| 573 | } |
| 574 | if (layer_need_backward_[i]) { |
| 575 | layers_[i]->Backward( |
| 576 | top_vecs_[i], bottom_need_backward_[i], bottom_vecs_[i]); |
| 577 | if (debug_info_) { BackwardDebugInfo(i); } |
| 578 | } |
| 579 | for (int c = 0; c < after_backward_.size(); ++c) { |
| 580 | after_backward_[c]->run(i); |
| 581 | } |
| 582 | } |
| 583 | } |
| 584 | |
| 585 | template <typename Dtype> |
| 586 | void Net<Dtype>::ForwardDebugInfo(const int layer_id) { |