自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wsy的浮生

学习记录

  • 博客(49)
  • 收藏
  • 关注

原创 linux内核互斥锁

内核互斥锁

2022-08-31 10:24:27 561 1

原创 domain socket

domain socket

2022-08-12 12:43:15 187

转载 802.1x(dot1x)

802.1x学习

2022-08-04 09:54:08 844

转载 yolov3(v4)

转载:yolov3(yolov4)原理对比改进创新 YoLoV3原理详解 Yolo的整个网络,吸取了Resnet、Densenet、FPN的精髓,可以说是融合了目标检测当前业界最有效的全部技巧。 一、backbone主网络 1、升级为Darknet-53 yolov3的ba

2021-08-03 15:54:38 355

转载 梯度下降优化

转载:深度学习–优化入门二 在这篇文章中,我们看看另一个困扰神经网络训练的问题,即病态曲率。 虽然局部最小值和鞍点可以阻止我们的训练,但是病态曲率可以使训练减慢到机器学习从业者可能认为搜索已经收敛到次优极小值的程度。让我们深入了解病理曲率是什么。 病态曲率 考虑以下损失轮廓。                   &

2021-07-06 23:07:01 352

原创 Opencv之泛洪处理

泛洪处理(水漫金山?)函数原型:cv2.floodFill(img,mask,seed,newvalue(BGR),(loDiff1,loDiff2,loDiff3),(upDiff1,upDiff2,upDiff3),flag)img:为待使用泛洪算法的图像mask:为掩码层,使用掩码可以规定是在哪个区域使用该算法,如果是对于完整图像都要使用,则掩码层大小为原图行数+2,列数+2.是一个二维的0矩阵,边缘一圈会在使用算法是置为1。而只有对于掩码层上对应为0的位置才能泛洪,所以掩码层初始化为0矩阵,

2021-06-27 15:45:53 196

转载 OpenCv-filter2D()函数

转载:opencv学习之图像卷积运算函数filter2D()对于使用掩模板矩阵(kernel)计算每个像素值,结合函数filter2D()函数,其定义如下:CV_EXPORTS_W void filter2D( InputArray src, OutputArray dst, int ddepth,InputArray kernel, Point anchor=Point(-1,-1),double delta=0, int borderType=BORDER_DEFAULT );其官方指导文件对

2021-06-25 22:20:47 252

转载 机器学习:聚类算法

转载:各种聚类算法的介绍和比较 最近项目用到聚类算法,将其系统的总结一下。 一、简要介绍 1、聚类概念 聚类就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一

2021-06-03 16:49:06 764

转载 卷积神经网络

转载:卷积神经网络——输入层、卷积层、激活函数、池化层、全连接层 卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT(输入层)-CONV(卷积层)-RELU(激活函数)-POOL(池化层)-FC(全连接层) 卷积层 用它来进行特征提取,如下:

2021-06-01 16:44:04 139

转载 算法:线性回归

转载:机器学习算法详解  回归问题:主要用于预测数值型数据,典型的回归例子:数据拟合曲线。   一、线性回归   (1)线性回归的定义:   线性回归需要一个线性模型,属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数是否足够拟合训练集数据,然后挑选出最好的线性函数。 需要注意两点: A.因为是线性回归,所以学习到的函数为线性函数,即直线函数; B.因为是单变量,因此只有一个x;(这

2021-06-01 16:18:34 344

转载 机器学习入门

转载:从机器学习谈起 作者:计算机的潜意识  在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。  在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢?  我并不直接回答这个问题前。相反,我想请大家看两张图,下图是图一:&

2021-06-01 15:34:51 112

原创 深度学习:dropout

  深度学习模型常常使⽤丢弃法(dropout) 来应对过拟合问题。                  图一  如上图所示,输⼊个数为4,隐藏单元个数为5,且隐藏单元hi(i = 1…5)的计算表达式为:这⾥ϕ是激活函数, x1,x2,x3, x4是输⼊,隐藏单元i的权重参数为w1i,…, w4i,偏差参数为bi。  当对该隐藏层使⽤丢弃法时,该层的隐藏单元将有⼀定概率被丢弃掉。设丢弃概率为p,那么有p的概率hi会被清零,有1 − p的概率hi会除以1 − p做拉伸。丢弃概率是丢弃法的超参数。具

2021-05-30 16:09:49 94

转载 小批量随机梯度下降

小批量随机梯度下降——mini-batch stochastic gradient descent算法:先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch) B ,然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘积作为模型参数在本次迭代的减小量。以线性回归为例,模型的参数将做如下迭代:在上式中, |B| 代表每个

2021-05-29 21:27:41 171

转载 交叉熵损失函数

转载:交叉熵损失函数详解信息量的大小与信息发生的概率成反比。概率越大,信息量越小。概率越小,信息量越大。设某一事件发生的概率为P(x),其信息量表示为:其中 I ( x )表示信息量,这里 log表示以e为底的自然对数。信息熵信息熵也被称为熵,用来表示所有信息量的期望。期望是试验中每次可能结果的概率乘以其结果的总和。所以信息量的熵可表示为:(这里的 X 是一个离散型随机变量)使用明天的天气概率来计算其信息熵:对于0-1分布的问题,由于其结果只用两种情况,是或不是,设某一件事情发生

