自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FLR的博客

记录一点一滴,默而知之

  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 深度学习基础24(实战:房价预测)

实战:预测房价此数据集由Bart de Cock于2011年收集 , 涵盖了2006-2010年期间亚利桑那州埃姆斯市的房价。 这个数据集是相当通用的,不会需要使用复杂模型架构。下载和缓存数据集这里实现几个函数来方便下载数据。 首先,我们建立字典DATA_HUB, 它可以将数据集名称的字符串映射到数据集相关的二元组上, 这个二元组包含数据集的url和验证文件完整性的sha-1密钥。 所有类似的数据集都托管在地址为DATA_URL的站点上。import hashlibimport osimport

2022-04-06 15:52:25 2775 2

原创 深度学习基础23(数据偏移what,how,why)

环境和分布偏移许多失败的机器学习部署(即实际应用)都可以追究到这种方式。 有时,根据测试集的精度衡量,模型表现得非常出色。 但是当数据分布突然改变时,模型在部署中会出现灾难性的失败。 更隐蔽的是,有时模型的部署本身就是扰乱数据分布的催化剂。 举一个有点荒谬却可能真实存在的例子。 假设我们训练了一个贷款申请人违约风险模型,用来预测谁将偿还贷款或违约。 这个模型发现申请人的鞋子与违约风险相关(穿牛津鞋申请人会偿还,穿运动鞋申请人会违约)。 此后,这个模型可能倾向于向所有穿着牛津鞋的申请人发放贷款,并拒绝所有穿

2022-04-05 18:42:14 2762

原创 深度学习基础22(数值稳定性)

数值稳定性和模型初始化初始化方案的选择在神经网络学习中起着举足轻重的作用, 它对保持数值稳定性至关重要。此外,这些初始化方案的选择可以与非线性激活函数的选择有趣的结合在一起。选择哪个函数以及如何初始化参数可以决定优化算法收敛的速度有多快。 糟糕选择可能会导致我们在训练时遇到梯度爆炸或梯度消失。梯度消失和梯度爆炸不稳定梯度带来的风险不止在于数值表示; 不稳定梯度也威胁到我们优化算法的稳定性。 我们可能面临一些问题。要么是梯度爆炸(gradient exploding)问题: 参数更新过大,破坏了

2022-04-05 13:35:13 2084 2

原创 深度学习基础21(Dropout)

丢弃法(Dropout)我们为什么要使用丢弃法?一个好的模型需要对输入数据的扰动鲁棒丢弃法:在层之间加入噪音无偏差加入噪音对x加入噪音得到x’ 我们希望E[x’]=x,x的期望不变丢弃法对每个元素进行如下扰动这样可以保证x的期望不变使用丢弃法通常将丢弃法作用在隐藏全连接层的输出上正则项只在训练中使用:只影响模型参数的更新重新审视过拟合当面对更多的特征而样本不足时,线性模型往往会过拟合。 相反,当给出更多样本而不是特征,通常线性模型不会过拟合。但线性模型泛

2022-04-02 16:56:48 2087

原创 深度学习基础20(权重衰退以及代码实现详解)

权重衰减![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ehy5R4fH-1648806333395)(C:\Users\Lenovo\Documents\Tencent Files\850604703\FileRecv\MobileFile\Image\O6Z4JUTQKQ5[F51]45}0~[B.png)](https://img-blog.csdnimg.cn/c14d72718c1a4d289631d2dbde576be0.png?x-oss-process=i

2022-04-01 17:51:08 2211

原创 深度学习基础19(模型选择,拟合,K折交叉)

模型选择、欠拟合和过拟合我们的目标是发现模式(pattern)但是,我们如何才能确定模型是真正发现了一种泛化的模式, 而不是简单地记住了数据呢?例如,我们想要在患者的基因数据与痴呆状态之间寻找模式, 其中标签是从集合{痴呆,轻度认知障碍,健康}中提取的。因为基因可以唯一确定每个个体(不考虑双胞胎), 所以在这个任务中是有可能记住整个数据集的。只有当模型真正发现了一种泛化模式时,才会作出有效的预测。更正式地说,我们的目标是发现某些模式, 这些模式捕捉到了我们训练集潜在总体的规律。如果成功做到了这

2022-03-30 17:34:04 4163

原创 深度学习基础18(多层感知机代码实现)

多层感知机的从零开始实现现在自己实现一个多层感知机。为了与之前softmax回归 获得的结果进行比较, 将继续使用Fashion-MNIST图像分类数据集import torchfrom torch import nnfrom d2l import torch as d2lbatch_size = 256train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)初始化模型参数Fashion-MNIST中的每个图像由 2

