- 博客(31)
- 收藏
- 关注
原创 Spark-SQL核心编程
/创建SparkSession对象//读取json文件强类型的 Dataset 和弱类型的 DataFrame 都提供了相关的聚合函数, 如 count(),countDistinct(),avg(),max(),min()。除此之外,用户可以设定自己的自定义聚合函数。Spark3.0之前我们使用的是UserDefinedAggregateFunction作为自定义聚合函数,从 Spark3.0 版本后可以统一采用强类型聚合函数 Aggregator。
2025-04-24 14:13:12
645
原创 Spark-SQL核心编程(二)(三)
DSL 语法DataFrame 提供一个特定领域语言(domain-specific language, DSL)去管理结构化的数据。可以在 Scala, Java, Python 和 R 中使用 DSL,使用 DSL 语法风格不必去创建临时视图了。1.创建一个 DataFrame查看 DataFrame 的 Schema 信息只查看"username"列数据4.查看"username"列数据以及"age+1"数据。
2025-04-16 20:42:13
1303
原创 Spark-SQL
Spark-SQL1. Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块。2. Hive and SparkSQL:SparkSQL 的前身是 Shark,Shark是给熟悉 RDBMS 但又不理解 MapReduce 的技术人员提供的快速上手的工具。Hive 是早期唯一运行在 Hadoop 上的 SQL-on-Hadoop 工具。
2025-04-16 20:33:40
1035
5
原创 RDD行动算子
行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。(1)reduce聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据(2)collect在驱动程序中,以数组 Array 的形式返回数据集的所有元素(3)foreach分布式遍历 RDD 中的每一个元素,调用指定函数(4)count(返回 RDD 中元素的个数)(5) first (返回 RDD 中的第一个元素)(6) take (返回一个由 RDD 的前 n 个元素组成的数组0。
2025-04-11 11:39:47
402
原创 Spark-Core编程
Value类型:(1) map将处理的数据逐条进行映射转换,这里的转换可以是类型的转换,也可以是值的转换。将待处理的数据以分区为单位发送到计算节点进行处理,这里的处理是指可以进行任意的处理,哪怕是过滤数据。(3)map 和 mapPartitions 的区别:数据处理角度:Map 算子是分区内一个数据一个数据的执行,类似于串行操作。而 mapPartitions 算子是以分区为单位进行批处理操作。功能的角度:Map 算子主要目的将数据源中的数据进行转换和改变。
2025-04-11 11:30:23
895
原创 集合计算高级函数
(1) 过滤遍历一个集合并从中获取满足指定条件的元素组成一个新的集合(2) 转化/映射(map)将集合中的每一个元素映射到某一个函数(3) 扁平化(4) 扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合(5) 分组(group)按照指定的规则对集合的元素进行分组(6) 简化(归约)(7) 折叠Reduce 方法。
2025-04-11 11:24:02
874
原创 集合(2)
(1) 第一种方式定义数组定义:val arr1 = new Array[Int](10)new 是关键字[Int]是指定可以存放的数据类型,如果希望存放任意数据类型,则指定Any(10),表示数组的大小,确定后就不可以变化(2)第二种方式定义数组val arr1 = Array(1, 2)在定义数组时,直接赋初始值使用apply 方法创建数组对象。
2025-04-07 17:38:22
810
原创 面向对象(2)和集合(1)
语法:定义抽象类:abstract class Person{} //通过 abstract 关键字标记抽象类定义抽象属性:val|var name:String //一个属性没有初始化,就是抽象属性定义抽象方法:def hello():String //只声明而没有实现的方法,就是抽象方法(2)继承&重写 如果父类为抽象类,那么子类需要将抽象的属性和方法实现,否则子类也需声为抽象类 重写非抽象方法需要用 override 修饰,重写抽象方法则可以不加 override。 子类中调用父类的方法使用 s
2025-04-03 11:00:05
310
原创 面向对象(1)
基本语法[修饰符] class 类名 {类体①Scala 语法中,类并不声明为public,所有这些类都具有公有可见性(即默认就是public)②一个Scala 源文件可以包含多个类。
2025-04-02 17:38:09
552
原创 For循环控制
Scala 也为 for 循环这一常见的控制结构提供了非常多的特性,这些 for 循环的特性被称为 for 推导式或 for 表达式。(1)基本语法① i 表示循环的变量,<- 规定 to② i 将会从 1-3 循环,前后闭合(2) 案例实操需求:输出 5 句 "scala "(1) 基本语法①这种方式和前面的区别在于 i 是从 1 到 3-1② 即使前闭合后开的范围(2) 案例实操需求:输出 5 句 "scala "(1) 基本语法①循环守卫,即循环保护式(也称条件判断式,守卫)。
2025-03-31 17:56:03
407
原创 scala
发展:Scala 语言是由 Martin Odersky 等人在 2003 年开发的,并于 2004 年首次发布。Scala 既是一个面向对象语言,每个变量都是一个对象,每个操作符都是方法,Scala 代码通过Scalac 编译成.class文件,然后在JVM上运行,可以无缝的使用已有的丰富 JAVA 类库。也就是说 Scala 的代码会编译成为字节码,运行在Java 的虚拟机上,并兼容现有的 Java 程序。
2025-03-27 10:42:55
487
原创 U-net系列算法
它的架构像字母“U”一样对称,即包含一个编码器部分(下采样路径)和一个解码器部分(上采样路径),两部分之间通过跳跃连接相连。①U形结构(编码器和解码器部分对称,即编码器有多少层,解码器就有多少层)5*64 =320 , 最终组合得到全部特征。 训练的时候同样会用到L4 ,效果还不错。现在来看,很多视觉任务都可以套用这招。其实跟densenet思想一致。(X1和X2 , 轮廓之类的)以前我们都是加法,现在全都要。起初是做医学方向,现在也是。(感受野大的 , 全局的)也是很常见的事,多输出。
2025-03-21 09:58:01
359
原创 图像分割项目
Cityscape数据集:5000张精细标注的图像(2975张训练图、500张验证图和1525张测试图)、20000张粗略标注的图像。②实例分割:对图像中每个像素划分到不同的个体,只预测前景目标的类别属性以及边框,个体ID,每一个像素可以属于多个ID。COCO数据集:共91类,以人类4岁小孩能够辨识为基准,其中82类有超过5000个instance。VOC数据集:一共2913张图,1464张训练图片,1449张验证图片。①语义分割:对图像中的每个像素划分到不同的类别,预测结果为掩膜。
2025-03-20 10:51:05
399
原创 YOLO系列-V4
整体介绍(Optimal Speed and Accuracy of Object Detection)虽然作者换了 , 但精髓没变!如果CV界有劳模奖 , 一定非他莫属!整体看还是那个味 , 细还是他细!M 江湖传闻最高的武功 :嫁衣神功种类:调整亮度,对比度,色调,裁剪,翻转,旋转,缩放。
2025-03-14 11:21:17
299
原创 YOLO-V3
① 终于到V3了,最大的改进就是网络结构,使其更适合小目标检测②特征做的更细致,融入多持续特征图信息来预测不同规格物体 ③ 先验框更丰富了,3种scale,每种3个规格,一共9种 ④ softmax改进,预测多标签任务为了能检测到不同大小的物体,设计了3个scale①左图:图像金字塔;右图:单一的输入②左图:对不同的特征图分别利用;右图:不同的特征图融合后进行预测。
2025-03-13 10:19:39
362
原创 YOLO系列(v1和v2)
(主要有24个卷积层,4个最大池化层和2个全连接层构成。 ·很明显,堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取也会越细致,加入的非线性变换也随着增多,还不会增大权重参数个数,这就是VGG网络的基本出发点,用小的卷积核来完成体特征提取操作。如果堆叠3个3*3的卷积层,并且保持滑动窗口步长为1,其感受野就是7*7的了,这跟一个使用7*7卷积核的结果是一样的,那为什么非要堆叠3个小卷积呢?例如预测值(σtx,σty,tw,th)=(0.2,0.1,0.2,0.32),anchor框为。
2025-03-12 17:17:49
904
原创 【目标检测】
从图像或视频中自动识别出特定目标(物体)的位置和类别识别图片中有哪些物体并且找到物体的存在位置。这一任务融合了图像分类和定位两个子任务,要求算法能够同时解决“是什么”和“在哪里”的问题。(不仅需要判断图像中的是否存在某个类别的物体,还需确定这些物体的具体位置,通常以边界框的形式表示)识别图片中有哪些物体并且找到物体的存在位置 多任务:位置 + 类别 目标种类与数量繁多的问题 目标尺度不均的问题 遮挡、噪声等外部环境干扰。
2025-03-11 11:21:54
330
原创 总结(图像分类)
或者参照SIFT特征提取思想,利用指定的尺度因子对图像滤波构造尺度空间.改变图像内容的大小或模糊程度;⑤.模型评估和调优:使用测试集对训练好的模型进行评估,评估其分类准确性和性能。⑥.预测和应用:使用训练好的模型对新的未知图像进行分类预测,将其分到不同的类别中。②.数据预处理:对输入的图像数据进行预处理,包括调整图像大小、灰度化、归一化等操作,以确保数据的一致性和质量。④.模型训练:使用标注好的图像数据进行模型的训练。:根据图像信息中所反应出来的不同特征,把不同类别的目标区分开来的方法。
2025-03-10 17:38:51
449
原创 实现神经网络
【说明】,model.train()与model.eval()的使用如果模型中有BN(Batch Normalization)层和Dropout,需要在训练时添加model.train(),在测试时添加mode1,exa10)。Pytoch常用的优化方法都封装在torch.optin里面,其设计很灵活,可以扩展为自定义的优化方法。定义损失函数可以通过自定义方法或使用PvIorch内署的损失函数,如回归使用的loss fimem, SELoss0),分类使用的m.BCELoss等损失函数,
2025-03-06 11:09:13
646
原创 机器学习(1)
1对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好(俗话说:三个臭皮匠顶个诸葛亮)2集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务等。集成学习的结果通过投票法产生?
2025-03-05 18:37:50
233
原创 Pytorch实现cifar10多分类(续)
卷积操作后通常接激活函数,这里使用了ReLU激活函数。AdaptiveAvgPool2d(1),将特征图的全局空间信息转换为通道描述符。全局平均池化有助于减少全连接层的参数数量,防止过拟合,同时提高模型的泛化能力。item()函数的作用是从包含单个元素的张量中取出该元素值,并保持该元素的类型不变。,即:该元素为整形,则返回整形,该元素为浮点型,则返回浮点型。在收集完所有信息后,遍历钩子列表并调用,remove()方法移除它们。使用了最大池化层MaxPool2d来降低特征图的维度,减少计算量。
2025-03-04 11:16:54
427
原创 Pytorch实现cifar10多分类
数据集分为5个训练批次和1个测试批次,每个批次有10000个图像。训练批次以随机顺序选取剩余图像,但一些训练批次可能更多会选取来自一个类别的图像。图6-27 显示了数据集中涉及的10个类,以及来自每个类的10个随机图像。为方便起见,我们已预先下载好数据并解压,存放在当前目录的data目录下,所以,参数down1oad=Fa1se。CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。这10类都是彼此独立的,不会出现重叠,即这是多分类单标签问题。
2025-03-03 16:39:31
202
原创 图像分类项目
将不同的图像,划分到不同的类别标签,实现最小的分类误差·通用的多类别图像分类:涉及将图像分类到广泛的类别中,如动物、植物、交通工具等。这种分类任务通常类间方差较大,类内误差较小子类细粒度图像分类:这一层次要求对同一大类中的子类进行更细致的分类,例如区分不同种类的鸟类或不同型号的汽车。细粒度图像分类的难度在于数据间的类内差异较大,分类难度较高· 实例级图片分类:这是最细粒度的分类,要求区分同一子类中的不同实例,例如区分同一型号的不同车辆。这种分类任务需要极高的精度和准确性。
2025-02-28 11:10:19
477
原创 Pytorch数据处理工具箱(2)
如果要对数据集进行多个操作,可通过Compose将这些操作像管道一样拼接起来,类似于nn.Sequential。#实例化SummaryWriter,并指明日志存放路径。http://服务器IP或名称:6006 #如果是本机,服务器名称可以使用localhost。transforms提供了对PIL Image对象和Tensor对象的常用操作。#即add_xxx(标签,记录的对象,迭代次数)#如果是windows环境,要注意路径解析,如。其中,xxx指的是各种可视化方法。各种可视化方法如下表所示。
2025-02-27 10:25:51
409
原创 Pycorch数据处理工具箱(1)
Utils.data注:getitem_一次只能获取一个样本1.2. DataLoader:可以批量处理。语法结构如图所示3. DataLoader:可以批量处理。相关参数介绍如下所示。但是DataLoader并不是迭代器,可以通过“iter”命令转换成迭代器。但是!数据处在不同目录之下时会不方便。
2025-02-26 20:11:27
170
原创 Pytorch神经网络工具箱(2)
残差块有两种,一种是正常的模块方式,将输入与输出相加,然后应用激活函数ReLU。另一种是为使输入与输出形状一致,需添加通过1×1卷积调整通道和分辨率组合这两个模块得到现代经典RetNet18网络结构。
2025-02-25 13:18:45
183
原创 Pytorch神经网络工具箱(1)
损失函数权衡预测值和真实值之间的差距损失函数越小越好损失函数超出预值,就去误差反传(优化器调整权重)② 继承自Module类,可自动提取可学习的参数。② 适用于卷积层、全连接层、dropout层(缓解过拟合)② 更像是纯函数。②适用于激活函数、池化层34○1nn.Module,写法一般为nn.Xxx,如nn.Linear、nn.Conv2d、nn.CrossEntropyLoss等。
2025-02-24 17:13:43
394
原创 卷积神经网络2
通过构建具有一定“深度”的模型,可以让模型来自动学习好的特征表示(从底层特征,到中层特征,再到高层特征),从而最终提升预测或识别的准确性。表示学习:如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习。• AlexNet的架构与LeNet相似,但使⽤了更多的卷积层和更多的参数来拟合大规模的ImageNet数据集。• 今天,AlexNet已经被更有效的架构所超越,但它是从浅层⽹络到深层网络的关键一步。2.LeNet-5,后面的5代表的卷积层和全连接层相加。
2025-02-21 11:22:26
374
原创 【无标题】多层感知机
这通常是因为模型过于复杂,捕捉了数据中的噪声和不相关的信息,而无法有效地泛化到新的数据。激活函数:在神经网络中,激活函数是神经元输出端的重要组成部分,它主要作用是引入非线性,使神经网络能够表示更复杂的函数关系。神经网络在外界输入样本的刺激下不断改变网络的连接权值乃至拓扑结构,以使网络的输出不断地接近期望的输出。(3) 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性。泛化误差: 模型在未见过的新数据样本上的预期误差,即模型对未知数据的预测能力。
2025-02-19 18:43:38
181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