自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

塔塔守护者的博客

渴望与心爱的人在海河边漫步

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

原创 扩增数据集

1存储

2020-12-17 11:18:49 561 1

原创 人工标注并制作分割图

1.在“ 开始”菜单中点击“Anaconda3(64bit)”,选择“ Anaconda Prompt(Anaconda3)”,进入终端,界面如下:找到labelme.exe所在文件夹D:\ProgramData\Anaconda3\envs\tf_keras\Scripts,然后在终端输入命令:人工标注用软件为:点击“Open”打开一张图片或者点击“OpenDir”打开一个图片文件夹,用" CreatePolygons"手动分割区域,如下图为分割出"sky",其余部分默认为“ B.

2020-12-14 21:27:18 739

原创 卷积神经网络

一、结构1.卷积过程:输入图片尺寸为(batchsize,l,w,channels),l表示长度,w表示宽度,channels表示通道数,batchsize为每次输入神经网络的图片张数。默认(1,6,6,1)。卷积核大小为(numbers,l1,w1,channels),l表示长度,w表示宽度,channels表示通道数,应与被卷积的特征图(输入的图片)的通道数相同,numbers表示卷积核的个数。默认(1,3,3,1)。(1)当直接对特征图进行卷积时,步长(stride)为1,符合公式,。

2020-11-04 07:42:33 572 1

原创 2020-10-24

在1024这天发条消息,为了得到1024勋章也是拼了,嘻嘻。

2020-10-24 21:44:59 85

原创 三种推导式:list,dict,set