2021-05-28 21:29:23 250

转载 softmax回归

原文链接:softmax回归-《动手学深度学习》在一类情景中,模型输出可以是一个像图像类别这样的离散值。对于这样的离散值预测问题,我们可以使用诸如softmax回归在内的分类模型。和线性回归不同,softmax回归的输出单元从一个变成了多个,且引入了softmax运算使输出更适合离散值的预测和训练。本节以softmax回归模型为例,介绍神经网络中的分类模型。1.分类问题让我们考虑一个简单的图像分类问题,其输入图像的高和宽均为2像素,且色彩为灰度。这样每个像素值都可以用一个标量表示。我们将图像中的4像素

2021-05-28 20:48:39 285

转载 L1正则化和L2正则化

转载:为什么L1正则化导致稀疏解 假设只有一个参数为w,损失函数为L(w),分别加上L1正则项和L2正则项后有: 假设L(w)在0处的倒数为d0,即 则可以推导使用L1正则和L2正则时的导数。 引入L2正则项,在0处的导数 引入L1正则项,在0处的导数 引入L2正则时,代价函数在0处的导数仍是d0,无变化。而引入L1正则后,代价函数在0处的导数有一个突变。从d0+λ到d0−λ,若d0+λ和d0−λ异号,则在0处会是一个极小值点。因此,优化时,很可能优化到该极小值点上,即w=0处。 这里只解

2021-05-28 11:23:32 53

转载 深度学习:权重衰减

转载:深度学习优化策略L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。 L2正则化与权重衰减系数 L2正则化就是在代价函数后面再加上一个正则化项: 其中C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2 1/211经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整为1

2021-05-28 10:25:30 193

转载 稀疏矩阵概念

转载:稀疏矩阵概念及简单实现稀疏矩阵:在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。 特性: 1.稀疏矩阵其非零元素的个数远远小于零元素的个数,而且这些非零元素的分布也没有规律。 2.稀疏因子是用于描述稀疏矩阵的非零元素的比例情况。设一个n*m的稀疏矩阵A中有t个非零元素,则稀疏因子δδ的计算公式如下:δ=tn∗mδ=tn∗

2021-05-27 22:33:39 1797 1

转载 深度学习:梯度消失和梯度爆炸的解决方法

转载:梯度爆炸、消失原因及解决方法深度学习:梯度消失与爆炸如何确定是否出现梯度爆炸?如: 模型无法从训练数据中获得更新(如低损失)。模型不稳定,导致更新过程中的损失出现显著变化。训练过程中,模型损失变成 NaN。1. 重新设计网络模型        梯度爆炸可以通过重新设计层数更少的网络来解决。使用更小的批尺寸对网络训练也有好处。另外也许是学习率过大导致的问题,减小学习率。 2. 使用 ReLU 激活函数

2021-05-27 19:50:51 7853

转载 深度学习:梯度消失与梯度爆炸

