2019/8/14Faster RCNN自学记录

部署运行你感兴趣的模型镜像

win10下跑pytorch框架的Faster RCNN(https://github.com/ruotianluo/pytorch-faster-rcnn),安装git,安装教程(https://blog.youkuaiyun.com/qq_32786873/article/details/80570783)

python的某些函数

  1. append和extend(https://www.cnblogs.com/subic/p/6553187.html
  2. argmax和max(https://blog.youkuaiyun.com/weijianmeng/article/details/7073134
  3. dict(https://www.cnblogs.com/wushuaishuai/p/7678210.html
  4. zip (https://www.cnblogs.com/wushuaishuai/p/7766470.html
  5. nn.linear 线性函数(https://www.cnblogs.com/Archer-Fang/p/10645473.htmlhttps://blog.youkuaiyun.com/m0_37586991/article/details/87861418
  6. reverse list翻转(https://blog.youkuaiyun.com/gymaisyl/article/details/83785853
  7. round(https://blog.youkuaiyun.com/qq_43313588/article/details/86624840
  8. astype(https://www.cnblogs.com/fuhang/p/8045973.html
  9. permute 数据换维(https://blog.youkuaiyun.com/york1996/article/details/81876886
  10. view_as(https://blog.youkuaiyun.com/qq_37385726/article/details/81738518
  11. contiguous(https://blog.youkuaiyun.com/appleml/article/details/80143212
  12. torch.max(input,dim=?)[?](https://blog.youkuaiyun.com/Z_lbj/article/details/79766690
  13. np.stack,np.vstack和np.hstack(https://blog.youkuaiyun.com/csdn15698845876/article/details/73380803
  14. np.newaxis(https://blog.youkuaiyun.com/molu_chase/article/details/78619731
  15. 双星**是幂运算的意思
  16. meshgrid(https://blog.youkuaiyun.com/myj0513/article/details/6871482
  17. transpose(https://blog.youkuaiyun.com/u012762410/article/details/78912667
  18. numpy的ascontiguousarray(https://zhuanlan.zhihu.com/p/59767914
  19. lambda这函数真是看一次忘一次没谁了……(https://blog.youkuaiyun.com/zjuxsl/article/details/79437563
  20. numpy与torch之间的转换(https://blog.youkuaiyun.com/qq_37385726/article/details/81700817
  21. numpy.choice(https://blog.youkuaiyun.com/IAMoldpan/article/details/78707140
  22. nonzero(https://blog.youkuaiyun.com/qq_32005671/article/details/74011045
  23. numel(https://blog.youkuaiyun.com/ccbrid/article/details/86759679
  24. max(1)(https://blog.youkuaiyun.com/qq_41800366/article/details/86313052

python的一些用法

  1. property修饰器的使用(https://www.cnblogs.com/linuxchao/p/linuxchao-property.html
  2. 修饰器(https://www.jianshu.com/p/ab702e4d4ba7
  3. glob通配符(https://blog.youkuaiyun.com/dcrmg/article/details/78309469

snapshot文件的保存

  1. pth文件和pkl文件(https://www.angtk.com/question/28

看fasterRCNN的第四天

construct_graph()函数构建计算图,定义在train_val里面,self.net.create_architecture函数首先self.net是一个vgg16()网络,在network里面定义了create_architecture函数,传入的参数包括anchor的尺寸和长宽比、类别数,之后是_init_modules()函数,第一句_init_head_tail函数定义在vgg16.py里面,首先更改了vgg16中classifier部分的最后一层,因为最后一层是对于相应数据集类别个数的回归,所以没有用就移除了,之后更改vgg16中feature部分前10层的参数属性不允许其做反向传播进行梯度下降。再移除feature部分的最后一层是和最大池化层.这部分结束跳回到_init_modules()函数里,开始定义RPN的结构

首先经过一个3*3的卷积,之后分成两个支路分别做rpn_cls_score_net分类可能性的1*1卷积和rpn_bbox_pred_net边框预测的1*1卷积,对应维度分别为2和4,分类为2维是因为只做有object的分类,只区分前景和背景。这时候就是已经利用RPN训练出了proposal了,这时候要把proposal对应到原来的feature map上面,之后是roipooling,这里重新使用vgg16的classifier部分的两个全链接层,然后再分成两个分支,一个做数据集的分类,一个做边框的回归,这时候的边框回归设计到了具体的类别(之前proposal 是大致的回归,只要是前景就好,所以就用了4个)所以现在是4*21维。

第13天(https://blog.youkuaiyun.com/Mr_health/article/details/84952190

第14天(Faster R-CNN代码解读之anchor_target_layer.py - hancoder的博客 - 优快云博客

Faster R-CNN代码解读之proposal_target_layer - hancoder的博客 - 优快云博客

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

<think>好的,我现在需要帮助用户解决运行Faster R-CNN训练脚本时遇到的问题。用户提到了错误或者对用法不太清楚,所以我要详细分析可能的情况。 首先,用户提供的命令是python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_didi.py,这可能涉及到配置文件的路径是否正确。我需要检查用户是否在正确的项目目录下运行命令,比如MMDetection框架通常需要从根目录执行。如果用户在其他目录下运行,可能会找不到配置文件或依赖文件。 然后,配置文件faster_rcnn_r50_fpn_1x_didi.py是否存在?用户可能没有正确设置配置文件,或者文件路径有误。比如,如果用户的项目结构中没有configs目录,或者该目录下没有相应的配置文件,就会出错。需要建议用户确认文件路径,并检查_base_中的引用是否正确,比如是否有../_base_/models/faster_rcnn_r50_fpn.py这样的引用,这些基础文件是否存在。 接下来,用户可能缺少依赖库。MMDetection需要PyTorch、CUDA等环境。如果用户没有正确安装这些依赖,或者版本不匹配,会导致运行错误。建议用户检查requirements.txt,确保所有依赖已安装,并确认CUDA版本与PyTorch兼容。 数据集的配置也是常见的问题。用户提到的didi_detection.py可能是指自定义的数据集,需要检查数据集路径是否正确,标注文件是否存在,数据格式是否符合要求。例如,COCO格式的数据集需要特定的目录结构和json文件。 GPU资源问题也可能导致错误。如果用户没有可用的GPU,或者显存不足,训练脚本可能会崩溃。建议用户使用--gpu-id参数指定GPU,或者调整batch size以减少显存占用。 日志和错误信息是关键。用户需要查看终端输出的错误信息,或者日志文件,比如work_dirs中的日志,来定位具体问题。常见的错误包括导入错误、文件未找到、CUDA内存不足等。 另外,用户可能需要了解如何继续训练、多GPU训练或者指定工作目录。比如,使用--resume-from参数继续训练,或者--work-dir指定输出目录。多GPU训练可以通过工具如分布式训练脚本启动。 最后,建议用户参考提供的引用中的示例命令,比如引用[1]和引用[2],里面提到了类似的训练命令,可能帮助用户正确执行。同时,可以提示用户进行FPS测试,如引用[3]中的方法,来验证模型性能。 总结可能的问题点:路径错误、依赖缺失、数据集配置、GPU问题、参数使用。需要逐步引导用户检查这些方面,并提供相应的解决方法和示例命令。</think>根据引用[1][2]提供的训练命令及配置信息,运行Faster R-CNN训练脚本的正确步骤如下: ### 一、基础执行命令 ```bash # 单GPU训练 python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_didi.py --work-dir work_dirs/faster_rcnn # 多GPU训练(例如8卡) bash tools/dist_train.sh configs/faster_rcnn/faster_rcnn_r50_fpn_1x_didi.py 8 --work-dir work_dirs/faster_rcnn ``` 参数说明: - `--work-dir`指定模型和日志保存路径[^2] - 配置文件`faster_rcnn_r50_fpn_1x_didi.py`需包含正确的_base_配置链[^2] ### 二、常见问题排查 1. **路径错误** - 确认在项目根目录执行命令 - 检查配置文件中的`_base_`路径是否正确: ```python # faster_rcnn_r50_fpn_1x_didi.py _base_ = [ '../_base_/models/faster_rcnn_r50_fpn.py', # 模型结构 '../_base_/datasets/didi_detection.py', # 数据集配置 '../_base_/schedules/schedule_1x.py', # 训练策略 '../_base_/default_runtime.py' # 运行时配置 ] ``` 2. **依赖缺失** ```bash # 安装必要依赖 pip install -r requirements.txt # 确认CUDA与PyTorch版本匹配 nvidia-smi # 查看CUDA版本 ``` 3. **数据集配置** - 检查`didi_detection.py`中的路径: ```python data = dict( train=dict( img_prefix='data/didi/train/', ann_file='data/didi/annotations/train.json'), val=dict( img_prefix='data/didi/val/', ann_file='data/didi/annotations/val.json')) ``` 4. **GPU资源问题** ```bash # 指定单卡训练 python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_didi.py --gpu-id 0 # 减少batch_size防止OOM sed -i 's/samples_per_gpu=2/samples_per_gpu=1/g' configs/faster_rcnn/faster_rcnn_r50_fpn_1x_didi.py ``` ### 三、进阶用法 1. **恢复训练** ```bash python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_didi.py \ --resume-from work_dirs/faster_rcnn/latest.pth ``` 2. **性能验证** ```bash # 训练完成后测试FPS(需修改路径) python tools/analysis_tools/benchmark.py \ configs/faster_rcnn/faster_rcnn_r50_fpn_2x_coco.py \ work_dirs/faster_rcnn/epoch_12.pth \ --fuse-conv-bn ``` 引用[3]展示了基准测试的标准方法
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值