1.列表推导式:规范式:variable = [out_exp for out_exp in input_list if out_exp == 2]multiples = [i for i in range(30) if i % 3 is 0]print(multiples)2.字典推导式:mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}mcase_frequency = {k.lower(): mcase.get(k.lower(), 0)

2020-09-05 20:29:47 101

转载 collections工具库中的一些容器

1.defaultdict#defaultdict解决使用dict最常见的问题,就是key为空的情况#方法1:在每次get之前写一个if判断if key in dict: return dict[key]else: return Nonedata = [(1, 3), (2, 1), (1, 4), (2, 5), (3, 7)]d = {}for k, v in data: if k in d: d[k].append(v) else:

2020-09-05 09:43:00 71

转载 目标检测中回归损失函数

1.IOU(Intersection over Union)优点:(1)可以反映预测检测框与真实检测框的检测效果,(2)尺度不变性。缺点:作为损失函数会出现问题:(1)如果两个框没有相交,IoU=0,loss=0,没有梯度回传,无法进行学习训练。(2)IoU无法精确的反映两者的重合度大小。#iouimport numpy as npdef iou(box1,box2,wh=False): #wh=False表示输入的box为(左上角点坐标和右下角点坐标四个值) if

2020-08-19 14:13:22 889 3

原创 关于Normalization的一些学习

1.Batch Normalization首先,我们要清楚cnn的反向传播中更新参数用到的梯度下降,是基于mini-batch SGD。mini-batch就表示有一定的batch size(>1)。实验发现当batch size<8时神经网络的输出误差会显著增大。对于Batch Normalization的应用,举例来说:一个feature map 为k*h*w大小,k表示通道数,h表示特征图的高,w表示特征图的宽,一个卷积层为m*k*f*f大小,m表示卷积核的个数,f表示卷积核的长.

2020-08-18 17:09:59 197

原创 python基础

注:object是所有类的基类,python中一切皆对象,类也是对象1.取商和余数divmod(10,3)#输出(3,1)2.次幂pow(3,2,4)#输出13.任意对象转为字符串str()4.计算字符串的表达式eval(s)5.对可迭代对象排序a = [{'name':'xiaoming','age':18,'gender':'male'},{'name':'xiaohong','age':20,'gender':'female'}]sorted(a,key=lamb.

2020-08-17 21:57:15 445

原创 pandas基础

import numpy as npimport pandas as pddf = pd.DataFrame()#排序#按索引排序df.sort_index()#按值排序df.sort_values(by='')#选择某些行或列#按切片选择:[]中可以是数字索引,为前闭后开;也可以是名称,为前闭后闭#只能用列名显示某一列,或者用范围显示某些行,不能同时选择行和列。df[]#按标签选择:用.loc,[]内只能用行或列的名称,范围为前闭后闭,可以对行或列任意选取,也可显示标...

2020-08-16 21:12:16 316

原创 python的几种设计模式

1.单例模式#第一种,重写__new__方法class Singleton(object): _instance = None def __new__(cls,*args,**kwargs): if cls._instance is None: cls._instance = object.__new__(cls,*args,**kwargs) return cls._instance if __name__

2020-08-13 10:46:44 668

原创 python的常用魔术方法、类方法、静态方法

1.当定义一个类时,在内存中会开辟出一块空间。当用类创建一个对象时,同样也会在内存中开辟出一块空间:分为三步:(1)先找内存中有没有一块空间是某类的(2)通过系统的object.__new__方法,向内存申请一块与该类一样的空间,并将该地址传给__init__中的self(3)再去该类的空间中找有没有__init__,如果没有则执行将开辟出的空间给对象名;如果有__init__,则会进入init方法执行里面的内容,然后将开辟出的空间给对象名。__init__中的属性会动态的被添加到该

2020-08-09 16:11:48 183

原创 python之协程

1.进程:类Process ;线程:类Thread ;协程:没有定义好的类,只能自己通过定义生成器完成。

2020-08-07 14:53:14 138

原创 python之多线程

1.一个进程中可以有多个线程,进程是指在内存中开辟出一块空间,线程主要做一些耗时操作。一个进程中的多个线程共享该进程的资源是指cpu调用该进程中的某一个线程,然后该线程可以用该进程的资源,并不是多个线程同时用该进程的资源。2.线程:Threading(1)状态:新建对象—start—就绪——cpu调用运行——结束,当sleep时,该线程从cpu中退出,此时称为阻塞状态,当sleep时间结束时,该线程回到就绪状态,等待cpu的调用执行。(2)线程是可以共享全局变量的(3)GIL 全局解释器锁

2020-08-07 11:18:16 150

原创 python之多进程

1.多进程对于全局变量访问,在每一个全局变量里面都放一个m变量,保证每个进程访问变量互不干扰。2.进程池:阻塞式:当一个任务被执行时,在进程池中开辟出一个进程,当该任务结束时,下一个任务才能被执行,然后在进程池中开辟出一个新的进程,原先执行完任务1的进程闲置,...在进程池中最多开辟n个进程。阻塞式无法用队列,没有回调函数。非阻塞式:进程池里开辟n个进程,将所有任务依次放在一个队列里,首先将前n个任务一起放到进程池中,每个任务由一个进程负责执行,每个进程都有自己的id,当一个任务执行结束时,它所用的

2020-08-06 21:16:36 213

原创 python之装饰器

一、闭包:1.条件:(1)外部函数中定义了内部函数(2)外部函数是有返回值(3)返回的值是:内部函数名(4)内部函数引用了外部函数的变量格式:def 外部函数(): ...... def 内部函数(): ...... return 内部函数2.闭包的作用:(1)保存返回闭包时的状态(外层函数变量)(2)由于闭包引用了外部函数的局部变量,则外部函数的局部变量没有及时释放,消耗内存。(3)闭包内部函数可以同级访问3.闭包

2020-08-06 16:17:31 103

原创 机器学习之朴素贝叶斯

一、贝叶斯公式:1.贝叶斯分类算法是统计学的一种概率分类方法,朴素贝叶斯分类是贝叶斯分类中最简单的一种,其分类原理是利用贝叶斯公式根据某特征的先验概率计算出其后验概率,然后选择具有最大后验概率的类作为该特征所属的类。朴素贝叶斯分类只做最原始、最简单的假设:所有的特征之间是统计独立的。(1)在事件B发生的情况下,事件A发生的概率:同理可得:,所以:,进而得到贝叶斯公式:(2)全概率公式:如果事件A1,A2,A3,....An构成一个完备事件且都有正概率,那么对于任意一个事件B则有:.

2020-08-06 12:33:09 225

原创 python统计分析

1.假设检验:本质上针对连续型变量基本步骤:(1)提出原假设和备择假设 (2)确定适当的检验统计量 (3)规定显著性水平(4)计算检验统计量的值 (5)做出决策单样本t 检验:(1)假设样本服从t分布,原假设为总体均值等于u0 (2)备注假设为总体均值不等于u0(3) 先计算样本均值,样本标准差为 (4)检验统计量如下:(5) 根据计算出来的P值来判断是否拒绝原假设,例如:P值大于显著性水平,则无法拒绝原假设,P值小于显著性水平,则拒绝原假设,接受备择假设,显著性水平可...

2020-08-05 22:09:53 623

原创 机器学习之决策树

1.构建决策树的算法有很多,比如:ID3、C4.5、CART,我们选择ID3。2.信息熵:熵定义为信息的期望值,在信息论与概率统计中,熵是表示随机变量不确定性的度量。熵越大,不确定性越大。3.信息增益:就是父节点的信息熵与其下所有子节点总信息熵(赋予权重)之差。4.python实战5.sklearn

2020-08-05 20:49:03 287

原创 机器学习之k-近邻算法

1.对于多维样本点,需遵循欧几里得距离:两点为:2.k-近邻算法步骤:(1)计算已知类别数据集中的点与当前点之间的距离(2)按照距离递增次序排序(3)选取与当前点距离最小的k个点(4)确定前k个点所在类别的出现频率(5)返回前k个点出现频率最高的类别作为当前点的预测类别最后,感谢菊安酱在哔站的认真讲解!...

2020-08-05 14:50:20 352

原创 数据分析应具备8种思维

首先要感谢林骥大神,他的《数据分析python实战》很实用,对我有很大帮助。1.对比思维:分为同向对比和纵向对比。同向:与同类相比;纵向:针对自身,不同时间的对比。在经济上也有同比和环比。同比:今年该时期与上一年该时期相比;环比:今年该时期与今年上一时期相比。2.细分思维:细分的维度主要包括时间、地区、渠道、产品、员工、客户等。杜邦分析法、麦肯锡的MECE分析法本质上都属于细分思想。3.溯源思维:了解详细情况4.相关思维:建立在相关分析的基础上。5.假设思维:即假设检验:一般为四步:

2020-08-03 10:02:16 669

原创 python爬虫心得(包含一些小技巧),还在更新中

1.爬虫我现在常用的两种方法:(1)手动定位所需数据的所在网址(request url),优点:直捣黄龙,一击致命。 对于静态网站:直接右键导出网页源代码,通过ctrl+F即可查询到网页中显示的所有数据。通过右键检查选择Network——All,然后查看Name中的文件对应的Preview,如果其中显示该网页中几乎所有内容(包括你所需要的数据),就查看Headers,一般请求方式(request method)为Get,所需的网址为Request URL。具体步骤:((1))impo...

2020-08-01 13:47:16 244

原创 详解python循环队列和链队列

1.循环队列:实际上为顺序表,把它认为是循环结构。如下图所示,初始时,first与rear两个指针指向同一块空间,当入队时,从first指向的位置插入值,然后rear指针后移,设M表示队列的长度,则rear=(rear+1)%M,判断队列是否已满:(rear+1)%M==first.此时,rear指向空的一块空间,这时认为队列已满,留出一块空的空间为了与队列为空时做区分;当出队时,从队首出队(即从first指针指向的空间出队),然后first指针后移,first指针每次指向队列中存在的第一个元素,而rear

2020-07-10 18:56:27 1253

原创 关于函数return返回值的一些小总结

直接用例子说会更好理解:def add(a,b): c = a + b return c1.对于上述这个函数(方法),一般设置与返回值个数相等的变量指向它,如下表示:c = add(3,4)print(c)输出:72.不设置变量指向该函数,直接打印输出,如下表示:print(add(3,4))输出:73.如果函数没有返回值,则输出None:def add(a,b): c = a + b print(add(3,4))输出:N

2020-07-09 21:46:15 725

原创 “图“,就让python和你一起愉快的玩耍吧——图的存储

1.“图”这部分分为无向图 、有向图、无向网(带权图)、有向网(带权图)四个内容。图的顺序存储:邻接矩阵的存储形式图的链式存储与顺序存储的组合:邻接表的存储形式2.图的邻接矩阵存储(1)无向图:无向图的邻接矩阵是对称的,是一个对称矩阵 顶点i的度=第i行(列)中1的个数 特别:完全图的邻接矩阵中,对角元素为0,其余为1 ...

2020-07-09 18:18:48 154

原创 您好,这盘大餐名叫:哈夫曼树与哈夫曼编码,非常delicious

饭前开胃小菜免费品尝:1.哈夫曼树是不唯一的,但是WPL是唯一的。2.list.sort( key=None, reverse=False)key可以接受一个函数,例如我们根据字符串长度来排序:a = [[1,2,3,4,5,6],[2,3,4],[5,6,7,8]]#代入x变量,实际根据len(x)比较进行升序排列a.sort(key=lambda x:len(x))print(a)上主菜了,大鱼大肉尽情享受:1.哈夫曼树#哈夫曼树class HuffmanN.

2020-07-08 09:04:31 147

原创 关于数据清洗的简单了解

1.数据分析流程:确定数据分析的目的——》获取数据——》清洗数据——》探索数据——》建模分析——》结果交流2.数据清洗流程:数据的读写——》数据的探索与描述——》数据简单处理——》重复值的处理——》缺失值的处理——》异常值的处理——》文本字符串的处理——》时间格式序列的处理,其中后面的五个部分先后顺序数据的读写:(1) pd.read_csv('文件路径')(2)pd.read_excel('文件路径') 数据的探索与描述:(1) df.info() (2) df.describe()..

2020-07-07 15:39:31 734

原创 列表查找之顺序查找和二分查找

1.顺序查找:时间复杂度为#顺序查找:def linear_search(li,val): #遍历列表li for ind,v in enumerate(li): if v==val: return ind else: return None if __name__ == "__main__": li = [1,2,3,4,5,6] a = linear_search(li,4) pri

2020-07-07 13:55:36 704

原创 python中for、while与else搭配使用

1.在Python中,for....else 表示:for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行,while....else 也是一样。li = [2,4,6,13,10,12]for data in li: if not i%2: print(data) else: breakelse: print("我爱你")输出:li = [2,4,6,13,10,1

2020-07-06 18:38:18 3074

原创 python排序算法之十兄弟

注意:排序方式:从左至右按照由小到大的顺序,即升序。十兄弟中lowB三人组,平均时间复杂度为1.冒泡排序#冒泡排序def bubble_sort(li): #最多走n-1趟 for i in range(len(li)-1): flag = False #标志位判断是否已经是有序序列 #每趟从位置0走到位置n-i-1 for j in range(len(li)-i-1): if li[j]>li[

2020-07-05 21:09:04 197

原创 理解这个口诀,三角函数诱导公式直接口算

1.口诀:奇变偶不变,符号看象限。其中,“奇变偶不变 ”的意思是:例如中,270°是90°的3倍(奇数),所以cos应变为sin,即奇变;又中,180°是90°的2倍(偶数),所以sin还是sin,即偶不变。“符号看象限”的意思是:通过公式左边的角度所落的象限决定公式右边是正还是负。例如:中,设为锐角,是第三象限角,由于第三象限角的余弦为负,则等式右边为负号。又如:,设为锐角,是第三象限角,由于第三象限角的正弦为负,则等式右边为负号。注意:只是为了记住公式,设为锐角。2.常用的诱导公式:...

2020-07-04 11:33:06 1080

原创 关于链表的算法题

1.输入一个链表,按链表值从尾到头的顺序返回一个ArrayList.class Node(): def __init__(self,item): self.item = item self.next = None class Solution(): def print_list(self,node): list1 = [] cur = node while cur:

2020-07-02 19:42:03 144

原创 关于数组的算法题

1.当数组中包含负数时,返回该数组的最大连续子序列的和。例如:[6,-3,-2,7,-15,1,2,2],其连续子序列的最大和是8(从第0个开始,到第3个为止)。子序列的长度至少为1。class Solution(): def sum_arr(self,array): sum = 0 max = 0 for data in array: #遍历数组求连续元素之和 sum += data

2020-07-02 16:00:07 106

原创 关于栈的算法题

1.题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如:序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)class Solution(): def compare(self,pushv,popv): stack =[] index = 0

2020-07-02 14:04:04 666

原创 python数据结构之栈

1.栈的特点:后入先出,实际上就是对顺序表和链表的进一步封装。栈可以用顺序表表示,也可以用链表表示。2.用顺序表构造栈:方法一:在线性表头部添加元素,并在头部取出元素,因为所有元素都要移动位置,相应的时间复杂度为O(n);方法二:在线性表尾部添加元素,并在尾部取出元素,相应的时间复杂度为O(1)。因此,选用方法二。用链表构造栈:方法一:在链表头部添加元素,并在头部取出元素,相应的时间复杂度为O(1);方法二:在链表尾部添加元素,并在尾部取出元素,因为要遍历整个链表,相应的时间复杂度为O(n)。因此,

2020-07-02 11:06:36 189

原创 python数据结构之双向链表

1.双向链表结构:2.判断是否为空,计算链表长度,遍历链表,在链表头部、尾部、任意位置插入元素,删除元素、查找元素。class Node(object): #结点类 def __init__(self,item): self.item = item self.next = None self.pre = None #单链表类class DoubleLinkList(object): def __init__(

2020-07-02 10:26:04 149

原创 python数据结构之单向循环链表

1.形式:单向循环链表的尾结点指向头结点。2.判断是否为空,计算链表长度,遍历链表,在链表头部、尾部、任意位置插入元素,删除元素、查找元素。class Node(object): #结点类 def __init__(self,item): self.item = item self.next = None #单链表类class SingleLinkList(object): def __init(self,node=None):

2020-07-02 09:15:27 109

原创 python数据结构之单向非循环链表

一、单向非循环链表1.python中的变量并不是保存真实的数据,而是保存该数据存储空间的地址。2.判断是否为空,计算链表长度,遍历链表,在链表头部、尾部、任意位置插入元素,删除元素、查找元素。class Node(object): #结点类 def __init__(self,item): self.item = item self.next = None#单链表类class SingleLinkList(object):

2020-07-01 20:09:53 89

原创 python数据结构之顺序表

1.顺序表的结构与扩充(1)结构分为一体式和分离式,一体式结构中表头信息(容量和存储个数)与存储内容是一个整体,当存储量已满还需要添加元素时,还得再申请更大的存储空间,并且表头地址也要改变。而分离式结构,表头与存储内容分离,表头信息中有一个空间专门存储指定内容的首地址,当存储量已满还需要添加元素时,只需将专门存储指定内容的首地址改了即可。如图所示为: (2)对于扩充,有两种形式,分别为固定数目的增加和每次扩充容量增倍。对于第一种是节省空间,但操...

2020-06-30 19:07:16 290

原创 终于和“递归”成为了好朋友

1.经典的汉诺塔问题:(1)首先推荐一个汉诺塔小游戏,为了对该知识点更容易理解。(2)如下图所示,由左至右分别为a,b,c三个底座,该游戏的目的是要让a座上的三个圆盘按照从上到下由小到大的顺序放在c底座。下图展示的是三个圆盘要进行转移,转移的顺序依次应为:a->c、a->b、c->b、a->c、b->a、b->c、a->c。(3)程序详解:// 将 n 个圆盘从 a 经由 b 移动到 c 上public void hanoid(int n,

2020-06-17 22:55:44 147

空空如也

空空如也

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

TA关注的人

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