| 601 | |
| 602 | template <typename Dtype> |
| 603 | void Net<Dtype>::ForwardDebugInfo(const int layer_id) { |
| 604 | for (int top_id = 0; top_id < top_vecs_[layer_id].size(); ++top_id) { |
| 605 | const Blob<Dtype>& blob = *top_vecs_[layer_id][top_id]; |
| 606 | const string& blob_name = blob_names_[top_id_vecs_[layer_id][top_id]]; |
| 607 | const Dtype data_abs_val_mean = blob.asum_data() / blob.count(); |
| 608 | LOG_IF(INFO, Caffe::root_solver()) |
| 609 | << " [Forward] " |
| 610 | << "Layer " << layer_names_[layer_id] |
| 611 | << ", top blob " << blob_name |
| 612 | << " data: " << data_abs_val_mean; |
| 613 | } |
| 614 | for (int param_id = 0; param_id < layers_[layer_id]->blobs().size(); |
| 615 | ++param_id) { |
| 616 | const Blob<Dtype>& blob = *layers_[layer_id]->blobs()[param_id]; |
| 617 | const int net_param_id = param_id_vecs_[layer_id][param_id]; |
| 618 | const string& blob_name = param_display_names_[net_param_id]; |
| 619 | const Dtype data_abs_val_mean = blob.asum_data() / blob.count(); |
| 620 | LOG_IF(INFO, Caffe::root_solver()) |
| 621 | << " [Forward] " |
| 622 | << "Layer " << layer_names_[layer_id] |
| 623 | << ", param blob " << blob_name |
| 624 | << " data: " << data_abs_val_mean; |
| 625 | } |
| 626 | } |
| 627 | |
| 628 | template <typename Dtype> |
| 629 | void Net<Dtype>::BackwardDebugInfo(const int layer_id) { |