| 753 | } |
| 754 | |
| 755 | void Layer::back_prop() |
| 756 | { |
| 757 | // This bit is preprocessed out since the LBANN_CALIPER macro |
| 758 | // won't help us out here. |
| 759 | #ifdef LBANN_HAS_CALIPER |
| 760 | auto const scope_name = this->get_type() + "_layer:back_prop"; |
| 761 | LBANN_CALIPER_MARK_SCOPE(scope_name.c_str()); |
| 762 | #endif |
| 763 | |
| 764 | allocate_new_gradients_(); |
| 765 | back_prop_impl_(); |
| 766 | propagate_error_signals_to_parents_(); |
| 767 | clear_prev_error_signals_(); |
| 768 | |
| 769 | // Release the now-unnecessary full weight views |
| 770 | for (size_t i = 0; i < this->num_weights(); ++i) { |
| 771 | this->get_weights(i).release_full_weights(); |
| 772 | } |
| 773 | } |
| 774 | |
| 775 | void Layer::write_proto(lbann_data::Layer& proto) const |
| 776 | { |
no test coverage detected