| 584 | |
| 585 | template <typename Dtype> |
| 586 | void Net<Dtype>::ForwardDebugInfo(const int layer_id) { |
| 587 | for (int top_id = 0; top_id < top_vecs_[layer_id].size(); ++top_id) { |
| 588 | const Blob<Dtype>& blob = *top_vecs_[layer_id][top_id]; |
| 589 | const string& blob_name = blob_names_[top_id_vecs_[layer_id][top_id]]; |
| 590 | const Dtype data_abs_val_mean = blob.asum_data() / blob.count(); |
| 591 | LOG_IF(INFO, Caffe::root_solver()) |
| 592 | << " [Forward] " |
| 593 | << "Layer " << layer_names_[layer_id] |
| 594 | << ", top blob " << blob_name |
| 595 | << " data: " << data_abs_val_mean; |
| 596 | } |
| 597 | for (int param_id = 0; param_id < layers_[layer_id]->blobs().size(); |
| 598 | ++param_id) { |
| 599 | const Blob<Dtype>& blob = *layers_[layer_id]->blobs()[param_id]; |
| 600 | const int net_param_id = param_id_vecs_[layer_id][param_id]; |
| 601 | const string& blob_name = param_display_names_[net_param_id]; |
| 602 | const Dtype data_abs_val_mean = blob.asum_data() / blob.count(); |
| 603 | LOG_IF(INFO, Caffe::root_solver()) |
| 604 | << " [Forward] " |
| 605 | << "Layer " << layer_names_[layer_id] |
| 606 | << ", param blob " << blob_name |
| 607 | << " data: " << data_abs_val_mean; |
| 608 | } |
| 609 | } |
| 610 | |
| 611 | template <typename Dtype> |
| 612 | void Net<Dtype>::BackwardDebugInfo(const int layer_id) { |