作用: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
- 对CSDN网站关于抄袭的投诉的处理建议
- Tesseract OCR训练时碰到的问题和解决方案
- VSCODE在Jetson Nano上打不上断点,无法调试python源码
- ROS2进阶:在windows10上用vs2019编译rviz2
- ROS2 ERROR: OpenGL 1.5 is not supported in GLRenderSystem::initialiseContext at C:\ci\ws\build...
- ROS2 error: can‘t find examples_rclcpp_minimal_subscriber/Release/wait_set_subscriber_library.lib
- 在windows上安装 chocolatey.1.1.0.nupkg
- Qt开发高级进阶:如何在显示时适合视窗宽度和高度(fitWidth+fitHeight)
- PySpark ERROR: Python in worker has different version 3.9 than that in driver 3.8
- cv2.imshow error: The function is not implemented. Rebuild the library with Windows...