自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(731)
  • 资源 (1)
  • 收藏
  • 关注

原创 Attention is all you need注意的点

这里是对self-Attention具体的矩阵操作,包括怎么separate head,如何进行的QK乘法等细节做了记录,以便自己以后查看。dot-product Attention其中的Xn,dmodelX^{n,d_{model}}Xn,dmodel​一般是seq序列,n为序列的长度,dmodeld_{model}dmodel​为序列的emedding维度。在self-attention中dkd_kdk​和dvd_vdv​是相等的。multi-head Attention其中的Xbs,len.

2020-10-22 17:39:05 666

原创 FCOS 计算loss源码解读

FCOS loss计算源码解读最近在看FCOS论文总觉得不够具体,特此调试了源代码解读源代码以供自己以后查看。其中有很多技巧如果不是读作者源码是很难想到的。包含一下内容:如何根据原始数据的box坐标生成loss函数需要的box样式如何根据大小不同box的分配不同level的特征图"""This file contains specific functions for computi...

2020-01-13 18:29:07 2499 1

原创 动态卷积论文复现

微软最新文章Dynamic Convolution: Attention over Convolution Kernels中动态卷积的复现。class DYconv(nn.Module): def __init__(self, inchannel,outchannel ,kernel_size,stride,reduction=4,K=4,t=30): super(DY...

2020-01-03 15:08:25 2048 2

原创 FCOS加入ASFF的Attention机制

FCOS加入ASFF加权结构将FCOS中fpn.py替换为下面代码即可。# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.import torchimport torch.nn.functional as Ffrom torch import nnclass ASFF(nn.Module):...

2020-01-03 15:06:08 3785 25

原创 EfficientNet和EfficientDet总结

EfficientDet使用EfficientNet作为backbone,EfficientNet共有9个stage,其中stage2到stage8可以提取特征图,但是EfficientDet使用了stage4到stage8,共5层特征图进行融合。如下图所示,EfficientDet的结构如下,使用了stage4~stage8提取也就是P3到P7提取特征图,下图所示是EfficientDet ...

2019-12-10 15:17:41 4968 6

原创 经典算法题思路整理

数组

2019-11-09 17:09:41 2506

原创 常用Linux命令记录

U盘挂载Git使用frp自动启动pip使用阿里源:pip install --user -i https://mirrors.aliyun.com/pypi/simple 软件包名字查看sessoin:tmux ls连接tmux session:tmux attach-session -t session的ID查看显卡占用:watch -n 0.5 nvidia-smi...

2019-05-09 16:16:21 431

原创 Leetcode 662. 二叉树最大宽度

Description给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间的长度。示例 1:输入: 1 / \ 3 2 / \ \ 5 3 9 输出: 4解释: 最大值

2021-08-09 16:30:33 242

原创 常用知识点

AUCAUC计算,实现,含义AUC是ROC下的面积,对采样不敏感,优化目标是提高真正例率,降低假阳性(让模型更加的保守)PR曲线和ROC曲线在在样本不均衡的情况下表现有较大差异,即当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。举个例子有个测试数据集 1 1 2 2 2 2,其中已经知道1为正样本,2为负样本。假设模型对于负样本预测的假阳率=FP/(FP+TN),可以明显看到分子FP来自2 2 2 2之中,分母(FP+TN)也来自2 2 2 2中,如果将负样本扩大一倍变成2 2 2

2021-08-03 22:04:01 198

原创 Intend Classification Engine

Data & Code链接: https://pan.baidu.com/s/19WEMuPRQVP4yRMO6xJeLPg 提取码: uehm 复制这段内容后打开百度网盘手机App,操作更方便哦文件结构:.├── train_test_data├── newest_train_with_norm├── newest_validation_with_norm├── DNN_multi_gpu_v4.py├── label_dict.json├──LoadData_TfidfFeat

2021-02-08 17:02:40 314

原创 LeetCode 389. 找不同 (异或)

Description给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例 1:输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。示例 2:输入:s = "", t = "y"输出:"y"示例 3:输入:s = "a", t = "aa"输出:"a"示例 4:输入:s = "ae", t = "aea"输出:"a"来源:力扣

2020-12-18 10:29:08 199

原创 860. 柠檬水找零 (模拟)

Description在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取 3 张 5

2020-12-11 10:32:07 172

原创 LeetCode 842. 将数组拆分成斐波那契序列 (回溯)

Description给定一个数字字符串 S,比如 S = “123456579”,我们可以将它分成斐波那契式的序列 [123, 456, 579]。形式上,斐波那契式序列是一个非负整数列表 F,且满足:0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型);F.length >= 3;对于所有的0 <= i < F.length - 2,都有 F[i] + F[i+1] = F[i+2] 成立。另外,请注意,将字符串拆分成

2020-12-09 11:15:53 173

原创 204. 计数质数 (素数筛法)

Description统计所有小于非负整数 n 的质数的数量。示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-primes著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Solution 素数筛法class

2020-12-03 10:18:06 209

原创 LeetCode 164. 最大间距 (桶排序)

Description给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例 2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。说明:你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。请尝试在线性时间复杂度和空间复杂度的条

2020-11-26 11:12:43 195

原创 LeetCode 222. 完全二叉树的节点个数

Description给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例:输入: 1 / \ 2 3 / \ /4 5 6输出: 6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-complet

2020-11-24 11:38:16 179

原创 LeetCode 452. 用最少数量的箭引爆气球(区间贪心)

Description在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气

2020-11-23 16:01:37 191

原创 LeetCode 48. 旋转图像/旋转矩阵

Description给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11], [ 2,

2020-11-17 10:53:24 335

原创 LeetCode 1030. 距离顺序排列矩阵单元格

Description给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2) 之间的距离是曼哈顿距离,|r1 - r2| + |c1 - c2|。(你可以按任何满足此条件的顺序返回答案。)示例 1:输入:R

2020-11-17 10:30:18 190

原创 LeetCode 406. 根据身高重建队列

Description假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com

2020-11-16 16:45:15 132

原创 LeetCode 1356. 根据数字二进制下 1 的数目排序(Python自定义排序)

Description给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。示例 1:输入:arr = [0,1,2,3,4,5,6,7,8]输出:[0,1,2,4,8,3,5,6,7]解释:[0] 是唯一一个有 0 个 1 的数。[1,2,4,8] 都有 1 个 1 。[3,5,6] 有 2 个 1 。[7] 有 3 个 1 。按照 1 的个数排序得

2020-11-07 16:35:20 258

原创 LeetCode 1024. 视频拼接 (合并区间贪心)

Description你将会获得一系列视频片段,这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。视频片段 clips[i] 都用区间进行表示:开始于 clips[i][0] 并于 clips[i][1] 结束。我们甚至可以对这些片段自由地再剪辑,例如片段 [0, 7] 可以剪切成 [0, 1] + [1, 3] + [3, 7] 三部分。我们需要将这些片段进行再剪辑,并将剪辑后的内容拼接成覆盖整个运动过程的片段([0, T])。返回所需片段的最小数目,如果无法完成

2020-10-24 15:33:03 3188 1

原创 Python自定义排序

还是不习惯python的key方法,习惯了C++的cmp函数,这里需要用到cmp_to_key的方法即可。C++中x[0] < y[0]即可升序,这里是x[0] - y[0]from functools import cmp_to_keya = [[0,1],[0,2],[4,5],[2,3]]def cmp(x,y): if x[0] == y[0]: # 第一个元素相同 return x[1] - y[1]# 那就按照第二个元素升序 return x[0] -

2020-10-24 14:57:32 291

原创 LeetCode 116. 填充每个节点的下一个右侧节点指针

Description给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。来源:力扣(LeetCode)链接:https://leetcode

2020-10-15 11:34:03 119

原创 LeetCode 89. 格雷编码

Description格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。格雷编码序列必须以 0 开头。示例 1:输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列。00 - 010 - 211 - 301 - 1

2020-10-12 13:19:04 1206

原创 01背包和完全背包代码区别

仅仅在于更新当前dp[i][j]时上一次状态的来源,一个是从上一行dp[i-1]更新dp[i][j],另一个是从当前行dp[i]更新dp[i][j]:01背包:dp[i][j] = dp[i-1][j] or dp[i-1][j-nums[i]]完全背包:dp[i][j] = dp[i-1][j] or dp[i][j-nums[i]]具体题目见01背包、完全背包。...

2020-10-11 12:26:41 442

原创 LeetCode 43. 字符串相乘

Description给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/multiply-strings著作权归领扣网络所有。商业转载请联

2020-10-08 16:37:24 178

原创 LeetCode 106. 从中序与后序遍历序列构造二叉树

Description根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-inor

2020-09-25 10:03:41 138

原创 LeetCode 169. 多数元素 (布尔投票法)

Description给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/majority-element著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处

2020-09-21 10:49:55 269

原创 LeetCode 93. 复原IP地址

Description给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效的 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效的 IP 地址。示例 1:输入:s = "25525511135"输出:["255.25

2020-09-20 11:07:33 186

原创 LeetCode 129. 求根到叶子节点数字之和

Description给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节点路径 1->3 代表数字 13.因此,数字总和 = 12

2020-09-20 10:29:26 208

原创 LeetCode 404. 左叶子之和

Description计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sum-of-left-leaves著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Solution本质就是一个前序遍历。class Solution:

2020-09-19 10:54:33 356

原创 LeetCode 54. 螺旋矩阵 (模拟)

Description给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]来源:力扣(LeetCode

2020-09-18 21:31:46 186

原创 LeetCode 56. 合并区间

Description给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: intervals = [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。来源:力扣(LeetCode)链接:http

2020-09-18 16:41:09 134

原创 LeetCode 143. 重排链表

Description给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.来源:力扣(LeetCode)

2020-09-17 16:49:59 174

原创 LeetCode 518. 零钱兑换 II

Description给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。示例 1:输入: amount = 5, coins = [1, 2, 5]输出: 4解释: 有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1示例 2:输入: amount = 3, coins = [2]输出: 0解释: 只用面额2的硬币不能凑成总金额3。示例 3:输入: amount = 10, coins

2020-09-16 15:39:02 176

原创 LeetCode 226. 翻转二叉树

Description翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/invert-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Solution本质就是一

2020-09-16 10:24:18 109

原创 LeetCode 958. 二叉树的完全性检验

Description给定一个二叉树,确定它是否是一个完全二叉树。百度百科中对完全二叉树的定义如下:若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~ 2h 个节点。)示例 1:输入:[1,2,3,4,5,6]输出:true解释:最后一层前的每一层都是满的(即,结点值为 {1} 和 {2,3} 的两层),且最后一层中的所有结点({4,5,6})都尽可能地向左。

2020-09-15 20:57:46 183

原创 LeetCode 437. 路径总和 III

Description给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3 / \ \ 3

2020-09-15 20:20:23 113

原创 LeetCode 300. 最长上升子序列

Description给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-increasing-subsequence著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Solution定义dp[i]为考虑前 i

2020-09-15 16:44:38 114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除