detectron2的amp和cudnn记录


一、amp混合精度

简单来说就是部分float32换成float16,加快训练推理速度,减少显存的使用。
pytorch1.6后自带amp功能。detectron2 0.3版本后新增amp训练功能。

v0.3
Features & Improvements: Support mixed precision in training (using cfg.SOLVER.AMP.ENABLED) and inference.

amp使用的是显卡里的tensor core,如果显卡没有,那就没什么效果,20系列之后显卡应该就有,具体有没有可以去查

在detectron2上并没有节省很多的显存,训练和推理时间减少较大,根据显卡和模型,输入等都有关系。

推理需要自己修改部分代码,在engine/defaults.py的class DefaultTrainer(TrainerBase):

def test(cls, cfg, model, evaluators=None):
	#进入下面这函数里修改
	results_i = inference_on_dataset(model, data_loader, evaluator,cfg)

增加如下几句代码,在evaluator.py文件的

def inference_on_dataset(model, data_loader, evaluator,cfg):
   #可以传入cfg后选择在推理时,开启或关闭amp功能
    from torch.cuda.amp import autocast
        if cfg.SOLVER.AMP.ENABLED:
            with autocast():
                outputs = model(inputs)
        else:
            outputs = model(inputs)

二、CUDNN_BENCHMARK

在输入图片的(N,C,H,W)输入不变的情况下,cudnn将自动寻找卷积最快的算法实现,加快训练和推理的速度。

# Benchmark different cudnn algorithms.
# If input images have very different sizes, this option will have large overhead
# for about 10k iterations. It usually hurts total time, but can benefit for certain models.
# If input images have the same or similar sizes, benchmark is often helpful.
_C.CUDNN_BENCHMARK = False

大概快了10%左右的速度在训练和推理上,不同显卡和参数应该会对速度有一些影响。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Detectron2是一个用于计算机视觉任务的开源软件库,它是Facebook Research团队开发的。它提供了一系列强大的工具和算法,用于目标检测、实例分割和关键点检测等任务。如果你想在本地使用Detectron2,可以按照以下步骤进行操作: 1. 首先,你需要将Detectron2库下载到本地。你可以使用以下命令将其克隆到本地: ``` git clone https://github.com/facebookresearch/detectron2.git ``` 2. 接下来,你需要安装Detectron2的依赖项。你可以使用以下命令安装所需的依赖项: ``` python -m pip install -e detectron2 ``` 3. 在安装完成后,你可能需要进行一些修改以解决一些已知的问题。根据你提供的引用内容,以下是一些可能需要修改的地方: - 在`detectron2/layers/csrc/ROIAlignRotated/ROIAlignRotated_cuda.cu`文件中,将所有的`ceil`改为`ceilf`。 - 在`detectron2/layers/csrc/deformable/deform_conv_cuda_kernel.cu`文件中,将所有的`floor`改为`floorf`。 - 在`torch/include/torch/csrc/jit/ir/ir.h`文件中,将第1347行的代码注释掉:`// static constexpr Symbol Kind = ::c10::prim::profile_optional`。 - 在`detectron2/layers/csrc/cocoeval/cocoeval.cpp`文件中,修改第487行的代码:`// localtime_r(&rawtime, &local_time); localtime_s(&local_time,&rawtime);` 完成以上步骤后,你就可以在本地使用Detectron2进行计算机视觉任务了。希望这些信息对你有所帮助!\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [深度学习 | Detectron2使用指南](https://blog.csdn.net/qq_43701912/article/details/123590274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Win10下安装Detectron2,超详细教程!](https://blog.csdn.net/zzy153/article/details/120693321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值