自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用IDEA开发Spark-SQL

除此之外,用户可以设定自己的自定义聚合函数。Spark3.0之前我们使用的是UserDefinedAggregateFunction作为自定义聚合函数,从 Spark3.0 版本后可以统一采用强类型聚合函数 Aggregator。强类型的 Dataset 和弱类型的 DataFrame 都提供了相关的聚合函数, 如 count(),

2025-04-15 11:42:52 32

原创 Spark-SQL

但是 MapReduce 计算过程中大量的中间磁盘落地过程消耗了大量的 I/O,降低的运行效率,为了提高 SQL-on-Hadoop 的效率,大量的 SQL-on-Hadoop 工具开始产生,其中表现较为突出的是: Drill Impala Shark。DataFrame 也可以叫 Dataset[Row],每一行的类型是 Row,不解析,每一行究竟有哪些字段,各个字段又是什么类型都无从得知,只能用上面提到的 getAS 方法或者共性里提到的模式匹配拿出特定字段。不同是的他们的执行效率和执行方式。

2025-04-14 17:44:35 403

原创 spark

Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后,传回 Driver 端进行 merge。比如,如果你的应用需要向所有节点发送一个较大的只读查询表,行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合。聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据。在驱动程序中,以数组 Array 的形式返回数据集的所有元素。

2025-04-11 11:22:29 146

原创 spark-rdd

从 shuffle 的角度:reduceByKey 和 groupByKey 都存在 shuffle 的操作,但是 reduceByKey可以在 shuffle 前对分区内相同 key 的数据进行预聚合(combine)功能,这样会减少落盘的数据量,而 groupByKey 只是进行分组,不存在数据量减少的问题,reduceByKey 性能比较高。使用 map 操作。当 spark 程序中,存在过多的小任务的时候,可以通过 coalesce 方法,收缩合并分区,减少分区的个数,减小任务调度成本。

2025-04-10 16:40:39 533

原创 scala

两种模式都需与ResourceManager通讯申请资源,启动ApplicationMaster和Executor,Executor注册完成后Driver执行main函数,遇到Action算子时划分stage并分发task执行。Spark Executor 是集群中运行在工作节点(Worker)中的一个 JVM 进程,是整个集群中的专门用于计算的节点。但是并不是这两个方法被调用时立即缓存,而是触发后面的 action 算子时,该 RDD 将会被缓存在计算节点的内存中,并供后面重用。

2025-04-09 18:00:38 646

原创 集合计算高级函数

扁平化 扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。转化/映射(map)将集合中的每一个元素映射到某一个函数。分组(group) 按照指定的规则对集合的元素进行分组。案例实操:两个集合合并。

2025-04-08 09:30:48 131

原创 scala-数组

说明:创建可变集合 mutable.Set、打印集合、集合添加元素、向集合中添加元素,返回一个新的 Set、删除数据。说明:元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。默认情况下, Scala 使用的是不可变集合, 如果你想使用可变集合, 需要引用。说明:创建可变集合、打印集合、向集合增加数据、删除数据、修改数据。说明:创建一个可变集合 ListBuffer、向集合中添加数据。集合间合并:将一个整体拆成一个一个的个体,称为扁平化。是将多个无关的数据封装为一个整体,称为。

2025-04-07 17:19:33 280

原创 scal抽象类

第二种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了。由于一个类可以混入(mixin)多个 trait,且 trait 中可以有具体的属性和方法,若混入的特质中具有相同的方法(方法名,参数列表,返回值均相同),必然会出现继承冲突问题。但是为了能够和Java语言交互(因为Java中有静态概念),就产生了一种特殊的对象来模拟类对象,该对象为。

2025-04-03 11:02:03 528

原创 面向 对象

另一种风格,通过嵌套的风格表示层级关系(一个源文件中可以声明多个 package,子包中的类可以直接访问父包中的内容,而无需导包)封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。若使用 Java 的包管理风格,则包对象一般定义在其对应包下的 package.scala文件中,包对象名与包名保持一致。protected 为受保护权限,Scala 中受保护权限比 Java 中更严格,同类、子类可以访问,同包无法访问。

2025-04-02 17:55:58 643

原创 scala函数

例如:请求->用户名、密码->连接 JDBC->读取数据库Scala 语言是一个完全函数式编程语言。函数的本质:函数可以当做一个值进行传递。解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。闭包:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。函数柯里化:把一个参数列表的多个参数,变成多个参数列表。没有名字的函数就是匿名函数。

