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

Method Init

rtpose_wrapper/src/caffe/net.cpp:49–284  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47
48template <typename Dtype>
49void Net<Dtype>::Init(const NetParameter& in_param) {
50 CHECK(Caffe::root_solver() || root_net_)
51 << "root_net_ needs to be set for all non-root solvers";
52 // Set phase from the state.
53 phase_ = in_param.state().phase();
54 // Filter layers based on their include/exclude rules and
55 // the current NetState.
56 NetParameter filtered_param;
57 FilterNet(in_param, &filtered_param);
58 LOG_IF(INFO, Caffe::root_solver())
59 << "Initializing net from parameters: " << std::endl
60 << filtered_param.DebugString();
61 // Create a copy of filtered_param with splits added where necessary.
62 NetParameter param;
63 InsertSplits(filtered_param, &param);
64 // Basically, build all the layers and set up their connections.
65 name_ = param.name();
66 map<string, int> blob_name_to_idx;
67 set<string> available_blobs;
68 memory_used_ = 0;
69 // For each layer, set up its input and output
70 bottom_vecs_.resize(param.layer_size());
71 top_vecs_.resize(param.layer_size());
72 bottom_id_vecs_.resize(param.layer_size());
73 param_id_vecs_.resize(param.layer_size());
74 top_id_vecs_.resize(param.layer_size());
75 bottom_need_backward_.resize(param.layer_size());
76 for (int layer_id = 0; layer_id < param.layer_size(); ++layer_id) {
77 // For non-root solvers, whether this layer is shared from root_net_.
78 bool share_from_root = !Caffe::root_solver()
79 && root_net_->layers_[layer_id]->ShareInParallel();
80 // Inherit phase from net if unset.
81 if (!param.layer(layer_id).has_phase()) {
82 param.mutable_layer(layer_id)->set_phase(phase_);
83 }
84 // Setup layer.
85 const LayerParameter& layer_param = param.layer(layer_id);
86 if (layer_param.propagate_down_size() > 0) {
87 CHECK_EQ(layer_param.propagate_down_size(),
88 layer_param.bottom_size())
89 << "propagate_down param must be specified "
90 << "either 0 or bottom_size times ";
91 }
92 if (share_from_root) {
93 LOG(INFO) << "Sharing layer " << layer_param.name() << " from root net";
94 layers_.push_back(root_net_->layers_[layer_id]);
95 layers_[layer_id]->SetShared(true);
96 } else {
97 layers_.push_back(LayerRegistry<Dtype>::CreateLayer(layer_param));
98 }
99 layer_names_.push_back(layer_param.name());
100 LOG_IF(INFO, Caffe::root_solver())
101 << "Creating Layer " << layer_param.name();
102 bool need_backward = false;
103
104 // Figure out this layer's input and output
105 for (int bottom_id = 0; bottom_id < layer_param.bottom_size();
106 ++bottom_id) {

Callers

nothing calls this directly

Calls 15

InsertSplitsFunction · 0.85
phaseMethod · 0.80
SetSharedMethod · 0.80
ReshapeLikeMethod · 0.80
shape_stringMethod · 0.80
lossMethod · 0.80
countMethod · 0.80
resizeMethod · 0.45
ShareInParallelMethod · 0.45
typeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected