- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 R-CNN、Fast R-CNN、Faster R-CNN
1、R-CNN(Regions with CNN features)2014年提出,可以说是利用深度学习进行目标检测的开山之作,将识别准确率从30%多提高到50%多。与R-CNN同一时期的深度学习方法有overfit,但效果没有RCNN好,故听说得少。① R-CNN算法流程四步第二步:这里的深度网络指的是图片分类网络,这里将候选区域丢入到特征提取网络就能得到特征向量;第四步:因为通过SS算法框定的候选框不是那么准,于是选用回归器修正候选框的位置;Ⅰ 候选区域的生成...
2023-07-03 22:09:18
1073
1
原创 Week3:[任务三] nn网络层-池化、线性、激活函数网络层
【目录】 池化层——Pooling Layer 线性层——Linear Layer 激活函数层——Activation Layer 1、池化层据观察可得,池化后的图片与池化前相比较,细节信息并没有丢失(若非强调,池化都是指最大池化下采样)最大池化下采样:一个下采样的过程,将一个大尺寸的图像变为一个尺寸小的图像池化的作用:冗余信息的剔除,并且减小后面的计算量 nn.MaxPool2d最大池化 向上取整ceil_mode = True;默认的为向下取.
2021-08-15 10:07:13
593
原创 Week3:[任务二] 第一节 nn网络层-卷积层
【目录】 1d/2d/3d卷积 卷积-nn.Conv2d() 转置卷积-nn.ConvTranspose 1、1d/2d/3d卷积卷积核是特征匹配器,应用到图像中对图像的每一个像素进行检测,判断其与卷积核的模式是否相似。2、nn.Conv2d空洞卷积:卷积核是间隔开的,主要用于分割任务,主要是用于提升感受野。最终输出响应值的时候需要加上偏置这一项 nn.Conv2d输出图像特征尺寸计算 二维卷积Conv2的para..
2021-08-15 10:06:29
241
原创 Week4:[任务三] 第二节 优化器optimizer(二)
为了使得梯度下降需要加上负的梯度方向,也就是减去梯度g(wi)初始位置x0,y0,求取在x0处y的导数,将x0的值带入得到梯度x1;将x1带入函数y,得到y1,继续求取函数y在x1处的导数,将x1的值带入得到梯度x2;将x2带入函数y,得到y2。若将y视为损失函数,可以看出:y0->y1->y2发现y的值并没有减小,反而增大,是因为尺度太大,需要乘以一个系数来缩小尺度学习率lr来减小更新的步伐学习率过小会导致收敛速度减慢,学习率过大(如0.5,0.3)会导致模型不..
2021-08-15 10:05:36
178
原创 Week4:[任务三] 第一节 优化器optimizer(一)
【目录】 什么是优化器 optimizer的属性 optimizer的方法 1、什么是优化器 优化器在机器学习中的作用 在损失函数中会得到一个loss值,即模型输出与真实值之间的一个差异对于loss值我们通常会采取pytorch中的自动求导autograd模块去求取模型当中的参数的梯度grad优化器拿到梯度grad后,进行一系列的优化策略去更新模型参数,使得loss值不断下降 导数、方向导数与梯度 学习参数通常是指权值或者偏置bias,更..
2021-08-15 10:05:12
268
原创 Week4:[任务二] 第二节 pytorch的14种损失函数
【目录】nn.L1Loss、nn.MSELoss nn.SmoothL1Loss SmoothLoss是对L1Loss的一个平滑 nn.PoissonNLLLoss 泊松分布如果输入已经是对数形式,则直接取指数如果输入不是对数形式,则需要求取对数,为了防止log结果为nan,选取一个很小的数避免底数为0# ---------------------------------- 8 Poisson NLL Loss --------------------.
2021-08-15 10:04:50
234
原创 Week4:[任务二] 第一节 损失函数
【目录】 损失函数概念 交叉熵损失函数 NLL/BCE/BCEWithLogits Loss 1、损失函数概念损失函数Loss Function 计算模型输出与真实标签之间的差异代价函数Cost Function 计算训练集中所有样本的模型输出与真实标签差异的平均值目标函数Objective Function 是最终要达到的,其中的正则项Regularization是为了避免模型过拟合,对模型进行的一些约束Loss继承自Module,可以看做一个网络层.
2021-08-15 10:04:01
187
原创 Week3:[任务一] 第一节 模型创建与nn.Moudle
目录 网络模型创建步骤 nn.Module属性 1、网络模型创建步骤每一个卷积层、池化层和全连接层等都是一些模块(即网络层都是一些子模块);各网络模型都是由子模块组成的;节点就是张量数据(在网络模型图中就是正方形的),边就是运算; 模型构建的两个要素 构建子模块是在_ _init()_ _中拼接子模块实际是前向传播的一个实现在forward()中 torch.nn是torch的一个神经网络模块 nn.Model类的的8个属性..
2021-08-12 09:45:50
301
原创 Week2:[任务二] 第二节 transforms图像增强(二)
【目录】 transforms方法操作 transforms—图像变换 自定义transforms方法 亮度:>1会更亮一些对比度:>1会更硬朗一些,白的地方更白,黑的地方更黑饱和度:>1会更鲜艳一些色相:会更改图像的色彩随机遮挡是对张量进行操作,之前的是直接对image图像进行操作宽比长、长比宽一般设置为3倍左右(0.33,3.33)不然会丢失一些像素scale即随机遮挡的面积一般设置为(0.02,0.33)value为遮挡的图像的颜.
2021-08-12 09:45:06
250
原创 Week2:[任务二] 第一节 Transforms图像增强(一)
【目录】数据增强Transforms——裁剪Transforms——翻转和旋转1、数据增强2、Transforms——裁剪 transforms.CenterCrop transforms.RandomCrop transforms.RandomResizedCrop scale随机裁减面积比例,默认取值范围为(0.08,1)比如说,0.6代表原始图像面积的百分之六十进行裁剪。将scale设置为(0.5,0.5)是裁剪一半的面积然后进行..
2021-08-12 09:44:48
124
原创 Week2:[任务一] 第二节 图像预处理-Transforms
目录 Transforms运行机制 数据标准化——transforms.normalize 1、Transforms图像预处理是为了提高模型的泛化能力,类比于“五年高考三年模拟”,五年高考是原始图像,三年模拟则是预处理之后的新增图像,为了提高模型的适应能力 transform.compose()用于对各种图像变换进行有序的封装,执行起来依次执行图像变换 在做验证的时候不需要对图像进行增强,在做训练时需要图像增强2、数据标准化——transforms.norma.
2021-08-12 09:44:32
126
原创 Week2:[任务一] 第一节 DataLoader与DataSet
数据处理工作 架构框图 DataLoader(数据迭代器)由Sampler和DataSet组成Sampler的功能是生成索引,DataSet是根据索引去读取图片以及标签 DataLoader Epoch、Iteration与Batchsize之间的关系 torch.utils.data.Dataset 数据读取过程关键函数 数据读取流程图 首先在for循环中使用DataLoader,然后使用DataLoaderIter决...
2021-08-12 09:44:12
200
原创 Week1:[任务三] 第二节 autograd与逻辑回归
自动求导系统逻辑回归torch.autograd.backward()方法张量中的y.backward方法实际调用的是torch.autograd.backward()方法同一个张量反向传播的迭代,需要将y.backward(retain_graph)设置为Truetensors为用于求导的张量,如lossretain_graph用于保存计算图,因为pytorch为动态图机制,每次运算后都会释放掉,如果想要迭代使用计算图,需要将其置为truecreate_graph创建导数的计算
2021-08-07 22:44:40
204
原创 Week1:[任务三] 第一节 计算图与动态图机制
计算图 动态图机制1、计算图计算图为求导提供方便 所有从y通向w导数的边之和叶子节点叶子节点是用户自己创建的节点,requires_grad = True非叶子节点在梯度计算后内存会被释放掉,其梯度不会被保存下来,如果该节点的梯度希望被保存下来,则执行:该节点.retain_grad()grad_fn()grad_fn()用来记录该张量是怎样得到的,便于后面梯度的求导运算。比如说y张量是通过乘法得到的,则y.grad_fn=<MulBackward0>.
2021-08-07 22:44:13
106
原创 Week1:[任务二] 第二节 张量的操作及线性回归
张量的操作:拼接、切分、索引和变换 张量的数学运算 线性回归1、张量操作① 张量的拼接torch.cat(tensors,dim,out) torch.stack(tensors,dim,out)② 张量的切分torch.chunk(input,chunks,dim)torch.split(tensor,split_size_or_sections,dim)③ 张量的索引torch.index_select(input,dim,index,out)...
2021-08-07 22:43:50
76
原创 Week1:[任务二] 第一节 张量简介与创建
张量Tensor是什么? 张量Tensor的创建:直接创建,依据数值创建,依据概率创建1.Tensor的概念张量是一个多维数组,其中涵盖标量(0维张量),向量(1维张量),矩阵(2维张量),RGB图像(3维张量),多维数组即为多维张量。2.张量的创建① 直接创建torch.tensortorch.tensor(list/numpy,device = 'cuda') #默认是在CPU上,放在GPU上写cudatorch.from_numpy(ndarray)②依..
2021-08-07 22:43:26
79
原创 Week1:[任务一] 第二节 PyTorch安装版本及环境版本匹配问题
1.Anaconda安装时注意事项将anaconda添加到系统变量 添加中科大或者清华镜像源,这样在用conda安装包时下载速度会更快一些 Anaconda的主要用处:管理虚拟环境,可以配置不同版本的解释器和工具包(例如一个环境的pytorch用CPU版本,一个环境用GPU版本)2.Pycharm使用时注意事项先在终端创建虚拟环境,在环境中安装所需的包 通过File->Settings进行解释器选择,找到该创建的项目名称->Python Interpreter可以对虚拟环境进
2021-08-07 22:42:53
418
原创 Week1:[任务一] 第一节PyTorch简介与安装
【目录】 PyTorch简介 Anaconda安装 Pycharm安装 PyTorch安装 1.PyTorch简介PyTorch是FAIR(Facebook AI Research)2017年1月发布的一款深度学习框架。2.软件安装需要安装的三种软件:Python包管理器Anaconda,Python集成开发环境PyCharm,Pytorch 解释器(Interpreter)与工具包(Module)和虚拟环境(Virtual Environ...
2021-08-07 22:42:29
128
原创 Week3:[任务一] 第二节 模型创建与nn.Moudle
【目录】 网路层容器(Containers) AlexNet构建 1、容器Containersnn.ModuleList 可以像python list一样迭代 nn.Sequential 早期将一个大的模型划分为特征提取模块(Conv1、pool1)和分类模块(fc1)LeNet网络封装为特征提取器和分类器两部分,分别用sequential进行包装,然后将两个sequential再包装为一个sequential。class LeNetSequen.
2021-08-06 22:30:32
167
原创 数字图像处理
1. 数字图像处理图像处理用来提取感兴趣的区域,机器学习用于识别有效信息1.1 数字图像图像的采样与量化数字图像,将空间图像分成栅格,对栅格中心点的亮度进行量化数字图像可以表示为以像素为元素的矩阵采样精度:空间分辨率。空间分辨率衡量将模拟图像转化为数字图像的空间精度(相当于一维模拟信号的x值)量化精度:亮度分辨率。亮度分辨率是衡量图像亮度的量化精度(相当于一维模拟信号的y值)图像的存储精度量化级别为2的K次方//比如说这幅图片中
2021-05-28 16:29:53
2301
原创 2012-05-10 FPN目标识别评价指标之精确度与召回率
利用RSDDs数据集做二分类,有缺陷的defects为正样本,background为负样本分类系统的最终目的:能识别出测试集中所有缺陷,那么缺陷是正例,背景是反例TP、TN、FP、FNTrue positives : 缺陷的图片被正确识别成了缺陷。True negatives: 背景的图片被正确识别为背景。False positives: 背景的图片被错误识别为缺陷。(负错误的识别为正样本)False negatives: 缺陷的图片被错误识别为背景。(正错误的识别为负样本)..
2021-05-10 16:58:37
334
原创 TFRecord数据集生成
一、为什么使用TFRecord?正常情况下我们训练文件夹经常会生成 train, test 或者val文件夹,这些文件夹内部往往会存着成千上万的图片或文本等文件,这些文件被散列存着,这样不仅占用磁盘空间,并且再被一个个读取的时候会非常慢,繁琐。占用大量内存空间(有的大型数据不足以一次性加载)。此时我们TFRecord格式的文件存储形式会很合理的帮我们存储数据。TFRecord内部使用了“Protocol Buffer”二进制数据编码方案,它只占用一个内存块,只需要一次性加载一个二进制文件的方式即可,简单
2021-04-30 11:28:42
75
原创 03 抽象提取所学内容,合并为通用框架
01:实现拓扑排序( python3.9 自带拓扑排序)① 选择一个没有输入的节点,如果有多个没有输入的接点就任选一个;② 在图中删去第一步选择的节点,把选择的节点作为我们的访问顺序节点;③ 检查图是否为空,如果不为空,跳到①;"""图的节点与节点的值keys&values"""simple_graph = {'a' = [1,2]'b' = [2,3]}list(simple_graph.values())#['a','b']list(simple_gra
2021-03-26 10:35:16
375
2
原创 02多层神经网络的原理 神经网络自动求导原理
线性函数对信号进行加强非线性函数实现功能激活函数作用:让我的函数拟合非线性关系,如果没有非线性函数永远只能拟合线性关系,现实生活中绝大多数情况下都是非线性关系。机器学习:给机器数据,让机器自己去学习神经网络:通过线性与非线性函数对现实生活中的情况进行拟合90年代,深度网络不能超过三层的根本原因是数据量不够要有高精度,就得有足够的数据量参数多一个,所需的数据就要过一个数量级数据量决定这个东西能不能用,数据越多,精度越准确,才越能运用计算机的图k1接在L1上..
2021-03-24 10:42:49
598
原创 01从零开始理解神经网络
MIT计算机系一句名言:代码是给人看的,偶尔运行一下K-Neighbor-Nearest => KNN 找到K个最近的邻居,在数据量比较大的时候,这种方法比较低效Lazy Learning:当内容很多时,需要花费很多时间一个更有效的学习方法如果我们能够找到x和y之间的函数关系,我们每次要计算得时候,输入给这个函数就能直接获得预测值MSE(Mean Squared Error)...
2021-03-21 16:27:47
215
原创 Python数据分析与可视化
数据的四分位对于每种单独的数据属性来说,可以通过数据的四分位法进行处理、查找和寻找离群值,从而对其进行分析和处理。四分位数(quartile)是统计学中分位数的一种,即把所有数据由小到大排列并分成四等份,处于三个分割点位置的数据就是四分位数。第一四分位数(Q1)又称“下四分位数”,等于该样本中所有数据由小到大排列后第25%的数据。第二四分位数(Q2)又称“中位数”,等于该样本中所有数据由小到大排列后第50%的数据。第三四分位数(Q3)又称“上四分位数”,等于该样本中所有数据由小到大排列后
2021-03-19 16:05:20
2083
原创 深度学习理论方法 —— 相似度计算
基于欧几里得距离的相似度计算【公式1】:欧几里得计算公式作为计算结果的欧式值显示的是两点之间的直线距离,该值的大小表示两个物品或者用户差异性的大小,即用户的相似性如何。如果两个物品或者用户距离越大,那么相似性越小;反之,距离越小相似度越大。由于欧几里得相似度计算中最终数值的大小和相似度成反比,因此在实际中常常使用欧几里得距离的倒数作为相似度值,即1/d+1作为近似值。【例子1】:欧几里得公式的应用 物品1(特征1) 物品2(特征2) 物品3(特征3) 物品4(特.
2021-03-18 22:30:42
3272
原创 WPF之C#委托入门(二)
Day3 学习WPF之委托以致用1、模板方法,“借用”指定的外部方法来产生结果,委托有返回值Func<Product> func1 = new Func<Product>(productFactory.MakePizza);Func类型的委托,尖括号<>内第一个参数为返回值类型,若后面还有参数则为输入参数列表。圆括号()里面的内容,类似将函数指针指向productFactory.MakePizza()这个方法。通过委托间接调用了productFact.
2021-02-26 20:11:24
555
原创 WPF之C#委托入门(一)
Day2 学习WPF之委托以致用1、委托(delegate)是函数指针的“升级版”①用函数名称直接调用#include<studio.h>int Add(int a,int b){ int result = a + b; return result;}int Sub(int a,int b){ int result = a - b; return result;}int main(){ int x = 100; .
2021-02-26 16:53:25
2243
2
原创 【AiLearning】test1: 具有神经网络思维的Logistic回归
在吴恩达老师DL系列课程的学习过程中,跟随做的一些小练习,在看懂别人代码基础上,整理的一些小笔记。源代码参考:https://blog.csdn.net/u013733326/article/details/79639509其中,有一行代码当时不明白为什么Y*np.log(A)要用点乘*而不用矩阵乘法numpy.dot()cost = (- 1 / m) * np.sum(Y * np.log(A) + (1 - Y) * (np.log(1 - A)))在分析Y和A的维度之后,得出的确应
2021-02-23 22:14:37
193
原创 【AiLearning】test3:搭建Deep Netural Network
在吴恩达老师DL系列课程的学习过程中,跟随做的一些小练习,在看懂别人代码基础上,整理的一些小笔记。源代码参考:https://blog.csdn.net/u013733326/article/details/79767169DL中的列表、元组与字典在DL的算法中,需要将一些参数存储起来,方便在下一次的前向传播与反向传播过程中,直接调用。据观察,参考代码中,常常将存储变量定义为列表、元组或字典类型。1、在初始化函数initialize_parameters_deep中,将参数存..
2021-02-18 15:11:25
222
2
原创 【AiLearning】test2:搭建Shallow Netural Network
在虚拟环境中装scikit-learn包强烈建议按照次序装#可以选择指定具体的版本,如conda install numpyconda install pandasconda install scipyconda install matplotlibconda install scikit-learn==0.20.0参考:https://blog.csdn.net/weixin_44753371/article/details/103902751scikit-learn库的算法主
2021-02-15 11:36:37
290
原创 【Python学习】 第三章 列表、元组和字符串
Day2 学习python从入门到入土列表list:一个“打了激素”的数组列表可以同时存放不同类型(整型、字符串、浮点型...)的变量,用中括号将数据包裹起来,数据之间用逗号隔开。1、对列表本身进行增、删、改、查① 增>>>[1,2,3,4,5]>>>[520,"小甲鱼",3.14,[1,2,3]]② 删从列表中删除元素,可以有三种方法实现:remove()、pop() 和 delremove():需要指定一个待删除的元素,使用remo.
2021-02-01 20:30:09
484
原创 【AiLearning】Numpy相关函数用法总结
numpy.array & ny.asarray 函数语法:numpy.array(a)作用:将数据a转化为矩阵格式,ny.array与ny.asarray功能是一样的,不会修改原数组a=[[1,2,3],[4,5,6],[7,8,9]]b=np.array(a)c=np.asarray(a)a[2]=1 #array与asarray不会修改原数组print(a)print(b)print(c)[[1, 2, 3], [4, 5, 6], 1][[1 2 3]
2021-02-01 16:02:26
276
原创 【Python学习】 第二章 了不起的分支和循环
Day1 学习python从入门到入土食用方法:jupyter + 零基础入门学习pythonjust整理一些学习笔记,顺便打卡,不喜勿喷分支:只有符合条件,才会去做某事if 条件: if 条件1: if条件1: 条件为真执行的操作...
2021-01-29 20:58:15
111
1
原创 【Python学习】第一章 成为高手前必须知道的一些基础知识
Day1 第一章 成为高手前必须知道的一些基础知识食用方法:jupyter + 零基础入门学习python内置函数BIF(Build-in Functions)内置函数是为了方便程序员快速编写脚本程序,python提供的只需要直接调用即可的函数。dir(_ _buildins_ _) 查看python提供的内置函数列表:help()这个BIF用于显示BIF的功能描述:【例如】:print()是一个BIF,其功能是“打印到屏幕”,就是把括号的内容显示到屏幕上;input(.
2021-01-29 17:50:05
122
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人