2025-04-01 11:18:32 288

原创 Scala

Scala 内置控制结构特地去掉了 break 和 continue,是为了更好的适应函数式编程,推荐使用函数式的风格解决break 和continue 的功能,而不是一个关键字。(4) 因为 while 中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量,而变量需要声明在 while 循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用 for 循环。其 中 ,for,while,do…循环守卫,即循环保护式(也称条件判断式,守卫)。

2025-03-31 17:09:04 358

原创 scala基础

如果被循环的是 Map,返回的就是Map,被循环的是 List,返回的就是 List,以此类推。scala中没有提供++、--操作符,我们只能使用+和-,比如num = 1,num ++是错误的,必须写做num+=1。scala的算术操作符与java的算术操作符也没有什么区别,比如+、-、*、/、%等,以及&、|、^、>>、<<等。但是,在scala中,这些操作符其实是数据类型的方法,比如1 + 1,可以写做1.+(1)Null是所有AnyRef的子类,null是Null的唯一对象。

2025-03-28 11:11:09 268

原创 scala

混合标志符由字符数字标志符后面跟着一个或多个符号组成,字面量标志符为使用"定义的字符串,你可以在"之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。字符数字使用字母或是下划线开头,后面可以接字母或是数字,符号"$"在 Scala 中也看作为字母。

2025-03-27 10:07:25 258

原创 图像识别-语义分割

整体网络结构实现了更全面的特征融合与拼接,与densenet思想一致。采用Deep Supervision多输出方式,从多个位置计算损失并更新。以不同的max pool整合低阶特征,上采样整合高阶特征,各层统一用卷积得到64个特征图,最终组合得到全部特征,只需了解其基本原理。主要网络结构引入特征拼接操作,与以往的加法操作不同,通过这种简单结构就能做好分割任务。整体结构为编码解码过程,简单实用且应用广泛,最初用于医学方向。具有更容易剪枝的优势,因为前面也单独有监督训练。可以根据速度要求来快速完成剪枝。

2025-03-21 10:00:05 349

原创 图像识别与分割

Cityscape数据集:5000张精细标注的图像(2975张训练图、500张验证图和1525张测试图)、20000张粗略标注的图像。COCO数据集:共91类,以人类4岁小孩能够辨识为基准,其中82类有超过5000个instance。实例分割:只预测前景目标的类别属性以及边框,个体ID,每一个像素可以属于多个ID。将不同的像素划分到不同的类别,非常细粒度的分类。VOC数据集:一共2913张图,1464张训练图片,1449张验证图片。COCO数据集:以场景理解为目标,特别选取比较复杂的日常场景。

2025-03-20 10:29:29 210

原创 YOLO-v4

如引入SPPNet、CSPNet、注意力机制(SAM、CBAM )、PAN等,还有新激活函数Mish和缓解网格敏感性的方法。DIOU损失: 其中分子计算预测框与真实框的中心点欧式距离d,分母是能覆盖预测框与真实框的最小BOX的对角线长度c,直接优化距离 ,速度更快 , 并解决GIOU问题。增加稍许推断代价 , 但可以提高模型精度的方法网络细节部分加入了很多改进 , 引入了各种能让特征提取更好的方法。注意力机制 , 网络细节设计 ,特征金字塔等 , 你能想到的全有。

2025-03-14 10:36:02 346

原创 YOLO3

多scale检测:设计3个scale用于检测不同大小物体,介绍了图像金字塔、单一输入两种scale变换经典方法,以及分别利用不同特征图和融合特征图进行预测的方式。先验框设计:相比YOLO-V2的5种,YOLO-V3增加到9种,在不同尺寸特征图上分布不同规格先验框,如13*13特征图上有(116x90)等。核心网络架构:无池化和全连接层,全部采用卷积,下采样通过stride为2实现,融入多种经典做法,包含3种scale和更多先验框。logistic激活函数来完成,这样就能预测每一个类别是/不是。

2025-03-13 09:56:57 152

原创 Yolo系列

核心概念:是经典的one-stage目标检测方法,将检测问题转化为回归问题,用一个CNN实现,可实时检测视频。聚类提取先验框:利用K-means聚类确定更适合数据集的先验框,区别于faster-rcnn系列的常规比例先验框。网络结构:采用DarkNet,输入为416×416,无FC层,进行5次降采样,通过1×1卷积节省参数。网络架构:借鉴GoogLeNet,包含20层卷积层和全连接层,最终输出7×7×30的张量。这样会导致收敛问题,模型不稳定,尤其是刚开始进行训练的时候。bbox:中心为(xp,yp);

