MCPcopy Create free account
hub / github.com/BVLC/caffe / FilterNet

Method FilterNet

src/caffe/net.cpp:259–286  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

257
258template <typename Dtype>
259void Net<Dtype>::FilterNet(const NetParameter& param,
260 NetParameter* param_filtered) {
261 NetState net_state(param.state());
262 param_filtered->CopyFrom(param);
263 param_filtered->clear_layer();
264 for (int i = 0; i < param.layer_size(); ++i) {
265 const LayerParameter& layer_param = param.layer(i);
266 const string& layer_name = layer_param.name();
267 CHECK(layer_param.include_size() == 0 || layer_param.exclude_size() == 0)
268 << "Specify either include rules or exclude rules; not both.";
269 // If no include rules are specified, the layer is included by default and
270 // only excluded if it meets one of the exclude rules.
271 bool layer_included = (layer_param.include_size() == 0);
272 for (int j = 0; layer_included && j < layer_param.exclude_size(); ++j) {
273 if (StateMeetsRule(net_state, layer_param.exclude(j), layer_name)) {
274 layer_included = false;
275 }
276 }
277 for (int j = 0; !layer_included && j < layer_param.include_size(); ++j) {
278 if (StateMeetsRule(net_state, layer_param.include(j), layer_name)) {
279 layer_included = true;
280 }
281 }
282 if (layer_included) {
283 param_filtered->add_layer()->CopyFrom(layer_param);
284 }
285 }
286}
287
288template <typename Dtype>
289bool Net<Dtype>::StateMeetsRule(const NetState& state,

Callers

nothing calls this directly

Calls 1

CopyFromMethod · 0.80

Tested by

no test coverage detected