2022-03-30 12:49:14 2402

原创 深度学习基础17(感知机,结合非线性函数来构建具有更强表达能力的多层神经网络架构)

多层感知机隐藏层softmax回归的模型架构通过单个仿射变换将我们的输入直接映射到输出,然后进行softmax操作。如果我们的标签通过仿射变换后确实与我们的输入数据相关,那么这种方法确实足够了。 但是,仿射变换中的线性是一个很强的假设。线性模型可能会出错例如,线性意味着单调假设:任何特征的增大都会导致模型输出的增大(如果对应的权重为正), 或者导致模型输出的减小(如果对应的权重为负)。有时这是有道理的。 例如,如果预测一个人是否会偿还贷款。可以认为,在其他条件不变的情况下, 收入较高的申请人

2022-03-29 18:31:38 4087

原创 深度学习基础16(softmax回归使用pytorch框架简洁实现)

softmax回归的简洁实现深度学习框架的高级API能够使实现softmax 线性回归变得更加容易。同样,通过深度学习框架的高级API也能更方便地实现softmax回归模型。import torchfrom torch import nnfrom d2l import torch as d2lbatch_size = 256train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)初始化模型参数softmax回归的输出

2022-03-29 16:47:33 1178

原创 深度学习基础15(softmax回归的基本实现)

softmax回归的从零开始实现引入Fashion-MNIST数据集, 并设置数据迭代器的批量大小为256。import torchfrom IPython import displayfrom d2l import torch as d2lbatch_size = 256train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)初始化模型参数和之前线性回归的例子一样,这里的每个样本都将用固定长度的向量表示。原始数据集

2022-03-28 20:16:41 2293 3

原创 深度学习基础14(softmax回归数据集的选择以及读取)

图像分类数据集MNIST数据集是图像分类中广泛使用的数据集之一,是对手写数字的识别,大概86年提出的但作为基准数据集过于简单。我们将使用类似但更复杂的Fashion-MNIST数据集%matplotlib inlineimport torchimport torchvision #是pytorch对于计算机视觉实现的一个库from torch.utils import data#方便读取数据一些小批量的函数from torchvision import transforms#对数据操作的模

2022-03-28 18:31:25 1312

原创 深度学习基础13(三种常见loss函数的优劣)

损失函数损失函数用来衡量预测值和真实值之间的区别下面介绍三个常用的损失函数L2 Loss(均方损失)除以2的意思是说在求导的时候2和1/2可以抵消下面所有图的横坐标就是预测值与真实值的差上图是这个损失函数的特性:蓝色的曲线:损失函数的曲线绿色的曲线:是它的似然函数,可以看出它的似然函数是一个高斯分布橙色的曲线:表示损失函数的梯度L1 Loss (绝对值损失函数)蓝色的曲线:损失函数的曲线绿色的曲线:是它的似然函数橙色的曲线:表示损失函数的梯度,可以看出在y’大于0时,它的

2022-03-28 15:27:35 2314

原创 深度学习基础12(softmax回归学前需知)

softmax回归分类问题:不是问“多少”,而是问“哪一个”:某个图像描绘的是驴、狗、猫、还是鸡?某人接下来最有可能看哪部电影?通常,机器学习实践者用分类这个词来描述两个有微妙差别的问题:我们只对样本的“硬性”类别感兴趣,即属于哪个类别;我们希望得到“软性”类别,即得到属于每个类别的概率。 这两者的界限往往很模糊。其中的一个原因是:即使我们只关心硬类别,我们仍然使用软类别的模型。​分类问题我们从一个图像分类问题开始。 假设每次输入是一个2×2的灰度图像。我们可以用一个标量

