zoukankan      html  css  js  c++  java
  • py-faster-rcnn之从solver文件创建solver对象,建立pythonlayer

    faster-rcnn在训练阶段,根据一个solver的prototxt文件创建相应的网络。仅凭一个prototxt就创建网络?其实还涉及到自定义的PythonLayer. 比如lib/rpn/anchor_target_layer.py,一开始感觉它只定义了一个AnchorTargetLayer类但是没有使用过(grep查找找不到),仔细分析源码执行过程才发现,是因为使用了Boost.Python混编相关的技术,是在trainval.prototxt中有定义'python'类的层,并且指定到AnchorTargetLayer,而通过caffe的python接口,实例化solver成员的时候通过solver的prototxt引入trainval.prototxt,随后逐层初始化,涉及到PythonLayer的时候则调用Boost.Python代码来实例化它。

    以end2end方式的代码分析,自顶向下逐步解析。假定处于py-faster-rcnn目录。

    experiments/scripts/faster_rcnn_end2end.sh 指定了solver_prototxt
    
    tools/train_net.py 根据solver_prototxt执行训练任务
    
    lib/fast_rcnn/train.py -> train_net()函数 -> SolverWrapper类实例 -> SolverWrapper构造函数,以solver_prototxt作为参数
    
    caffe-fast-rcnn/python/caffe/_caffe.cpp -> #include的sgd_solvers.hpp 引入了SGDSolver
    
    caffe-fast-rcnn/src/caffe/solver.cpp 构造函数 -> InitTrainNet() -> 调用Net()的构造函数 -> Net()的Init()函数
    
    caffe-fast-rcnn/src/caffe/lyaer_factory.cpp及对应的hpp文件 -> layer的实例化 -> 对于自定义的PythonLayer类,实例化它
    
  • 相关阅读:
    SaveFileDialog
    在SQL Server 2008中配置文件流(FILESTREAM)
    C#中图片转二进制到存储数据库
    OpenFileDialog
    WPF中自定义只能输入数字的TextBox
    QL Server 2008新特性:FILESTREAM
    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
    winxp+Apache+Mysql+Python+Django安装配置
    django最佳实践
    Sphinx 在 windows 下安装使用
  • 原文地址:https://www.cnblogs.com/zjutzz/p/6165341.html
Copyright © 2011-2022 走看看