转载:[梯度消失和梯度爆炸的原因](https://blog.csdn.net/junjun150013652/article/details/81274958) 当我们需要解决一个非常复杂的问题,例如在高分辨率图像中检测数百种类型的对象,我们可能需要训练一个非常深的DNN,可能需要几十层或者上百层,每层包含数百个神经元,通过成千上万个连接进行连接,我们会遇到以下问题: 首先,梯度消失或梯度爆炸 其次,训练缓慢

2021-05-27 16:43:04 257

转载 深度学习网络:LeNet

转载:LeNet详解        LeNet-5是一个较简单的卷积神经网络。下图显示了其结构:输入的二维图像,先经过两次卷积层到池化层,再经过全连接层,最后使用softmax分类作为输出层。关于CNN参见:https://blog.csdn.net/qq_42570457/article/details/81458077       &n

2021-05-27 16:06:58 79

转载 孪生神经网络

转载:详解Siamese网络摘要Siamese网络用途,原理,如何训练? 背景 在人脸识别中,存在所谓的one-shot问题。举例来说,就是对公司员工进行人脸识别,每个员工只给你一张照片(训练集样本少),并且员工会离职、入职(每次变动都要重新训练模型)。有这样的问题存在,就没办法直接训练模型来解决这样的分类问题了。 为了解决one-shot问题,我们会训练一个模型来输出给定两张图像的相似度,所以模型学习得到的是similarity函数。 哪些模型能通过学习得到similarity函数呢?Sia

2021-04-19 16:32:32 224

原创 深度学习(链接)-持续更新

Siamese network 孪生神经网络https://blog.csdn.net/ybdesire/article/details/84072339

2021-02-21 00:31:23 69

原创 python中setdefault()函数在计数中的应用

对字符串中元素出现的次数通常可以通过collections模块中的counter()来实现。但是也可以通过setdefault()函数来实现。setdefault():用于字典查找键值。语法:dict.setdefault(key, default=None)key为查找的键,default为查不到时,系统自动在字典里生成的与key对应的值。如果存在该键值对,则返回对应的值,否则返回default的参数利用此函数计数方法如下: need = {} for c in

2021-02-14 19:12:38 341

原创 Leetcode做题记录-532.数组中的k-diff数对

利用python中集合的性质来解题。值得注意的一点是pytho中的集合可以进行与运算,但是数组是不支持这种操作的。class Solution: def findPairs(self, nums: List[int], k: int) -> int: #利用python的集合的性质 if k < 0: return 0 #如果k值等于零,找出例如(1,1)、(2,2)...这样的对数 if k ==

2021-02-07 22:22:21 110

原创 Leetcode做题记录-209.长度最小的子数组

题目描述:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组来源:力扣(LeetCode)枚举的方法时间复杂度为O(n^2)双指针滑窗时间复杂度为O(n)class Solution: def minSubArrayLen(self, targe

2021-02-06 23:52:36 43

原创 Leetcode做题记录-349.两个数组的交集

将两个数组进行排序,再使用双指针,遍历两个数组,遇到相等的,将元素值添加到要返回的数组中,如果不相等,则将元素值较小的那一个的指针向右移动,直到有一个指针超出它指向的数组的长度。最后,使用集合set()的性质实现去重。class Solution: def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]: # 集合求交集,偷懒的解法 #return (set(nums1)

2021-01-30 22:26:51 63

原创 链表

链表的节点节点:每个节点有两个部分,左边部分称为值域,用来存放用户数据;右边部分称为指针域,用来存放指向下一个元素的指针。head:head节点永远指向第一个节点tail:tail永远指向最后一个节点None:链表中最后一个节点的指针域为None值题目1:86. 分隔链表:给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。来源:力扣(LeetCode)链接:https://leetco

2021-01-28 17:17:15 129 1

原创 Leetcode做题记录-16.最接近的三数之和

题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum-closest与三数之和(https://blog.csdn.net/weixin_44894740/article/details/112381447)类似,本题同样可以使用双指针的方式来解题。外

2021-01-28 16:09:54 62

原创 Leetcode做题记录-3.无重复的最长子字符串

一次遍历。如果当前的字符i不存在于tep字符串中,则将其添加到tep的末尾。如果存在,则找出i字符i在tep中的位置,然后将tep的内容更新为这个位置之后的字符串(用到的也是双指针的思想,只是其中一个指针是跳跃的),同时将字符i添加到i新的tep的末尾。每次更新tep的内容,都要比较其长度的变化。class Solution: def lengthOfLongestSubstring(self, s: str) -> int: ans = '' tep = '

2021-01-24 17:55:14 77 2

原创 Leetcode做题记录-217. 存在重复元素

题目描述:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。来源:leetcode(力扣)class Solution: def containsDuplicate(self, nums: List[int]) -> bool: ''' 解1: return len(nums) != len(set(nums))

2021-01-22 19:48:43 41

原创 Leetcode做题记录-260. 只出现一次的数字 III

题目描述:给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。示例 :输入: [1,2,1,3,2,5]输出: [3,5]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-number-iii利用python中自带的Counter函数,对给定的的数组进行记数。class Solution: def singleNumber(self, nums: List[i

2021-01-22 19:27:09 28

原创 Leetcode做题记录-66. 加一

题目描述:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/plus-one意思相当于给定一个数,然后加一求结果,只是题目是以数组的形式给出的。class Solution: def plusOne(self, digits: List[int]) -

2021-01-18 20:06:43 39

原创 Leetcode做题记录-219. 存在重复元素 II

题目描述:给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/contains-duplicate-ii字典键值对的方式来判断class Solution: def containsNearbyDuplicate(self, nums: List[int], k: int)

2021-01-17 19:10:04 78

原创 Leetcode做题记录-724. 寻找数组的中心索引

题目描述:给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-pivot-index一次遍历,设数组的和 s = sum(nums),左边和 ls 为0,则右边

2021-01-17 16:19:31 58

原创 Leetcode做题记录-122. 买卖股票的最佳时机 II

题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii动态规划,解题思路详见代码注释。class Solution: def maxProfi

2021-01-13 21:37:57 65

原创 Leetcode做题记录-283. 移动零

题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroesclass Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not ret

2021-01-13 10:16:41 45

原创 Leetcode做题记录-4. 寻找两个正序数组的中位数

题目描述:给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays根据进阶要求的时间复杂度为O(log(m+n)),考虑用二分法,思路见代码注释。class Solution: def findM

2021-01-13 09:51:21 48

原创 Leetcode做题记录-665. 非递减数列

题目:给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中所有的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/non-decreasing-array计数,当nums[i] > nums[i+1]的时候,加一,如果此变量的值大于1,

2021-01-12 19:54:38 63 1

原创 Leetcode做题记录-1013. 将数组分成和相等的三个部分

题:给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i+1 < j 且满足 A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1] 就可以将数组三等分。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/partition-array-

2021-01-12 14:25:47 50

空空如也

空空如也

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

TA关注的人

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