2022-03-28 14:57:22 985

原创 深度学习基础11(线性回归使用pytorch里的框架来实现)

线性回归的简洁实现接下来使用一些框架来实现线性回归学习框架可以自动化基于梯度的学习算法中重复性的工作。在上篇文章中,我们只运用了:(1)通过张量来进行数据存储和线性代数;(2)通过自动微分来计算梯度。实际上,由于数据迭代器、损失函数、优化器和神经网络层很常用, 现代深度学习库也为我们实现了这些组件。下面将介绍如何通过使用深度学习框架来简洁地实现 线性回归模型生成数据集与上篇文章类似,首先生成数据集。import numpy as npimport torchfrom torch.ut

2022-03-26 19:47:31 1558

原创 深度学习基础10(线性回归最基础实现,只使用自动求导和tensor计算)

线性回归的从零开始实现本文将从零开始实现整个方法, 包括数据流水线、模型、损失函数和小批量随机梯度下降优化器。这样做事有意义的,可以知道更深的原理,同时,了解更细致的工作原理将方便我们自定义模型、自定义层或自定义损失函数当然我们以后都是使用深度学习里面的框架本文将只使用简单的tensor的计算和自动求导来演示线性回归先导入random的包,因为我们要随机梯度下降和随机化初始化我们的权重%matplotlib inline #意思是我们在plot的时候嵌入到matnotebook里面import

2022-03-26 18:11:05 1139 4

原创 深度学习基础9(优化算法,梯度下降,小批量随机梯度下降,超参数)

基础优化方法这个图可以直观的看出寻找最优解的路线梯度下降有显示解的模型都非常简单,但我们以后几乎解决的问题都是没有显示解的当一个模型没有显示解的时候怎么办呢?下面来讲一下梯度下降:梯度下降通过不断沿着反梯度方向更新参数求解挑选一个参数的随机初始值w0重复迭代参数t=1,2,3(在接下来的时刻里不断更新w0,来接近我们的最优解)(上图为更新法则,意思是:上一个时刻 减去 学习率(标量)*损失函数关于t-1时刻的梯度)沿梯度方向将增加损失函数值学习率:步长的超参数

2022-03-26 16:06:42 779

原创 深度学习基础8(概率,期望,方差)

概率简单地说,机器学习就是做出预测。第一个例子:根据照片区分猫和狗首先,问题的难度可能取决于图像的分辨率。虽然人类很容易以160×160像素的分辨率识别猫和狗, 但它在40×40像素上变得具有挑战性,而且在10×10像素下几乎是不可能的。换句话说,我们在很远的距离(从而降低分辨率)区分猫和狗的能力可能会变为猜测。如果完全肯定图像是一只猫,我们说标签𝑦是"猫"的概率,表示为𝑃(𝑦=“猫”)等于1。第二个例子:给出一些天气监测数据,预测明天北京下雨的概率。 如果是夏天,下雨的概率是0.5。在这

2022-03-26 14:46:07 1356

原创 深度学习基础7(正反向传播,计算图,自动微分,分离计算,控制流梯度计算)

开始之前,补充一个关于梯度的图,方便记忆输入输出的形状计算图自动求导的两种模式正向积累存储中间结果反向积累(又叫反向传递)去除不需要的枝​关于复杂度:自动微分深度学习框架通过自动计算导数,即自动微分(automatic differentiation)来加快求导。实际中,根据我们设计的模型,系统会构建一个***计算图***(computational graph), 来跟踪计算是哪些数据通过哪些操作组合起来产生输出。自动微分使系统能够随后反向传播梯度。这里,反向

2022-03-25 18:36:00 1008

原创 深度学习基础6(微分,偏导,梯度,链式法则)

