自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 常见激活函数 权重初始化

写在前面: 神经网络为什么需要激活函数: 如果不使用激活函数的话,网络整体(conv、pool、fc)是线性函数,线性函数无论叠加多少层,都是线性的,只是斜率和截距不同,叠加网络对解决实际问题没有多大帮助;而神经网络解决的问题大部分是非线性的,引入激活函数,是在神经网络中引入非线性,强化网络的学习...

2020-04-09 23:28:27

阅读数 2

评论数 0

原创 目标检测 样本不平衡

YOLO和SSD可以算one-stage算法里的佼佼者,加上R-CNN系列算法,这几种算法可以说是目标检测领域非常经典的算法了。这几种算法在提出之后经过数次改进,都得到了很高的精确度,但是one-stage的算法总是稍逊two-stage算法一筹,在Focal Loss这篇论文中中,作者认为one...

2020-04-09 16:47:32

阅读数 3

评论数 0

原创 softmax交叉熵损失函数及其求导

信息量 信息熵 相对熵(KL散度) 交叉熵 Softmax 求导

2020-04-07 00:11:37

阅读数 10

评论数 0

原创 leetcode 数字翻译字符串 多方法解析

很明显可以看出来,解空间为一个多叉树,我们先画一下状态树,辅助理解: 从这个状态树中,我们就很容易看出来这其实就是 多叉树的回溯搜索,如果当前节点>=10 <=25,则继续向下搜索,否则回溯到上一个节点; 大于10是因为 可能存在0元素,如506, 只能是 5-->06 而...

2020-04-06 21:46:58

阅读数 11

评论数 0

原创 0-1背包问题全解析

0-1背包问题 给定n个重量为w1/w2/w3.../wn,价值为v1/v2/v3.../vn的物品,容量为C的背包,求这个背包可以装下的价值最高的子集,每个物品只能使用一次 w = {2,1,3,2} //重量 v = {12,10,20,15} // 价值 C = 5 // 容量 ...

2020-04-06 01:24:46

阅读数 9

评论数 0

原创 leetcode.864 获取所有钥匙的最短路径

