MCPcopy Create free account
hub / github.com/OpenPTrack/open_ptrack_v2 / ShareTrainedLayersWith

Method ShareTrainedLayersWith

rtpose_wrapper/src/caffe/net.cpp:682–711  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

680
681template <typename Dtype>
682void Net<Dtype>::ShareTrainedLayersWith(const Net* other) {
683 int num_source_layers = other->layers().size();
684 for (int i = 0; i < num_source_layers; ++i) {
685 Layer<Dtype>* source_layer = other->layers()[i].get();
686 const string& source_layer_name = other->layer_names()[i];
687 int target_layer_id = 0;
688 while (target_layer_id != layer_names_.size() &&
689 layer_names_[target_layer_id] != source_layer_name) {
690 ++target_layer_id;
691 }
692 if (target_layer_id == layer_names_.size()) {
693 LOG(INFO) << "Ignoring source layer " << source_layer_name;
694 continue;
695 }
696 DLOG(INFO) << "Copying source layer " << source_layer_name;
697 vector<shared_ptr<Blob<Dtype> > >& target_blobs =
698 layers_[target_layer_id]->blobs();
699 CHECK_EQ(target_blobs.size(), source_layer->blobs().size())
700 << "Incompatible number of blobs for layer " << source_layer_name;
701 for (int j = 0; j < target_blobs.size(); ++j) {
702 Blob<Dtype>* source_blob = source_layer->blobs()[j].get();
703 CHECK(target_blobs[j]->shape() == source_blob->shape())
704 << "Cannot share param " << j << " weights from layer '"
705 << source_layer_name << "'; shape mismatch. Source param shape is "
706 << source_blob->shape_string() << "; target param shape is "
707 << target_blobs[j]->shape_string();
708 target_blobs[j]->ShareData(*source_blob);
709 }
710 }
711}
712
713template <typename Dtype>
714void Net<Dtype>::BackwardFrom(int start) {

Callers 1

TestMethod · 0.80

Calls 5

shapeMethod · 0.80
shape_stringMethod · 0.80
ShareDataMethod · 0.80
sizeMethod · 0.45
getMethod · 0.45

Tested by 1

TestMethod · 0.64