自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 torch 多进程训练(详细例程)

PyTorch多节点训练可参考PyTorch分布式官方文档和PyTorch分布式程序;Pytorch 多节点之间的通信函数,包括 Scatter Gatter Reduce All-Reduce Broadcast All-Gather最小示例代码:import osimport torchimport torch.distributed as distfrom torch.multiprocessing import Process"""Blocking point-to-point c

2021-01-17 14:06:07 4201

原创 Python 多进程

文章目录多进程开启单一进程开启进程池多线程完整的实例代码多进程开启单一进程主要是通过from multiprocessing import Process启动进程任务,其接口参数为:group:进程所属组,基本不用target:表示调用对象, 为可调用对象(func)args:表示调用对象的位置参数元组,args = (i,) 传入一定是 tuple 格式,即便是单个参数name:别名kwargs:表示调用对象的字典。创建完process对象以后,并用其**start()**方法启动进

2021-01-17 10:38:59 196

原创 c++ 个人汇总

function函数std::function 是一种通用、多态的函数封装,它的实例可以对任何可以调用的目标实体进行存储、复制和调用操作,它也是对 C++中现有的可调用实体的一种类型安全的包裹(相对来说,函数指针的调用不是类型安全的),简而言之,std::function 就是函数的容器#include <functional>#include <iostream>using namespace std;int foo(int x, int y){ return

2020-08-09 14:44:09 182

原创 概率 期望 方差

随机变量(Random Variable)X是一个映射,把随机试验的结果与实数建立起了一一对应的关系。而期望与方差是随机变量的两个重要的数字特这。期望(Expectation, or expected value)是度量一个随机变量取值的集中位置或平均水平的最基本的数字特征;方差(Variance)是表示随机变量取值的分散性的一个数字特征。 方差越大,说明随机变量的取值分布越不均匀,变化性越强;方差越小,说明随机变量的取值越趋近于均值,即期望值。...

2020-08-05 21:20:55 3946

原创 435无重叠区间

文章目录贪心算法435 无重叠区间方法1 暴力解法2 动态规划贪心算法什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多的条件(贪心选择性质),但是效率比动态规划要高。暴力解法需要指数级时间,因为需要处理很多重复计算过程动态优化(带备忘录的暴力解法),可以避免计算重复子问题,将复杂度降为 多项式级别 O(nlogn)贪心算法,如果满足贪心...

2020-08-05 19:35:34 173

原创 c++ 优先队列 仿函数

定义:priority_queue<Type, Container, Functional>Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional 就是比较的方式。当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大顶堆。一般是://升序队列,小顶堆priority_queue <i

2020-07-26 21:38:37 1126

原创 Git忽略规则 (.gitignore配置解析)

在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。简单来说一个场景:在你使用git add .的时候,遇到了把你不想提交的文件也添加到了缓存中去的情况,比如项目的本地配置信息,git为我们提供了一个.gitignore文件只要在这个文件中申明那些文件你不希望添加到git中去,这样当你使用git add .的时候这些文件就会被自动忽略掉。首先,在你的 (Git项目) 工作区新建一个名称为.gitignore的文件。

2020-06-16 10:10:46 862

原创 Python:Rtree 安转和使用

文章目录InstallLinuxMac示例索引属性ItemInstallLinuxLinux在安装python库Rtree时, pip install Rtree,会提示未定义符号,因为电脑缺少必要的C库。参考这个网页的步骤:http://toblerity.org/rtree/install.html#nix先下载对应的libspatialindex安装包,下载地址:http://libspatialindex.github.io/spatialindex-src-1.9.3.tar.gz (

2020-06-07 22:32:42 4103

原创 Linux 安转 Rtree

Linux在安装python库Rtree时, pip install Rtree,会提示未定义符号,因为电脑缺少必要的C库。参考这个网页的步骤:http://toblerity.org/rtree/install.html#nix先下载对应的libspatialindex安装包,下载地址:http://libspatialindex.github.io/spatialindex-src-1.9.3.tar.gz (md5),解压后进入对应文件夹,依次执行mkdir buildcd build c

2020-06-07 16:02:49 518

原创 c++ 随机数 计时(运行时间)

文章目录记录算法运行时间随机数记录算法运行时间clock() (推荐使用) 精确到毫秒级示例代码#include <ctime>void tst_time(){ for (int i=0;i<10;i++){ int n=pow(10,i); long sum = 0; clock_t s = clock(); for(int i=0;i<n;i++){ sum += i;

2020-05-25 10:06:20 1302

原创 macOS Vscode 调试C++ 不能正确显示STL容器的值(size==0)

文章目录mac上配置vs code方案一 使用Code Runner方案二task.jsonlaunch.jsonmacOS 调试C++ 不能正确显示STL容器的值mac上配置vs code方案一 使用Code Runner安装Code Runner插件,然后在设置中配置Exectuor Map/setting.json文件,配置如下可以在插件中找到Runner插件,然后点击 右下角的设置->扩展设置->Exectuor Map->setting.json 中找到相关配置{

2020-05-24 16:19:59 2730

原创 numpy 常见函数

文章目录np.nonzero(a)np.where() 两种用法np.nonzero(a)返回一个元组tuple,包含a中所有不为零元素的索引;tuple中每个元素为一个array对象,索引值数组的每一个array均是从一个维度上来描述其索引值。比如,如果a是一个三维数组,则索引值数组有三个array,第一个array从第一维度来描述索引值;第二个array从第二维度来描述索引值,第三个array从第三个维度描述索引值; (array([0, 0, 1, 1, 2]), array([0, 1,

2020-05-16 22:33:29 161

原创 python(numpy) 实现神经网络训练 (卷积 全连接 池化)

cnn_numpy使用numpy实现神经网络,在mnist上进行训练、测试目前包括已下算子:卷积Conv2D(name="conv2",in_channels= 6, out_channels= 12,kernel_size=3,stride=1,padding=1)全连接 FCFC(name="full1",in_channels=28*28, out_channels= 5...

2020-04-18 17:17:29 1746

原创 多尺度目标识别(FPN金字塔)的发展历程

引言识别不同尺寸目标一直是目标检测的难点,尤其是小目标!而特征金字塔一直是解决多尺度目标检测的一个重要的点!现在深度学习目标检测的图像/特征金字塔解决思路有下面几种:a) 图像金字塔主要使用不同尺度的图片(resize)进行训练,可以在数据集层面扩充不同尺度的目标,从而使网络更好的学习到不同尺度目标的信息,提高检测准确率,问题:需要大量的时间、空间去进行训练;a) 无特殊操...

2020-04-18 16:25:20 2283

原创 股票类型题

dp[n][0/1]表示第n持有和不持有的利益,每天都有两个状态;转移方程1.今天不持有 可能是 今天刚卖出 或者 之前就不持有(保持状态)dp[i][0] = max(dp[i-1][1]+prices[i],dp[i-1][0]);2.今天持有股票 可能是 保持之前持有的状态 或者 今天刚买入 ,因为只能交易一次,所以今天买入直接去-prices[i]即可dp[i][1]...

2020-04-11 19:49:05 175

原创 322. 零钱兑换

思路回溯 超时做这种题,一般先画出递归树,辅助我们理解过程,可以看到分支中存在很多重复计算,为我们优化提供了方向;void dfs(vector<int>& coins, int amount,int& res,int ans){ if(amount == 0){ res = min(res,ans); ...

2020-04-11 15:27:40 106

原创 数据归一化(特征处理) 以及 各种归一化(BN-LN-GN-IN)的实现

概述归一化:1. 把数据变成(0,1)或者(1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。2. 把有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权。归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。标准化:在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上...

2020-04-10 14:38:43 5159

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

写在前面:神经网络为什么需要激活函数:如果不使用激活函数的话,网络整体(conv、pool、fc)是线性函数,线性函数无论叠加多少层,都是线性的,只是斜率和截距不同,叠加网络对解决实际问题没有多大帮助;而神经网络解决的问题大部分是非线性的,引入激活函数,是在神经网络中引入非线性,强化网络的学习能力。所以激活函数的最大特点就是非线性。梯度消失、爆炸反向传播算法计算误差项时每一层都要乘以本层...

2020-04-09 23:28:27 1959

原创 目标检测 样本不平衡

YOLO和SSD可以算one-stage算法里的佼佼者,加上R-CNN系列算法,这几种算法可以说是目标检测领域非常经典的算法了。这几种算法在提出之后经过数次改进,都得到了很高的精确度,但是one-stage的算法总是稍逊two-stage算法一筹,在Focal Loss这篇论文中中,作者认为one-stage精确度不如two-stage是因为下面的原因:正负样本比例极度不平衡。由于one-s...

2020-04-09 16:47:32 2762 1

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

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

2020-04-06 21:46:58 305

原创 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 // 容量#最佳子集为 [2,1,2] 12+10+15 = 37暴力递归对每个物品,都有选择/不选...

2020-04-06 01:24:46 615

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

864. 获取所有钥匙的最短路径给定一个二维网格 grid。"."代表一个空房间, "#"代表一堵墙, "@"是起点,("a", "b", ...)代表钥匙,("A", "B", ...)代表锁。我们从起点开始出发,一次移动是指向四个基本方向之一行走一个单位空间。我们不能在网格外面行走,也无法穿过一堵墙。如果途经一个钥匙,我们就把它捡起来。除非我们手里有对应的钥匙,否则无法通过锁。假设 K ...

2020-04-04 20:45:02 415

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

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

2020-04-04 11:50:06 2321

原创 leetcode 接雨水I II

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

2020-03-26 21:36:50 118

原创 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] 则左边一定有序 4 5 6 7 4_l 5 6 7 0_mid对有序部分的首尾元素进行判断,...

2020-03-19 15:11:26 76

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

文章目录概览SGD (Stochastic gradient descent)MomentumNAG(Nesterov accelerated gradient)AdaGradRMSPro AdadeltaAdam概览梯度下降算法from .adadelta import Adadelta # noqa: F401from .adagrad import Adagrad # no...

2020-03-19 13:56:07 3669

原创 LeetCode_String

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

2020-03-09 17:19:06 114

原创 拓扑排序

应用拓扑排序常用来确定一个依赖关系集中,事物发生的顺序。例如,在日常工作中,可能会将项目拆分成A、B、C、D四个子部分来完成,但A依赖于B和D,C依赖于D。为了计算这个项目进行的顺序,可对这个关系集进行拓扑排序,得出一个线性的序列。有向无环图(DAG)拓扑排序是基于有向无环图而言的Directed Acyclic Graph,如果一个有向图的任意顶点都无法通过一些有向边回到自身,那么称这个...

2020-03-07 13:46:27 104

原创 并查集相关问题

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

2020-03-06 17:38:24 246

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

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

2020-03-05 01:34:26 465

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

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

2020-03-04 14:27:53 177

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

**C++**在使用STL时,经常混淆的几个数据结构,map,hash Map,unordered_map事实上,三个容器,有着比较大的区别.Map内部数据的组织,基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。所以复杂度为 O(LogN)Hash map基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多...

2020-03-02 10:39:35 1846

原创 c++ 堆排序

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

2020-03-01 17:50:00 1578

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

插入排序插入排序的核心思想是 构建有序序列, 对于未排序数据,在已排序序列中 从后向前扫描,找到对应的位置并插入,这样慢慢 构建有序序列;交换法移动法代码实现: 选取首元素为有序序列,取有序序列后一个元素作为 插入对象, 在 有序序列中 从后向前 扫描, 找到对应的 插入位置// 在插入时采用交换法 (对比的同时 进行交换)// 1 4 5 3 --> 1 4 3 ...

2020-03-01 17:16:33 124

原创 快速排序 归并排序

思想通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。partition函数分割函数,快排的核心,思想就是在数组中找一个数作为中间值,把数组中比它小的放左边,大的放右边。这个函数有两种写法,单指针版和双指针版。核心思想: 每次都取数组的第一个元素作为比较标准(哨兵元素),凡是大于这个哨...

2020-03-01 14:44:09 133

原创 c+ pair用法

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

2020-03-01 14:14:02 514

原创 递归案例

文章目录24. 两两交换链表中的节点104. 二叉树的最大深度110. 平衡二叉树101. 对称二叉树226. 翻转二叉树617. 合并二叉树83. 删除排序链表中的重复元素24. 两两交换链表中的节点给定 1->2->3->4, 你应该返回 2->1->4->3.递归解法主要就是递归的三部曲:找终止条件:本题终止条件很明显,当递归到链表为空或者...

2020-02-29 14:05:12 214

原创 只出现一次的数字

文章目录136. 只出现一次的数字137. 只出现一次的数字 II260. 只出现一次的数字 III645. 错误的集合(拓展)136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?注意位 异或运算的性质:交换律:a ^ b ^ c ...

2020-02-28 09:40:06 194

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

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

2020-02-13 10:47:35 325

转载 vscode code runner配置

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

2019-12-15 11:11:48 22698 2

空空如也

空空如也

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

TA关注的人

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