微积分如下图所示,内接多边形的等长边越多,就越接近圆。 这个过程也被称为逼近法(method of exhaustion)。事实上,逼近法就是**积分(integral calculus)**的起源微积分的另一支,**微分(differential calculus)**被发明出来。在微分学最重要的应用是优化问题,即考虑如何把事情做到最好,这种问题在深度学习中是无处不在的。在深度学习中,我们“训练”模型,不断更新它们,使它们在看到越来越多的数据时变得越来越好。通常情况下,变得更好意味着最小化一

2022-03-25 17:31:16 2155 2

原创 深度学习基础5(降维运算,矩阵计算,不同种类的范数)

降维写在前面:轴1的长度就是列的维数(有几列)我们可以对任意张量进行的一个有用的操作是计算其元素的和。在数学表示法中,我们使用∑符号表示求和。 为了表示长度为𝑑的向量中元素的总和,可以记为在代码中,可以调用计算求和的函数:x = torch.arange(4, dtype=torch.float32)x, x.sum()(tensor([0., 1., 2., 3.]), tensor(6.))我们可以表示任意形状张量的元素和。A.shape, A.sum()(torch.Size(

2022-03-24 19:46:49 1276

原创 深度学习基础4(标量,向量,张量,矩阵)

线性代数标量严格来说,称仅包含一个数值的叫标量(scalar)标量由只有一个元素的张量表示。在下面的代码中,我们实例化两个标量,并执行一些算术运算import torchx = torch.tensor(3.0)y = torch.tensor(2.0)x + y, x * y, x / y, x**y(tensor(5.), tensor(6.), tensor(1.5000), tensor(9.))向量可以将向量视为标量值组成的列表。将这些标量值称为向量的元素(eleme

2022-03-24 18:01:02 1621

原创 深度学习基础3数据预处理

数据预处理通常使用pandas软件包。pandas`可以与张量兼容。读取数据集创建一个人工数据集,并存储在CSV(逗号分隔值)文件) ../data/house_tiny.csv中。 以其他格式存储的数据也可以通过类似的方式进行处理。 下面我们将数据集按行写入CSV文件中。import osos.makedirs(os.path.join('..', 'data'), exist_ok=True)data_file = os.path.join('..', 'data', 'house_tin

2022-03-24 16:39:42 1544

原创 深度学习基础2(运算、广播、索引、切片、内存节省、转换其他Python对象)

运算符如何在这些数据上执行数学运算,其中最简单且最有用的操作是按元素(elementwise)运算。它们将标准标量运算符应用于数组的每个元素。 对于将两个数组作为输入的函数,按元素运算将二元运算符应用于两个数组中的每对位置对应的元素。我们可以基于任何从标量到标量的函数来创建按元素函数。在数学中,我们通过符号f:R→R 来表示一元标量运算符(只接收一个输入)。 这意味着该函数从任何实数映射到另一个实数。​ 通过符号f:R,R→R 表示二元标量运

2022-03-23 18:11:03 928

原创 深度学习基础知识1(数据操作)

数据操作需要某种方法来存储和操作数据时(1)获取数据;(2)将数据读入计算机后对其进行处理。 如果没有某种方法来存储数据,那么获取数据是没有意义的。1.张量 tensorn维数组,也称为张量(tensor)张量表示由一个数值组成的数组,这个数组可能有多个维度。 具有一个轴的张量对应数学上的向量(vector); 具有两个轴的张量对应数学上的矩阵(matrix); 具有两个轴以上的张量没有特殊的数学名称。无论使用哪个深度学习框架,它的张量类(在MXNet中为ndarray, 在PyTorch和

2022-03-23 16:35:00 1040

原创 # 术语词汇1

术语词汇鞍点,saddle point变换,transform编码器,encoder标签,label步幅,stride参数,parameter长短期记忆网络,long short-term memory (LSTM)超参数,hyperparameter层序softmax,hierarchical softmax查准率,precision成本,cost词表,vocabulary词嵌入,word embedding词向量,word vector词元,token词元分析器,toke

2022-03-22 21:08:02 313

原创 opencv图像视频的加载和显示

opencv图像视频的加载和显示基于上篇文章,在开始之前需要在上级目录里打开jupyter notebook首先需要进入scrips目录里进行激活,然后如果在该目录下输入jupyter notebook的话,不太好所以需要进入上级目录创建和显示窗口需要牢记的命令namedWindow() 创建命令窗口imshow() 显示窗口destroyAllwindows() 摧毁窗口resizeWindow() 改变窗口大小waitKey()等待用户输入#opencv在导包的时候是叫

2022-03-19 14:03:20 3352

原创 以opencv学习为例创建新的虚拟环境

以opencv学习为例创建新的虚拟环境注意不是虚拟机步骤新建一个文件夹在这里输入cmd进入命令行窗口然后输入命令pip install virtualenv然后创建虚拟环境的文件夹这里的venv是文件夹的名字然后进入script文件里,输入cmd先激活然后pip install 所需要的库...

2022-03-19 12:46:14 3686

原创 实验一:Cifar10图像分类竞赛 学习记录

实验一:Cifar10图像分类竞赛一、实验目的利用pytorch框架解决图像分类问题二、实验环境竞赛平台,Pytorch库三、实验内容给定Cifar10数据集,对其进行分类训练,在竞赛平台上对测试集进行验证。​四、实验原理及步骤(使用什么模型,如何对数据进行处理)这次实验我对四个模型都进行了尝试(选两个效果比较不错的来写)上图是resnet模型上图是resnext50模型两个模型都是先对图像数据进行增强处理然后进行训练其中resnet的超参数设置如下图Resnext50

2022-03-13 12:25:29 2283 1

原创 爬虫学习——前言

爬虫1—爬前须知在爬取一个网站之前,首先要确保什么数据可以爬取,什么数据不能爬取其中有个叫robots.txt 协议(防君子不防小人)查询方法举个bilibili的例子直接在 .com 后 加上 robots.txt

2022-03-02 23:52:31 136

原创 深度学习调参技巧总结

深度学习调参技巧总结关于deep learning(rnn、cnn)σ′(⋅)=σ(⋅)(1−σ(⋅)),tanh′=1−tanh2batch_size:将数据集划分为不同的 batch,是为了限制 RAM 的使用,防止内存溢出;batch_size = 256;ℓ 层的神经网络,对于着 ℓ−1 个层间权值矩阵;简单参数hyperparameters:learning rate:一般从 0.01 开始设起,变化的幅度为 10 倍;激活函数:做非线性映射Sigmoid 和 ta

2022-02-23 12:42:39 107

原创 深度学习调参技巧总结(部分参考网络上dl的经验)

深度学习调参技巧总结关于deep learning(rnn、cnn)σ′(⋅)=σ(⋅)(1−σ(⋅)),tanh′=1−tanh2batch_size:将数据集划分为不同的 batch,是为了限制 RAM 的使用,防止内存溢出;batch_size = 256;ℓ 层的神经网络,对于着 ℓ−1 个层间权值矩阵;简单参数hyperparameters:learning rate:一般从 0.01 开始设起,变化的幅度为 10 倍;激活函数:做非线性映射Sigmoid 和 ta

2022-02-23 12:33:33 187

原创 字符串处理空格 以及 List列表基础结构

这里写自定义目录标题欢迎使用Markdown编辑器新的改变# 字符串处理空格 以及 List列表基础结构List功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdo

2021-12-25 19:56:35 407

原创 python (基础)数值运算

python 数值运算2+21+12因为只会打印最后一行的代码所以要想打印出2+2需要print(2+2)1+1422**38类型转换fu=1.5type(fu)floatfu1=int(fu)print(fu1)type(int(fu)1inttype(fu1)intfu_str = '123'type(fu_str)strfloat(fu_str)123.0如果不是数字而是字母的字符串则不能转换,会报错下面为运算优先顺序()

2021-12-25 19:31:42 420

原创 准大三学生暑期社会实践真实感悟

准大三学生暑期社会实践真实感悟一、公司及人员介绍我是在杭州始途科技有限公司实践的,这是一个刚起步不久的创业研发型小公司,是由原来在吉利公司工作的老员工自主创业的公司,主要研发智能停车单元,就是PSU,和智能充电机器人。公司成员有三十个左右,学历半数为研究生,极少数博士,年龄上有三十出头的,个别四五十的,我在里面属于年龄最小的,19岁,旁桌负责我生活顾问的老周还在感慨00后也踏入社会了。我发现程序员的发际线真的名不虚传,公司里大我四五岁的程序员小哥已经有点秃顶了,我们都默而知之。毕竟是小公司嘛,就一个总

2021-08-09 14:09:40 187

原创 模板匹配3

模板匹配模板匹配和卷积原理很像,模板在原图像上从原点开始滑动,计算模板与(图像被模板覆盖的地方)的差别程度,这个差别程度的计算方法在opencv里有6种,然后将每次计算的结果放入一个矩阵里,作为结果输出。假如原图形是AxB大小,而模板是axb大小,则输出结果的矩阵是(A-a+1)x(B-b+1)# 模板匹配img = cv2.imread('lena.jpg', 0)template = cv2.imread('face.jpg', 0)h, w = template.shape[:2] im

2021-08-02 14:06:08 81

原创 直方图均衡化2

直方图均衡化img = cv2.imread('clahe.jpg',0) #0表示灰度图 #claheplt.hist(img.ravel(),256); plt.show()equ = cv2.equalizeHist(img) plt.hist(equ.ravel(),256)plt.show()res = np.hstack((img,equ))cv_show(res,'res')自适应直方图均衡化clahe = cv2.createCLAHE(clipLimit

2021-08-02 13:53:40 127

原创 直方图与模板匹配1

直方图与模板匹配1import cv2 #opencv读取的格式是BGRimport numpy as npimport matplotlib.pyplot as plt#Matplotlib是RGB%matplotlib inline def cv_show(img,name): cv2.imshow(name,img) cv2.waitKey() cv2.destroyAllWindows()直方图cv2.calcHist(images,channels,ma

2021-08-02 13:45:34 118

原创 傅里叶变换

傅里叶变换我们生活在时间的世界中,早上7:00左右起来吃早饭,8:00去上课或者挤地铁,以时间为参照就是时域分析。但是在频域中一切都是静止的!详细傅里叶变换的作用高频:变化剧烈的灰度分量,例如边界低频:变化缓慢的灰度分量,例如一片大海滤波低通滤波器:只保留低频,会使得图像模糊高通滤波器:只保留高频,会使得图像细节增强opencv中主要就是cv2.dft()和cv2.idft(),输入图像需要先转换成np.float32 格式。得到的结果中频率为0的部分会在左上角,通

2021-07-30 11:17:04 186

原创 图像轮廓,绘制,近似,外接圆

图像轮廓cv2.findContours(img,mode,method)mode:轮廓检索模式RETR_EXTERNAL :只检索最外面的轮廓;RETR_LIST:检索所有的轮廓,并将其保存到一条链表当中;RETR_CCOMP:检索所有的轮廓,并将他们组织为两层:顶层是各部分的外部边界,第二层是空洞的边界;RETR_TREE:检索所有的轮廓,并重构嵌套轮廓的整个层次;method:轮廓逼近方法CHAIN_APPROX_NONE:以Freeman链码的方式输出轮廓,所有其他方法输出多边

2021-07-30 11:09:16 122

原创 图像数值计算与图像融合

数值计算img_cat=cv2.imread('cat.jpg')img_dog=cv2.imread('dog.jpg')img_cat2= img_cat +10 img_cat[:5,:,0]array([[142, 146, 151, …, 156, 155, 154],​ [107, 112, 117, …, 155, 154, 153],​ [108, 112, 118, …, 154, 153, 152],​ [139, 143, 148, …, 156,

2021-07-30 10:57:16 262

贪吃蛇java实现压缩文件

一款简单的贪吃蛇小游戏实现#资源达分享计划

2021-08-05

空空如也

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

TA关注的人

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