自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 yolox

yolox正负样本匹配

2022-08-23 11:21:51 425 1

原创 leetcode--合并链表

148. 排序链表合并单个链表,参数是一个链表头节点给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def sortList(self,

2021-08-28 14:20:06 263

原创 二叉树容易做混的几道题

101. 对称二叉树给定一个二叉树,检查它是否是镜像对称的。# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def isSymm

2021-08-25 14:14:02 257

原创 路径总和相关

核心思想就是回溯,二叉树的回溯,模板都差不多112. 路径总和根节点到叶子节点给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和 targetSum# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# sel

2021-08-24 23:30:23 163

原创 面试--交叉熵损失函数及softmax求导

在介绍交叉熵之前先介绍一些其他的概念。1、信息量:用公式-log(p(x))表示信息量的大小,p(x)表示某事件发生的概率,显然信息量与概率成反比2、信息熵:信息熵表示信息量的期望,期望的计算方法为:事件发生的概率乘以事件发生的信息量的总和,也就是I(X) = -p(x)*log(p(x))3、相对熵(KL散度):KL散度用来表示2个分布之间的差异,其公式为:KL = - p(x) * log( p(x) / q(x) )求和,展开之后就变为了 KL = 交叉熵 - 信息熵4、作用:交叉

2021-08-12 23:07:06 482

原创 面试题--小目标问题解决方法

1、数据增强,例如copy-paste2、预测时进行放大预测3、FPN融合不同尺度信息4、设置更小scale、ratio的anchor5、后处理中对于小目标设定较小的阈值6、loss上面选用iou loss及其变体7、loss上面可以给小目标更高的权重...

2021-08-12 14:31:07 196

原创 C++ malloc free 和 new delete有什么区别

1、new、delete是c++中的操作符,malloc、free是c++中的标准库函数2、new返回的是指定类型的指针,且可以自动计算申请内存的大小,malloc需要我们自己计算申请内存的大小;3、一般在调用对象时,会调用构造函数进行初始化,在对象消亡时,需要调用析构函数,malloc、free是运算符不是操作符,不在编译器的控制范围内,你不能在程序开始自动调用构造函数和程序结束自动调用析构函数参考...

2021-08-12 12:02:45 193

原创 栈和堆的区别

1、首先栈和堆有2种,一种是数据结构,一种是内存分配的方式,二者关系不大2、计算机内存分配区域:栈区:主要用来存放函数的参数值、局部变量,函数执行完毕后,内存自动释放,由系统自动分配,内存分配的效率很高,是一块连续的存储区,但是内存大小很小,一般就几M;堆区:指通过new、malloc等申请的内存区域,编译器不负责他们内存的释放,一般需要代码控制进行内存释放,一般说的“内存泄漏”就是堆区,因此new和delete、malloc和free一般是一起出现,由于是手动分配,是不连续的存储区域,内存区域较大

2021-08-12 11:29:53 965

原创 多卡bn怎么做

单卡bn: 不能在训练时只计算一个批次内的样本的均值和方差,然后通过减均值除以方差乘上缩放系数再加上偏移系数;多卡bn:多卡的时候,对于数据并行这种处理方式,如果想要同步bn,因为数据是平均放在多个gpu上面,但是模型又需要所有数据进行nomalize,常规的想法就是,首先各个gpu单独计算该gpu上的数据的均值,然后做一次同步,计算所有该批次内所有数据的全局均值,然后用全局均值去算每张卡对应的方差,然后再做一次同步,得到全局方差;但是这样多次通信会很耗时,所以为解决这个问题,提出来下面的方法:在第一次同

2021-08-02 21:46:45 656

原创 pytorch中dataset和dataloader、sampler关系

pytorch的数据加载模块主要包括dataset和dataloader、sampler,可以说是dataloader包含dataset和sampler,sampler用来生成索引,dataloader中默认的是randosampler,dataset根据生成的索引读取数据和标签,在dataset中必须要写进__getitem__、init、__len__这几个方法,__getitem__用来迭代数据,dataloader用来加载数据,其中有collect_fn这个参数,如果数据中只包含img和label就

2021-08-02 19:57:37 357

转载 excel解析

参考

2021-07-20 10:31:20 105

原创 leetcode--前缀和

560. 和为K的子数组class Solution(object): def subarraySum(self, nums, k): """ :type nums: List[int] :type k: int :rtype: int """ res = 0 hash = collections.defaultdict(int) hash[0] = 1

2021-07-19 01:08:50 94

原创 leetcode--滑动窗口

3. 无重复字符的最长子串用一个队列存储for循环的字母,如果字母在队列中,就把所有的该元素之前的元素全部pop掉,否则append进去,同时记录最长长度class Solution: def lengthOfLongestSubstring(self, s: str) -> int: queue = collections.deque() n, max_length, start, cur_length = len(s), 0, 0, 0

2021-07-19 00:26:57 167

原创 图像算法提前批面经

大华面经一面(25min)7/121、 先做个自我介绍2、 看你主要是做检测的,简单的介绍下anchor base和anchor free的区别:我从faster讲到retinanet,讲到yolo,讲到fcos,巴拉巴拉讲了一大堆3、 打断我的讲话,说下anchor base和anchor free的最主要的区别:1、anchor的选取2、正负样本的选择4、 Anchor free中对于多个点落入同一个gt,怎么选?5、 Fcos中centeness分支有什么用6、 正负样本不均衡有什么解决

2021-07-18 21:42:57 245 1

原创 关于crnn中的ctc

图文可以参考crnn就是卷积加lstm加ctc,cnn用于提取特征,lstm用于提取序列特征,ctc用来解决训练时标签对齐问题,假如没有ctc,经过lstm输出的维度为w×n×c,其中w为输入进lstm的特征图宽度,n为batch size,c为类别数,如果直接以softmax输出,我们需要为每一个时刻的序列都标注一个标签,而每一个序列在原图上会对应一个区域,这样我们会为一个图片标注w个标签,我们在标注标签的时候还需要计算每一个序列在原图对应的区域,是相当麻烦的,ctc提出了一种计算方法,引入blank,

2021-07-16 15:28:22 378

原创 回溯算法总结

46. 全排列给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案class Solution(object): def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ def backtrack(path, used): if len(path)

2021-07-02 01:08:00 174

原创 分布式训练

单GPU训练 vs 多GPU训练单GPU训练 一般代码比较简单,并且能满足我们的基本需求,通常做法是设定变量CUDA_VISIBLE_DEVICES的值为某一块GPU来Mask我们机器上的GPU设备,虽然有时当我们忘了设定该变量时程序会自动占用所有的GPU资源,但如果没有相应的代码去分配掌控GPU资源的使用的话,程序还是只会利用到第一张卡的计算资源,其他的资源则仅是占用浪费状态。多GPU训练 则可以从两个方面提升我们模型训练的上限:超过单卡显存上限的模型大小,更大的Batch Size和更快训练速

2021-07-01 19:54:40 734

原创 背包问题总结

什么是背包问题背包问题是一类经典的动态规划问题,它非常灵活。背包问题的特征: 一般有个target,求组成target的组合方式等等分类: 0-1背包问题、完全背包问题0-1背包问题:数组中的元素不能重用,外层遍历数组,内层逆序遍历target。完全背包问题:数组中的元素可以重复使用不考虑数组的顺序,外层遍历数组,内层顺序遍历target考虑数组的顺序,外层遍历target,内层遍历数组leetcode494:目标和0-1背包问题给你一个整数数组 nums 和一个整数 target

2021-06-25 22:57:35 271

原创 极大似然估计理解

极大似然估计理解: 参考简单来说就是模型已知,参数未知。解释:对于未知的一个数据分布(比方说一个班级男生的身高分布),我们想要求得这个数据分布,我们应该怎么做?首先,这个假设很简单,但是实际场景又很多,各种场景的分布异常复杂,所以我们应该假设身高分布服从一个简单的分布,不如假设其服从高斯分布,我们期望通过极大似然估计来求得分布的参数,那么我们的问题现在转换为了如何求得这个分布的参数,使得出现本班男生这种身高的概率最大。很自然的想到就是求导,求模型关于参数的导数,这个就是极大似然估计。现在做一道题,来自京

2021-06-23 20:23:02 481

原创 haster、setattr、getattr的区别

getattr():python内置函数,用来返回对象的属性class A(object): def set(self, a, b): x = a a = b b = x print (a, b) a = A()b = getattr(a, 'set')b(1, 2)#2, 1调用类里的方法,下面就调用了类A的方法set,调用后可以直接使用方法....

2021-06-22 15:39:43 363

原创 leetcode--python--hot10--437

路径总和 III给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。方法一: 双重递归——双重递归的操作需要从每个节点开始进行类似的计算,所以第一个递归用来遍历这些节点,第二个递归用来处理这些节点,进行深度优先搜索# Definition for a binary tree node.# class TreeNode(object):# def __init_

2021-06-20 20:43:47 133

原创 DBNet笔记

1、 模型结构,训练阶段:模型backbone为resnet+dcn,颈部采用标准的FPN结构,具体细节:输入图片进行下采样得到c2、c3、c4、c5,对应下采样4倍、8倍、16倍、32倍,通过FPN自底向上的方式(例如对于c5,进行上采样2倍和c4经过1x1卷积的结果进行相加,以此类推)得到p2、p3、p4、p5,然后将得到的p2、p3、p4、p5都上采样到1/4的原图大小之后进行cat,然后有2个分支,一个缩减标签分支,一个是边缘标签分支,对于缩减标签分支,首先将得到的特征图通过几个1x1卷积进行通过

2021-06-17 20:48:12 466 1

原创 leetcode--python--hot100--221

最大正方形方法一:暴力法,有很多细节注意class Solution: def maximalSquare(self, matrix: List[List[str]]) -> int: if not matrix: return 0 max_length = 0 for i in range(len(matrix)): for j in range(len(matrix[0])):

2021-06-09 00:35:13 151 2

原创 python中的装饰器

@staticmethod、@property。。遇到再更新staticmethod:对于一个类,我们想要用其中的某个函数(方法),需要首先初始化这个类,然后调用方法,例如下面:如果我们没有在foo函数加staticmethod,我们首先需要初始化一个类:a = A(),a.foo().当我们加了staticmethod,就可以直接A.foo(),更加的简洁。# 封装class A(obeject): @staticmethod # 静态方法 def foo(): # 当一个函数,既不用

2021-06-08 19:12:50 155 1

原创 leetcode--python--hot100--207

课程表你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false思路参考,代码参考f

2021-06-08 00:15:28 155

原创 python中的__call__魔法函数

总的来说__call__魔法函数将类变为了一个可调用对象。class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __call__(self, friend): print ('My name is %s...' % self.name) print ('My friend is %s.

2021-06-07 15:09:44 188

原创 leetcode--python--hot100--200

岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围class Solution(object): def numIslands(self, grid): """ :type grid: List[List[str]] :rtype: rint """

2021-06-07 00:14:13 122

原创 leetcode--python--hot00--打家劫舍

198你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。class Solution(object): def rob(self, nums): """ :type nums: List[int] :rtyp

2021-06-06 23:38:22 105

原创 leetcode--python--hot100--152

乘积最大子数组给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积class Solution(object): def maxProduct(self, nums): """ :type nums: List[int] :rtype: int """ #空间复杂度O(N) # max_dp, min_dp = [nums[0]]

2021-06-06 16:42:10 142

原创 leetcode--python--hot100--148

排序链表给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表采用归并排序的方法,要注意下细节。# Definition for singly-linked list.# class ListNode(object):# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution(object): def sortLi

2021-06-06 14:58:06 117

原创 leetcode--python--hot100--128

最长连续序列给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度注意重复元素的情况,第一种方法中用same表示元素重复的数量;方法一时间复杂度为排序的复杂度,方法二为o(n)class Solution(object): def longestConsecutive(self, nums): """ :type nums: List[int] :rtype: int """

2021-06-02 23:48:18 100

原创 leetcode--python--hot100--124

二叉树中的最大路径和路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, left=None, righ

2021-06-02 22:41:26 119

原创 leetcode--python--hot100--114

二叉树展开为链表# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def flatten(self, root: TreeNode) -

2021-06-01 22:40:51 119

原创 leetcode--python--hot100--96

不同的二叉搜索树给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数方法:动态规划,这道题很简单,注意细节,dp数组必须是n+1长度,第二个for循环中是range(1,i+1)不是range(0,i+1)class Solution(object): def numTrees(self, n): """ :type n: int :rtype: int

2021-05-27 21:10:57 106

原创 leetcode--python--hot100--85

最大矩形给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积思路: 先求每一行中每一列中1的最大数,剩下的按照84题柱状图最大面积求解class Solution(object): def maximalRectangle(self, matrix): """ :type matrix: List[List[str]] :rtype: int """

2021-05-27 14:23:01 111

原创 leetcode--python--hot100--84

柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。方法一: 暴力遍历法,暴力循环每个柱子,然后在该位置向左遍历找到第一个小于当前高度的柱子,向右找到第一个小于当前高度的柱子,计算面积。时间复杂度O(N2)class Solution: def largestRectangleArea(self, heights: List[int]) -> int: # #方法1,

2021-05-27 09:42:56 145

原创 leetcode--python--hot100--79

单词搜索给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。代码解析: backtrack用来判定对于某个以word[0]开头的board中的一个字母,剩余的是否能形成word;主函数用来遍历所有字母class Solution(object): de

2021-05-25 14:45:28 147

原创 leetcode--python--hot100--78

子集给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集方法一: 迭代,参考

2021-05-24 16:21:35 118

原创 leetcode--python--hot100--76

最小覆盖子串给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。注意: 细节很多class Solution(object): def minWindow(self, s, t): """ :type s: str :type t: str :rtype: str

2021-05-21 13:53:06 105

原创 leetcode--python--hot100--144

二叉树的前序遍历递归很简单,注意迭代法。迭代法思路:先将根节点的左节点全部压入栈中,通过一个for循环完成,然后弹出栈顶元素,没弹出一个栈顶元素,就将其赋值给root,然后将这个root再进行上面的迭代# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, left=None, right=None):# self.val = val#

2021-05-21 10:00:35 71

roslaunch uushfusudfushfus

C++中库<cstdlib>(stdlib.h)中atoll函数的使用。* atoll example */ #include <stdio.h> /* printf, fgets */ #include <stdlib.h> /* atoll */ int main () { long long int lli; char buffer[256]; printf ("Enter a long number: "); fgets (buffer, 256, stdin); lli = atoll(buffer); printf ("The value entered is %lld. Its double is %lld.\n",lli,lli*2); return 0; } Edit & Run

2019-10-18

空空如也

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

TA关注的人

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