hb

目标检测:TTFNet: Training-Time-Friendly Network for Real-Time Object Detection

笑着哭i 提交于 2021-02-03 08:34:43
论文出发点: 当期大多数检测器很难同时取得 训练时间短、快速推理快、精度高 。 论文改进点: (1)TTFNet 采用了 light-head + single-stage + anchor-free 的设计,用以保持高速推理。 (2)TTFNet 引入一种利用高斯核对训练样本进行编码的新方法 。因为作者观察到:从注释框中编码更多的训练样本与增加批处理大小具有相似的作用, 这有助于扩大学习速率和加速训练过程 。 (3)此外,为了更好地利用信息,TTFNet 还采用了主动样本权重 。 网络分类: 第一类:依赖 heavy-head 或者 complex post-processing,可以取得较高的精度和较快的收敛速度,但会导致推理速度的降低; 第二类:简化 detection head 或者 post-processing,目的是精度高、推理快,但由于网络的简化,使其严重依赖 data-augmentation 以及 long-time schedule,导致需要较长的训练周期。 第一类通常需要12epochs, 而centernet需要14epochs. CenterNet 收敛速度慢分析:在做尺寸回归时,只关注了对象中心点的一个sample,忽略了中心点附近的sample。 缩短训练时间: 提出利用高斯核生成高质量训练样本的新方法。 (1

java线程模型

孤人 提交于 2021-01-27 22:31:42
参考: https://www.bilibili.com/video/BV1z4411q7hB?p=2 概念: 原子性、有序性、可见性、 内存屏障 1. 多cpu,多缓存寄存器, 主内存, 组成。 cpu1 cache2 main memory cpu2 cache2 2. volatile 的作用, 共享变量在不同线程间的共,保证变量操作的可见性,有序性,并不能保证原子性。 实现原理,底层汇编实现的 MESI缓存一致性的协议。 3.乱序 JVM设计乱序执行,为了提高效率,对于大部分的程序是可以顺序执行的,但很多语句并非是原子操作。机器指令的执行顺序是并行执行的。 寄存器 与 主内存的速度比是 100: 1。 乱序的原则: 1. as-if-serial 2. 不影响单线程的最终一致性。 4. 来源: oschina 链接: https://my.oschina.net/zhaolin/blog/4927845

IDEA激活教程

戏子无情 提交于 2021-01-21 02:09:23
1,下载破解补丁; https://pan.baidu.com/s/1LcXvupL00XTU-HHE1J6ynA 提取码: 8t1w 下载补丁文件 jetbrains-agent.jar 并将它放置到 idea安装目录的\bin目录下 2,点击试用; 进入idea软件界面后,点击激活窗口的“Evaluate for free”免费试用; (这里用PyCharm代替,其实都是一样的) 3,修改配置文件; 配置文件修改已经不在bin目录下直接修改,而是通过idea修改! 进入到项目界面后,点击idea最上面的菜单栏中的 “Help” -> “Edit Custom VM Options …”。 在打开的vmoptions编辑窗口末行添加:-javaagent:你idea的安装目录\jetbrains-agent.jar 修改完配置文件之后重启idea; 修改完配置文件之后重启idea; 修改完配置文件之后重启idea; 如果错误则会出现idea打不开的情况,这时候可以删除用户配置目录下的idea文件夹(能打开idea就不要删除): idea 文件夹 , 注意这个文件夹是隐藏目录! windwos:C:\Users\用户名\ macos:~/Library/Preferences/ ubuntu:~/. 4,输入激活码; JQE11SV0BR

IDEA 2019.2版本下载安装与PJ教程

怎甘沉沦 提交于 2020-12-29 08:04:24
场景 IDEA版本过低的话会导致某些IDEA插件没法安装,比如Lombok插件和EasyCode插件等。 实现 双击exe安装包 点击Next 选择安装路径,点击Next 设置桌面快捷方式,增加到右键菜单,添加文件关联和添加到环境变量,点击Next 默认并点击Install 等待安装完成 选择稍后重启,点击Finish 然后将PJ包jetbrains-agent.jar放在IDEA安装目录下的bin目录下 并在此目录下打开idea64.exe.vmoptions文件,在末尾中添加如下路径,对应刚才的jar包所在的路径 运行IDEA 启动后进行相关UI设置 点击跳过 进入到激活页面。 选择使用License server激活,输入以下地址 http://jetbrains-license-server 点击Activate。 然后新建一个Project,进入Help--About,如果提示没有激活 再点击Help-Register 然后先点击激活按钮左下角的 Remove License按钮,然后选择激活方式中的 Activation Code 方式激活,填入如下激活码并激活: MERYY2SM09

红黑树(第一篇)

守給你的承諾、 提交于 2020-12-28 01:14:50
介绍 R-B Tree全称Red-Black Tree,又名红黑树 1972年由鲁道夫.贝尔发明 一种自平衡二叉查找树 二叉查找树每个节点增加一个存储位表示节点的颜色,非黑即红 时间复杂度O(log n) 二叉查找树? 平衡二叉查找树? 二叉查找树 Binary Search Tree 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值 任意节点的左、右子树也分别为二叉查找树 没有键值相等的节点 时间复杂度O(log n)(最好的情况下) 例子 二叉查找树 退化成线性的二叉查找树,时间复杂度O(n) 平衡二叉查找树 AVL 任何一个节点的左子树与右子树都是平衡二叉查找树,且高度之差的绝对值不超过1(即平衡因子:左子树高度-右子树高度,1 or 0 or -1) 严格的平衡二叉查找树 对于查找友好,对于插入、删除不够友好,频繁破坏规则,频繁旋转以适应规则 例子 RB特性 每个节点或者黑色,或者红色 根节点是黑色 每个叶子节点(NIL)是黑色(注:此处叶子节点,指为空(NIL或NULL)的叶子节点) 如果一个节点是红色的,则它的子节点必需是黑色的 对任意节点,其到叶子节点(NIL)的每条路径都包含相同数目的黑色节点 例子 时间复杂度 定理:一棵含有n个节点的红黑树的高度至多为2log(n+1) 逆否命题

阿里云视频点播服务端API和SDK测试

旧街凉风 提交于 2020-12-13 10:24:48
一 准备工作 1 设置不转码 测试之前设置默认“不转码”,以节省开发成本。 2 找到子账户的AccessKey ID 3 给子账户添加授权 AliyunVODFullAccess 4 阅读文档 服务端API API调用示例参考: https://help.aliyun.com/document_detail/44435.html?spm=a2c4g.11186623.6.708.2c643d44SY21Hb 服务端SDK SDK将API进行了进一步的封装,使用起来更简单方便。 二 创建和初始化项目 1 创建maven项目 Group:com.atguigu Artifact:aliyun_vod 2 添加Maven依赖 <dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.3.3</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-vod</artifactId> <version>2.15.5</version> </dependency> <dependency>

VHDL编写3-8译码器

半世苍凉 提交于 2020-11-25 14:39:11
VHDL编写3-8译码器 3-8译码器是由3个输入端和8个输出端组成的译码器,实现3位二进制数转换成10进制的输出(用高低电平来表示输入输出)真值表如下: 本文用两种方法来实现译码器(case和with-select) 因此在设计时,定义3个输入端和两个8个输出端的实体(分别时case语言和with-select语言),分别设计两个结构体HA和HB,在结构体中分别实现case语言和选择信号赋值语句,最后由配置语句选择执行with-select语句。(具体代码如下) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY homework1 IS PORT(A:IN STD_LOGIC_VECTOR(2 DOWNTO 0); --输入端 LED8S1,LED8S2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --输出端(LED8S1是HA的输出,LED8S2是HB的输出) END homework1; ARCHITECTURE HA OF homework1 IS --HA实现CASE语句 BEGIN PROCESS(A) --顺序执行 BEGIN CASE A IS WHEN "000" =>LED8S1<="11111110"; WHEN "001" =>LED8S1<="11111101"; WHEN

Decode函数说明以及纵横表的转化

我只是一个虾纸丫 提交于 2020-11-22 00:24:51
Decode函数说明 含义解释: decode (字段或字段的运算,值1,值2,值3)    这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3   当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多 decode (条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)     该函数的含义如下:   IF 条件=值1 THEN     RETURN(翻译值1)   ELSIF 条件=值2 THEN     RETURN(翻译值2)     ......   ELSIF 条件=值n THEN     RETURN(翻译值n)   ELSE     RETURN(缺省值)   END IF 用法 1.比较大小 select decode( sign (a.salesprice - a.wholesalesprice), -- sign 函数大于0返回1,小于0返回-1,0返回0 0 , ' 一样 ' , ' 1 ' , ' 价格大 ' , ' -1 ' , ' 价格小 ' ), a.salesprice,a.wholesalesprice from hrip.dict_item_charge a 2.统计数量 select sum (decode(p.sexname, ' 男 ' , 1 , 0 )) 男的数量,

Linux日志查找技巧

﹥>﹥吖頭↗ 提交于 2020-11-02 05:38:30
1.查询日志中含有某个关键字的信息 cat app.log |grep 'error' 2.查询日志尾部最后10行的日志 tail -n 10 app.log 3.查询10行之后的所有日志 tail -n +10 app.log 4.查询日志文件中的头10行日志 head -n 10 app.log 5.查询日志文件除了最后10行的其他所有日志 head -n -10 app.log 6.查询日志中含有某个关键字的信息,显示出行号(在1的基础上修改) cat -n app.log |grep 'error' 7.显示102行,前10行和后10行的日志 cat -n app.log |tail -n +92|head -n 20 8.根据日期时间段查询(前提日志总必须打印日期,先通过grep确定是否有该时间点) sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' app.log 9.使用more和less命令(分页查看,使用空格翻页) cat -n app.log |grep "error" |more 10.吧日志保存到文件 cat -n app.log |grep"error" > temp.txt 示例: 日志的使用打好标记,然后cat 查找标记字看日志,显示行数,然后查看他附近的行数,或者按照时间段显示 sudo

何为内存模型(JMM)?

江枫思渺然 提交于 2020-10-28 17:33:16
前言 任何一门语言都有其语言规范,从逻辑上我们可划分为语法规范和语义规范,语法规范则是描述了如何通过相关语法编写可执行的程序,而语义规范则是指通过语法编写的程序所构造出的具体含义。语言只要具备存储(比如堆、栈),我们此时必须定义存储行为规则,这种行为规则就是内存模型。Java初始版本内存模型允许行为安全泄漏,此外,它阻止了几乎所有的单线程编译器优化操作,因此,从Java 1.5开始,引入了新的内存模型来修复这些缺陷,接下来我们来详细了解看看其内存模型到底是啥玩意,若有错误之处,还望批评指正。 内存模型(JMM) 我们知道大多数情况下编写的程序按顺序而执行,此时也是按照对应顺序存储在内存中,很显然,读取应遵循该顺序进行的最新写入,这是最原始的单核模型,随着时代的进步、技术也才随之发展,此时出现了多处理器体系结构,线程共享内存已凸显出对于并发编程的优势,但共享内存必然要使用同步机制使得内存中的数据一致,而同步机制却对系统性能产生很大影响,为了避免这种情况,通过对应策略使得存储数据一致性,当然这些策略是放宽的,如此将导致意外情况的出现,因为开发者很难推理执行程序最终结果,所以在多线程情况下我们尤其关心内存模型,但是问题随之变得复杂了起来, 内存模型定义了在实现该内存的共享内存体系结构上运行的多线程程序的所有可能结果,从本质上讲,可认为它是对可能值的规范,它允许返回对内存的读取访问