864. 获取所有钥匙的最短路径 给定一个二维网格 grid。"."代表一个空房间, "#"代表一堵墙, "@"是起点,("a", "b", ...)代表钥匙,("A", &qu...

2020-04-04 20:45:02

阅读数 11

评论数 0

原创 牛客OJ输入输出训练 C++

文章目录A+B(7)字符串排序1字符串排序3 A+B(7) #include <iostream> #include <string> #include <sstream> using namespace std; int main(){ s...

2020-04-04 11:50:06

阅读数 9

评论数 0

原创 leetcode 接雨水I II

双指针 根据木桶原理,储水量由最短边决定 我们使用两个指针,分别向左向右扫描,保存左右边的最高高度 如果height[l] < height[r] 即右边高度高,则储水量由左边高度确定,反之相反 class Solution { public: int trap(vector&l...

2020-03-26 21:36:50

阅读数 18

评论数 0

原创 33. 搜索旋转排序数组

33. 搜索旋转排序数组 二分法 将数组一分为二,则一定有 一部分是有序的,一部分是无序的 4 5 6 7 0 1 2 如果nums[r] > nums[mid] 则右边一定有序 0 1 2 (7_mid 0 1 2_r) 如果 nums[l] < nums[mid] 则...

2020-03-19 15:11:26

阅读数 9

评论数 0

原创 常用优化器(Adam SGD)算法

文章目录概览SGD (Stochastic gradient descent)MomentumNAG(Nesterov accelerated gradient)AdaGradRMSPro AdadeltaAdam 概览 梯度下降算法 from .adadelta import Adadel...

2020-03-19 13:56:07

阅读数 38

评论数 0

原创 LeetCode_String

文章目录541 翻转字符串II557 翻转字符串中的单词 III383. 赎金信14. 最长公共前缀17. 电话号码的字母组合二进制手表 541 翻转字符串II 给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所...

2020-03-09 17:19:06

阅读数 15

评论数 0

原创 拓扑排序

应用 拓扑排序常用来确定一个依赖关系集中,事物发生的顺序。例如,在日常工作中,可能会将项目拆分成A、B、C、D四个子部分来完成,但A依赖于B和D,C依赖于D。为了计算这个项目进行的顺序,可对这个关系集进行拓扑排序,得出一个线性的序列。 有向无环图(DAG) 拓扑排序是基于有向无环图而言的 Dire...

2020-03-07 13:46:27

阅读数 19

评论数 0

原创 并查集相关问题

文章目录128. 最长连续序列1319. 连通网络的操作次数 128. 最长连续序列 // hard 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, ...

2020-03-06 17:38:24

阅读数 37

评论数 0

原创 c++ 并查集实现 优化

定义 并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询两种操作的一种数据结构 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 并查集有两个基本操作: Find: 查找元素所属子集...

2020-03-05 01:34:26

阅读数 37

评论数 0

原创 子集、全排列、组合 问题模式 回溯类型题解

文章目录78. 子集90 子集II77 组合46 全排列47 全排列II39 组合总和40 组合总和II 78. 子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 输入: nums = [1,2,3] 输出: [[],[1],[...

2020-03-04 14:27:53

阅读数 32

评论数 0

原创 HashMap O(1) 复杂度的分析

**C++**在使用STL时,经常混淆的几个数据结构,map,hash Map,unordered_map事实上,三个容器,有着比较大的区别. Map 内部数据的组织,基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。 所以复杂度为 O(LogN) ...

2020-03-02 10:39:35

阅读数 39

评论数 0

原创 c++ 堆排序

堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 图解堆排序 堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换...

2020-03-01 17:50:00

阅读数 25

评论数 0

原创 c++ 插入、希尔排序

插入排序 插入排序的核心思想是 构建有序序列, 对于未排序数据,在已排序序列中 从后向前扫描,找到对应的位置并插入,这样慢慢 构建有序序列; 交换法 移动法 代码实现: 选取首元素为有序序列,取有序序列后一个元素作为 插入对象, 在 有序序列中 从后向前 扫描, 找到对应的 插入位置 ...

2020-03-01 17:16:33

阅读数 50

评论数 0

原创 快速排序 归并排序

思想 通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。 partition函数 分割函数,快排的核心,思想就是在数组中找一个数作为中间值,把数组中比它小的放左边,大的放右边。这个函数有两种写法...

2020-03-01 14:44:09

阅读数 34

评论数 0

原创 c+ pair用法

概述 pair是将2个数据组合成一个数据,如STL中的map就是将key和value放在一起来保存。 pair的实现是一种结构体,主要的两个成员变量是first, second 因为是使用struct不是class,所以可以直接使用pair的成员变量。 pair是一个模板类。 类模板:templ...

2020-03-01 14:14:02

阅读数 23

评论数 0

原创 递归案例

文章目录24. 两两交换链表中的节点104. 二叉树的最大深度110. 平衡二叉树101. 对称二叉树226. 翻转二叉树617. 合并二叉树83. 删除排序链表中的重复元素 24. 两两交换链表中的节点 给定 1->2->3->4, 你应该返回 2->1->4-&g...

2020-02-29 14:05:12

阅读数 31

评论数 0

原创 只出现一次的数字

文章目录136. 只出现一次的数字137. 只出现一次的数字 II260. 只出现一次的数字 III645. 错误的集合(拓展) 136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明:你的算法应该具有线性时间复杂...

2020-02-28 09:40:06

阅读数 27

评论数 0

原创 C++构造函数 虚析构函数

1.对象初始化列表 (1)对象初始化列表出现原因: 1.1 必须这样做:如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,没有默认构造函数。这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数。 如果没有初始化列表,那么他将无法完成第一步...

2020-02-13 10:47:35

阅读数 24

评论数 0

转载 vscode code runner配置

首先说明一下,vscode 为我们提供了两种设置方式: User Settings(用户设置):全局设置,对任意一个运行的 VS Code 都会起作用。 Workspace Settings(项目设置):只对当前项目的设置。 注:Workspace Settings 会覆盖 User Set...

2019-12-15 11:11:48

阅读数 163

评论数 0

原创 grad_cam CNN可视化

第一代的CAM **CAM(class activation map)**是指输入中的什么区域能够指示CNN进行正确的识别 需要修改网络结构 添加一个gap层,进行fine_ture 网络结构分为两部分,一部分是特征提取(CNN),一部分是分类层(softmax),在特征提取的最后一层我们...

2019-12-15 11:01:42

阅读数 25

评论数 0

原创 二分法-牛顿法-求sqrt

title: 二分法 牛顿法 求sqrt comments: true categories: Algorithm tags: Algorithm C++ date: 2019-03-21 10:47:38 使用二分法 首先确定二分法查找的首尾区间,然后根据abs(mid^2-target...

2019-12-13 19:33:41

阅读数 27

评论数 0

原创 期盼效应

当我们要用到深度学习来生成图像的时候,是往往是基于一个低分辨率且具有高层语义的图像。这会使得深度学习来对这种低分辨率图像进行填充细节。一般来说,为了执行从低分辨率图像到高分辨率图像之间的转换,我们往往要进行deconvolution。简单来说,deconvolution layer可以允许模型通过...

2019-12-12 14:39:35

阅读数 15

评论数 0

原创 931. 下降路径最小和_DP

int minFallingPathSum2(vector<vector<int>>& A) { int row = A.size(); if(row == 0) return 0; if(row == 1) return A[0][0]; ...

2019-12-06 15:27:33

阅读数 22

评论数 0

原创 最小 最长 max_min系列 DP

给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。 如果你可以只使用...

2019-12-06 10:52:49

阅读数 14

评论数 0

原创 128. 最长连续序列

给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 时间复杂度为O(n),则只能用空间复杂度去换取,可以使用hash表去 找左...

2019-12-05 20:47:23

阅读数 7

评论数 0

原创 62. 不同路径_备忘录递归_DP

使用 dp[i][j] 存储走到i,j时 总可能的路径数 因为只可以向下向右走,则任意点的路径数为dp[i][j] = dp[i-1][j] + dp[i][j-1]; dp初始化最上面一排和最左面一排,因为只可以向右走和向下走,所以初始化路径数都为1,其它为0 class Solution { ...

2019-11-17 22:54:25

阅读数 15

评论数 0

原创 动态规划

思路1 直接使用一个三维度的dp数组[m][k][j], 保存第m天,操作k次,是否持有股票的最大利润,然后找最大的 max(dp[m-1][0][0],dp[m-1][1][0],dp[m-1][2][0]); 思路2 dp1[i] = max(dp[i-1], prices[i] - minv...

2019-11-15 17:40:36

阅读数 14

评论数 0

原创 C++数组初始化,

定义在函数体内的内置类型的对象(局部变量),如果没有显示初始化,则其值是未定义的,访问它是危险的int a2[10]; 如果使用static修饰(局部静态变量),则会自动初始化成默认值0 static int a4[10]; 或者手动初始化,初始化个数小于数组长度的,剩余元素会自动初始...

2019-11-15 16:53:55

阅读数 17

评论数 0

原创 BFS_DFS

给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4 输出: True 说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等...

2019-11-12 20:48:04

阅读数 16

评论数 0

原创 os

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目...

2019-10-18 14:39:51

阅读数 14

评论数 0

原创 二叉树递归

文章目录113 路径总和 II129. 求根到叶子节点数字之和124. 二叉树中的最大路径和404- 左叶子之和(easy)513. 找树左下角的值() 113 路径总和 II class Solution { public: vector<vector<int...

2019-10-16 23:14:29

阅读数 15

评论数 0

原创 优先队列和sort 的排序

Sort 默认使用less排序,从小到大排序,可以自定义排序方法 less() //从小到大排序 < grater() //从大到小排序 > less_equal() // <= gtater_equal()// >= >从大到小排序 &...

2019-10-12 18:07:13

阅读数 17

评论数 0

原创 347-前 K 个高频元素

// 利用i 这个trick,记录了最大出现的频率值,然后逐渐减少i, 直到找到第二小的频率值, 但是这个方法适用于频率值差异比较小的情况,如果频率值差异很大, 那么会无用的遍历map很多遍,而找不到对应的频率值 class Solution { public: vector<int...

2019-10-11 20:17:32

阅读数 22

评论数 0

原创 279-完全平方数

279-完全平方数 #include <iostream> #include <vector> #include <queue> using namespace std; class Solution { public: int numSquare...

2019-10-11 19:43:29

阅读数 12

评论数 0

原创 python 修饰器@

@修饰符,用在函数或类定义的前一行,一个修饰符就是一个函数,它讲被修饰的函数作为参数,传入修饰符表示的函数中,并返回被修饰后的同名函数 Python当解释器读到@的这样的修饰符之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的函数的参数,然后将返回值赋值给下一行修饰的函数对象。 /...

2019-10-10 16:12:43

阅读数 36

评论数 0

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