作用:StateMeetsRule()中net的state是否满足NetStaterule 用构造net时的输入phase/level/stage与prototxt中各层的规则(include/exclude)比较,决定本层是否要包含在net中判断rule是否相同,分为5个判断 1. Phase: train, test, 比如train的layer不适用于test 2. Min_level:本层level不小于min_level,则满足包含条件 3. Max_level:本层leve不大于max_leve,则满足包含条件 4. Stage: stage能在NetStateRule::stage中找到,则包含本层 5. Non_stage: stages能在NetStateRule::non_stage中找到,则排除本层
解释在caffe中,所有参数结构定义在caffe.proto中,由protobuf的protoc.exe生成caffe.pb.c及caffe.pb.h,从而对数据结构结构进行管理。在使用时,网络结构往往会定义在一个.prototxt的文件中。在定义net网络结构的prototxt文件中往往会定义某层的include/exclude参数,以确定该层网络是否要包含在某些具体的结构中或排除在外。顾名思义,include表示如果在构造net时如果满足include的条件,本层就包含在net中;exclude表示在构造net时如果满足exclude条件,本层就不会包含在net中。
管理这个被读取后的include还是exclude参数的,就是caffe.proto中的NetStateRule类,类中有phase、min_level、max_level、stage、not_stage 5个参数,也就是我们所说的过滤得规则。这些过滤规则往往是在网络构造时传入的(即:构造net时的输入参数),可用如下的方法来构造一个新net:
Net::Net(const string& param_file, Phase phase, const int level, const vector* stages, const Net* root_net)
对于包含include参数的层:如果满足min_level
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?