2025-03-12 16:24:10 228

原创 图像识别技术与应用

VOC数据集:PASCAL VOC挑战赛(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛。(Xmin, Ymin, W, H),其中x,y,w,h均不是归一化后的数值,分别代表左上角坐标和宽、高。(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。分别代表中心点坐标和宽、高x,y,w,h均为归一化结果。YOLO(TXT)格式:(x,y,w,h)类别+真实边界框坐标(x,y,w,h)目标种类与数量繁多的问题。多任务:位置 + 类别。

2025-03-11 10:16:59 412

原创 图像识别总结经验

多层感知机通过添加隐藏层和激活函数解决该问题,常用激活函数有Sigmoid、Tanh、ReLU ,使用Softmax处理多分类,其学习过程包括前向传播和反向传播,涉及训练误差、泛化误差等概念。人工智能在多领域应用。讲解机器学习关键组件,包含数据、模型、目标函数和优化算法,介绍监督学习、无监督学习等类型,以及深度学习发展历程、成功案例和图灵测试。理解代码,理解它的内容,抓住重点,抓住的核心内容,表达了什么,优化内容,让变得通俗易懂,变成属于自己的东西,对比格式,对比老师上课讲的做出有所区分,不要按部就班。

2025-03-10 18:48:42 180

原创 手写数字识别项目

如果模型中有BN(Batch Normalization)层和Dropout,需要在训练时添加model.train(),在测试时添加model.eval()。而对于Dropout,model.train()是随机取一部分网络连接来训练更新参数,而model.eval()是利用到了所有网络连接。定义损失函数可以通过自定义方法或使用PyTorch内置的损失函数,如回归使用的loss_fun=nn.MSELoss(),分类使用的nn.BCELoss等损失函数,更多内容可参考本书5.2.4节。

2025-03-06 09:54:04 453

原创 机器学习1

对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。·集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务等。·集成学习的结果通过投票法产生?

2025-03-05 16:06:51 190

原创 使用卷积神经网络C IFAR多分类

print('GroundTruth: ', ' '.join('%5s' % classes[labels[j]] for j in range(4))):打印前4个图像的真实标签,classes应该是包含类别名称的列表。被注释掉的images, labels = images.to(device), labels.to(device):如果有GPU,可将图像和标签数据转移到指定设备(如GPU)上,当前代码中未使用device,可能需要提前定义。

2025-03-04 10:17:39 199

原创 使用卷积神经网络C IFAR多分类-1

● self.conv1 = nn.Conv2d(in_channels=3, out_channels=16, kernel_size=5, stride=1):创建第一个二维卷积层,输入通道为3(通常对应RGB图像),输出通道为16,卷积核大小为5x5,步长为1。● x=F.relu(self.fc2(F.relu(self.fc1(x)))):依次通过两个全连接层,并在每层后应用ReLU激活函数。● return x:返回最终的输出结果。3实例化模型并转移设备。

2025-03-03 17:13:26 379

原创 图像分类项目

可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。主对角线的元素之和为正确分类的样本数,其余元素之和为错误分类的样本数。准确率(Precision):又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。召回率(Recall):又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。对于k分类问题,混淆矩阵为k*k的矩阵,元素Cij表示第i类样本被分类器判定为第j类的数量。将不同的图像,划分到不同的类别标签,实现最小的分类误差。·召回率增加,精度下降。

2025-02-28 10:25:12 334

原创 Pytorch数据处理工具箱二

cd到logs目录所在的同级目录,在命令行输入如下命令,logdir等式右边可以是相对路径或绝对路径。·如果要对数据集进行多个操作,可通过Compose将这些操作像管道一样拼接起来,类似于nn.Sequential。1)导入tensorboard,实例化SummaryWriter类,指明记录日志路径等信息。transforms提供了对PIL Image对象和Tensor对象的常用操作。transforms提供了对PIL Image对象和Tensor对象的常用操作。1)对PIL Image的常见操作如下。

2025-02-27 09:32:13 228

原创 Pytorch数据处理工具箱

2.DataLoader:可以批量处理。相关参数介绍如下所示。·_getitem_一次只能获取一个样本。2.DataLoader:可以批量处理。2.DataLoader:可以批量处理。

