Yet-Another-EfficientDet-Pytorch

PyTorch 版本的 EfficientDet
授权协议 LGPL
开发语言 Python
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 国产
投 递 者 澹台新知
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

去年 11 月份,谷歌大脑提出兼顾准确率和模型效率的新型目标检测器 EfficientDet,实现了新的 SOTA 结果。

Yet-Another-EfficientDet-Pytorch 是具有 SOTA 实时性能的官方 EfficientDet 的 pytorch 重新实现。该版本的性能接近原版,但速度是官方 TensorFlow 实现的近 26 倍!

性能

Pretrained weights and benchmark

coefficient pth_download GPU Mem(MB) FPS Extreme FPS (Batchsize 32) mAP 0.5:0.95(this repo) mAP 0.5:0.95(paper)
D0 efficientdet-d0.pth 1049 36.20 163.14 32.6 33.8
D1 efficientdet-d1.pth 1159 29.69 53.82 38.2 39.6
D2 efficientdet-d2.pth 1321 26.50 40.43 41.5 43.0
D3 efficientdet-d3.pth 1647 22.73 - 44.9 45.8
D4 efficientdet-d4.pth 1903 14.75 - 48.1 49.4
D5 efficientdet-d5.pth 2255 7.11 - 49.5 50.7
D6 efficientdet-d6.pth 2985 5.30 - 50.1 51.7
D7 efficientdet-d7.pth 3819 3.73 - 50.7 52.2

Speed Test

coefficient Time FPS Ratio
Official D0 (tf postprocess) 0.713s 1.40 1X
Official D0 (numpy postprocess) 0.477s 2.09 1.49X
Yet-Another-EfficientDet-D0 0.028s 36.20 25.86X
  • 链接: https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch. features, regressions, classifications, anchors = model(imgs) 第一个输出features, 代入第二,三,四个输出相关的函数中,相当于第二阶网络, 得到第二,三,四个输出 regressions= self

  • 参考资料 Example for One of the differentiated Tensors appears to not have been used in the graph - #3 by Sudarshan_VB - autograd - PyTorch Forums allow_unused=True - 知乎 pytorch 踩坑记录_kdh的专栏-CSDN博客 python

  • 需要先把Tensor放入到GPU中,然后再设置Tensor.requires_grad=True。 from torch import optim weights = torch.rand(2,1,128,416) weights.requires_grad = True weights = weights.cuda() optimizer = optim.Adam([weights], lr=

  • net.apply(fn: Callable[[ForwardRef(‘Module’)], NoneType]) -> ~T 介绍:Pytorch 中的 model.apply(fn) 会递归地将函数 fn 应用到父模块的每个子模块以及model这个父模块自身。通常用于初始化模型的参数。 参数:fn (:class:`Module` -> None)->将应用于每个子模块的函数 返回:Modul

  • Components Embeddings class Embeddings(nn.Module): def __init__(self, vocab_size, embedding_dim): """ vocab_size: 词表大小 embedding_dim: 词嵌入维度 """ super().__init__() # lut : loo

  • 文章阅读 Automatic differentiation in PyTorch 主要内容 Pytorch是一个深度学习框架,提供了高性能的环境以及容易使用的自动微分模块,并能在不同设备上运行 Pytorch基于的一些项目 Lua Torch Chainer HIPS Autograd Pytorch的所基于项目的两个特性 动态,define-by-run execution 在静态图中,计算图

  • 原题链接:Problem - D - Codeforces 题意:给定一个长度为n的数组,给定m个独立询问。每个询问包含[l, r],要求每次在[l, r]范围内选择若干个奇数长度的连续区间使得这段区间内所有值变成区间异或和,求最少操作次数使得[l, r]内所有元素的值变为0。 思路: 以下结论按序号依次判断输出 一、 首先,若该区间的异或和不为0,则输出-1。 解释:因为我们只能选择长度为奇数的

  • pytorch pretrained model two methods method 1 比较大小 self._model = models.__dict__[args.arch](pretrained = False, num_classes = args.classes,

  • optimizer = torch.optim.Adam(model.parameters(), lr=args.learning_rate) 实现Adam算法。 论文 Adam: A Method for Stochastic Optimization 参数: params (iterable) – 待优化参数的iterable或者是定义了参数组的dict lr (float, 可选) – 学

  • torch.optim优化算法理解之optim.Adam() torch.AdamW优化算法+超级收敛

  • 详细错误信息如下: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! 大意是“预期所有张量处于相同的设备上,但是发现至少在两种设备上存在张量。”。 也就是说有一些张量被放到了CPU,有一些张量被放在了GPU上,导致异常出现。建议是排查一下代码,是否在做GPU

  • 报错原因. 定义张量时类型为 C P U \rm CPU CPU,将其 r e q u i r e s _ g r a d \rm requires\_grad requires_grad 设置为 T r u e \rm True True 后执行 . c u d a ( ) \rm .cuda() .cuda() 操作,报如题所示错误。 opt.requires_grad = True opt

  • 在使用nn.CrossEntropyLoss损失函数时,它要求传入的target必须是1D,像这样:[1,2,3,4,5],这样[[1],[2],[3]]是不行的!! 解决方法: loss = self.loss_func(pred, y.squeeze(1).long()) 同时,使用CrossEntropyLoss时,要求第一个参数为网络输出值,FloatTensor类型,第二个参数为目标值

 相关资料
  • Yet Another Forum 是一个 .NET 开发的论坛系统

  • I created this plugin because I was not happy with any of the other ones. This plugin will give you simple, clean autocomplete functionality on the selected text box. Here's the code: HTML File: <form

  • Yet-Another-Bench-Script Here's an attempt to create yet another damn Linux server benchmarking script. Logo design by Dian Pratama This script isn't an attempt to be a golden standard. It's just yet

  • drop down menu with filter capability. the user can type several chars and the list will be automatically filtered showing only those that contain the typed chars. page in spanish

  • Yet another jQuery time picker plugin. Google 上兜了一圈,没找到中意的时间选择(Time Picker)插件,于是自己写了一个。timepicker 是一个弹出式的对话框,分为上下两个部分,上半部分是可以分别设定时分秒的计数器,下半部分提供一些常用的时间选项,比如“Now”,“Noon”,“8 p.m.”等。通过聚焦(focus)到相应的 input

  • 实现了可以在屏幕中间向上展开和向下展开视图的功能,并且可以在展开的视图中加入列表。类似于iOS桌面的文件夹。 改编自 Jonathan的 Spring Board Folders事例(http://code4app.com/ios/Spring-Board-Folders/4f6d8e7f6803fa3064000002)。 [Code4App.com]