py-faster-rcnn之从solver文件创建solver对象,建立pythonlayer

简介: faster-rcnn在训练阶段,根据一个solver的prototxt文件创建相应的网络。仅凭一个prototxt就创建网络?其实还涉及到自定义的PythonLayer. 比如lib/rpn/anchor_target_layer.

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类,实例化它
目录
相关文章
|
3月前
|
机器学习/深度学习 Web App开发 人工智能
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》这篇论文提出了一种基于YOLOv3-Tiny的轻量级目标检测模型Micro-YOLO,通过渐进式通道剪枝和轻量级卷积层,显著减少了参数数量和计算成本,同时保持了较高的检测性能。
53 2
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
|
PyTorch 算法框架/工具
Pytorch中Trying to backward through the graph和one of the variables needed for gradient错误解决方案
Pytorch中Trying to backward through the graph和one of the variables needed for gradient错误解决方案
2284 0
Pytorch中Trying to backward through the graph和one of the variables needed for gradient错误解决方案
|
计算机视觉 索引
YOLOv5的Tricks | 【Trick14】YOLOv5的val.py脚本的解析
YOLOv5的Tricks | 【Trick14】YOLOv5的val.py脚本的解析
1420 0
YOLOv5的Tricks | 【Trick14】YOLOv5的val.py脚本的解析
|
人工智能 自然语言处理 算法
【论文精读】AAAI 2022 - OneRel Joint Entity and Relation Extraction with One Module in One Step
联合实体和关系提取是自然语言处理和知识图构建中的一项重要任务。现有的方法通常将联合提取任务分解为几个基本模块或处理步骤,以使其易于执行
251 0
|
网络虚拟化
在torch_geometric.datasets中使用Planetoid手动导入Core数据集及发生相关错误解决方案
在torch_geometric.datasets中使用Planetoid手动导入Core数据集及发生相关错误解决方案
819 1
在torch_geometric.datasets中使用Planetoid手动导入Core数据集及发生相关错误解决方案
|
机器学习/深度学习 编解码 固态存储
Single Shot MultiBox Detector论文翻译【修改】
Single Shot MultiBox Detector论文翻译【修改】
113 0
Single Shot MultiBox Detector论文翻译【修改】
|
机器学习/深度学习 数据采集 搜索推荐
training.py的代码解释
labels、test_loss_op 和 mae_ops 计算模型的性能指标。最后,我们输出当前 epoch 的训练损失、测试损失和平均绝对误差(MAE),并保存模型参数(如果 MAE 小于 0.9)。 整个代码的目的是使用协同过滤算法建立电影推荐系统的模型,训练模型并计算模型的性能指标。
124 0
|
机器学习/深度学习 存储 自然语言处理
Paddle Graph Learning (PGL)图学习之图游走类模型[系列四]
6.Paddle Graph Learning (PGL)图学习之图游走类模型[系列四]
Paddle Graph Learning (PGL)图学习之图游走类模型[系列四]
|
Python
YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
1526 0
YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
|
机器学习/深度学习 计算机视觉
YOLOv4中的tricks概念总结——Bag of freebies
YOLOv4中的tricks概念总结——Bag of freebies
403 0
YOLOv4中的tricks概念总结——Bag of freebies

热门文章

最新文章