2025-02-26 17:26:33 121

原创 图像识别技术

残差块有两种,一种是正常的模块方式,将输入与输出相加,然后应用激活函数ReLU。·另一种是为使输入与输出形状一致,需添加通过1×1卷积调整通道和分辨率。·组合这两个模块得到现代经典RetNet18网络结构。继承nn.Module基类并应用模型容器构建模型。使用nn.Sequential按层顺序构建模型。使用nn.Sequential模型容器。使用nn.ModuleList模型容器。使用nn.ModuleDict模型容器。使用OrderedDict方法。5.循环测试或验证模型。1.加载预处理数据集。

2025-02-25 15:36:44 117

原创 Pytorch神经网络工具箱

nn.functional中的函数,写法一般为nn.funtional.xxx,如nn.funtional.linear、nn.funtional.conv2d、nn.funtional.cross_entropy等。继承nn.Module基类构建模型,又使用相关模型容器(nn.Sequential,nn.ModuleList,nn.ModuleDict等)进行封装。nn.Module,写法一般为nn.Xxx,如nn.Linear、nn.Conv2d、nn.CrossEntropyLoss等。

2025-02-24 16:29:47 315

原创 卷积神经网络(二)

通过构建具有一定“深度”的模型,可以让模型来自动学习好的特征表示(从底层特征,到中层特征,再到高层特征),从而最终提升预测或识别的准确性。AlexNet由⼋层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。表示学习:如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习。• AlexNet的架构与LeNet相似,但使⽤了更多的卷积层和更多的参数来拟合大规模的ImageNet数据集。浅层卷积核提取:边缘、颜色、斑块等底层像素特征。

2025-02-21 09:47:05 273

原创 图案识别技术-卷积神经网络

使用一个还不错的相机采集RGB图片(3600万个像素)使用 100 个神经元单隐含层的 MLP ,模型有 36 亿个参数远超过地球上的狗和猫的数量。不管检测对象出现在图像中的哪个位置,神经网络的前面几层都应该对相同的图像区域具有相似的反应。神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远的区域的关系。步幅是每次滑动核窗口时的行/列的步长,可以成倍的减少输出形状。4、多通道卷积时,每个通道有卷积核,结果是各通道卷积和。填充在输入周围添加额外的行/列,增加输出的高度和宽度。

2025-02-20 09:58:31 204

原创 图像识别技术中的感知机和多层感知机

可用于简单逻辑电路,如与门、与非门、或门,但无法解决异或门这类线性不可分问题 ,因其只能表示由一条直线分割的空间。模型复杂度受参数个数和取值范围影响,数据复杂度受样本数量、特征数量等因素影响,可通过权重衰减、暂退法应对过拟合。激活函数如阶跃函数、tanh函数、ReLU函数,需具备连续可导、计算简单、导函数值域合适等性质。) 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性。) 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率。Vs. 回归:输出实数。

2025-02-19 16:56:10 319

原创 图像-识别

我们的目标是生成一个模型,能够将任何输⼊特征映射到标签(即预测)。深度学习框架:多种框架中,PyTorch由Meta AI开发,基于Python实现,因API设计简洁等优点在学术界和工业界广泛应用,该课程选择其进行开源学习。机器学习分为监督学习(含回归、分类、标注、推荐系统、序列问题等)、无监督学习(聚类、主成分分析等)和强化学习,强化学习中智能体与环境交互获取奖励。从回归到多分类:分类通常有多个输出,输出的i表示预测为第i类的置信度,输出层神经元数量一般等于类别数量,softmax回归层是全连接层。

2025-02-18 10:55:02 288

原创 AI人工智能

过拟合(Overfitting)是机器学习和统计建模中的一个常见问题,指的是模型在训练数据上表现很好,但在未见过的测试数据上表现较差的现象。欠拟合(Underfitting)是机器学习和统计建模中的另一个常见问题,指的是模型在训练数据和测试数据上都表现不佳的现象。在机器学习中,我们需要定义模型的优劣程度的度量,这个度量在大多数情况是“可优化”的,这被称之为目标涵数。仅仅拥有海量的数据是不够的,还需要正确的数据。任一调整参数后的程序被称为模型,通过操作参数而生成的所有不同程序的集合称为“模型族”。

2025-02-17 17:51:23 228

空空如也

空空如也

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

TA关注的人

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