- 博客(31)
- 收藏
- 关注
原创 RDD转换算子
从 shuffle 的角度:reduceByKey 和 groupByKey 都存在 shuffle 的操作,但是 reduceByKey可以在 shuffle 前对分区内相同 key 的数据进行预聚合(combine)功能,这样会减少落盘的数据量,而 groupByKey 只是进行分组,不存在数据量减少的问题,reduceByKey 性能比较高。该操作用于排序数据。将待处理的数据以分区为单位发送到计算节点进行处理,这里的处理是指可以进行任意的处理,哪怕是过滤数据,在处理时同时可以获取当前分区索引。
2025-04-10 11:44:29
615
原创 spark运行架构
RDD 的 Lineage 会记录 RDD 的元数据信息和转换行为,当该 RDD 的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。在提交应用中,可以提供参数指定计算节点的个数,以及对应的资源。宽依赖表示同一个父(上游)RDD 的 Partition 被多个子(下游)RDD 的 Partition 依赖,会引起 Shuffle,总结:宽依赖我们形象的比喻为多生。RDD 封装了计算逻辑,是不可以改变的,想要改变,只能产生新的 RDD,在新的 RDD 里面封装计算逻辑。
2025-04-10 07:45:19
805
原创 【无标题】
Windows 模式:每次都需要启动虚拟机,启动集群,这是一个比较繁琐的过程,并且会占大量的系统资源,导致系统执行变慢,不仅仅影响学习效果,也影响学习进度,Spark 非常暖心地提供了可以在windows 系统下启动本地集群的方式,这样,在不使用虚拟机的情况下,也能学习 Spark 的基本使用。(其实是因为在国内工作中,Yarn 使用的非常多)。Spark Streaming:Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的 API。
2025-04-08 12:32:53
451
原创 Set 集合
默认情况下, Scala 使用的是不可变集合, 如果你想使用可变集合, 需要引用 scala.collection.mutable.Set。扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。Scala 中的 Map 和 Java 类似,也是一个散列表,它存储的内容也是键值对(key-value) 映射。Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。
2025-04-07 16:42:28
701
原创 大数据-scasa
第二种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了特质叠。由于一个类可以混入(mixin)多个 trait,且 trait 中可以有具体的属性和方法,若混入的特质中具有相同的方法(方法名,参数列表,返回值均相同),必然会出现继承冲突问题。Scala 不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象, 而不会对原对象进行修改。
2025-04-03 10:45:16
990
原创 Scala
包说明:Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。注意‼️若使用 Java 的包管理风格,则包对象一般定义在其对应包下的 package.scala 文件中,包对象名与包名保持一致。包对象:在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。
2025-04-02 16:37:36
645
原创 函数基础语法
名调用:把代码传递过去object TestControl {def main(args: Array[String]): Unit = { def f = ()=>{println("f...")10}foo(f())}//def foo(a: Int):Unit = {def foo(a: =>Int):Unit = {println(a)}}输出结果:f... 10 f...10注意:Java 只有值调用;// (2)函数没有重载和重写的概念,程序报错def test(): Unit ={
2025-04-01 09:56:39
1020
原创 scala-stwitch分支结构
4. 通过判断 2 * chicken + 4 * rabbit == foot 是否成立,来确定当前的鸡和兔的数量是否满足总脚数的条件。如果满足,则输出鸡和兔的数量。for 推导式有一个不成文的约定:当 for 推导式仅包含单一表达式时使用圆括号, 当包含多个表达式时,一般每行一个表达式,并用花括号代替圆括号。2. 使用 for 循环,循环变量 chicken 表示鸡的数量,范围从 0 到 head。说明 循环条件是返回一个布尔值的表达式 do..while 循环是先执行,再判断。
2025-03-31 17:14:12
609
原创 Scala的基本语法
scala的算术操作符与java的算术操作符也没有什么区别,比如+、-、*、/、%等,以及&、|、^、>>、<<等。但是,在scala中,这些操作符其实是数据类型的方法,比如1 + 1,可以写做1.+(1)例如,1.to(10),又可以写做1 to 10scala中没有提供++、--操作符,我们只能使用+和-,比如num = 1,num ++是错误的,必须写做num += 1。如果被循环的是 Map,返回的就是Map,被循环的是 List,返回的就是 List,以此类推。//变量名在前,类型在后。
2025-03-28 11:22:13
346
原创 scala
你可以在"之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。
2025-03-27 13:37:38
639
原创 u-net系列算法
不同的max pool整合低阶特征(X1和X2 , 轮廓之类的)上采样整合高阶特征(感受野大的 , 全局的)5*64 =320 , 最终组合得到全部特征。M 训练的时候同样会用到L4 ,效果还不错。现在来看 , 很多视觉任务都可以套用这招。M 以前我们都是加法 , 现在全都要。把能拼能凑的特征全用上就是升级版了。M 可以根据速度要求来快速完成剪枝。起初是做医学方向 , 现在也是。这么简单的结构就能把分割任务做好。其实跟densenet思想一致。也是很常见的事 , 多输出。简单但是很实用 ,应用广。
2025-03-21 10:37:06
653
原创 图像分割项目
Cityscape数据集:5000张精细标注的图像(2975张训练图、500张验证图和1525张测试图)、20000张粗略标注的图像。· COCO数据集:共91类,以人类4岁小孩能够辨识为基准,其中82类有超过5000个instance。· 实例分割:只预测前景目标的类别属性以及边框,个体ID,每一个像素可以属于多个ID。· 图像分割:预测目标的轮廓。· VOC数据集:一共2913张图,1464张训练图片,1449张验证图片。· 人像抠图,医学组织提取,遥感图像分析,自动驾驶,材料图像等。
2025-03-20 09:39:05
558
原创 YOLO_V4
并且还是一个捷径 , 红色的没准走个100层(Resnet) , 绿色的几层就到了?亲民政策 , 单GPU就能训练的非常好 , 接下来很多小模块都是这个出发点。数据增强: 调整亮度、 对比度、 色调、 随机缩放、 剪切、 翻转、 旋转。M V3中为了更好满足不同输入大小 , 训练的时候要改变输入数据的大小。只增加训练成本 , 但是能显著提高精度 , 并不影响推理速度。M 做人留一面日好相见 ,柔和一点的NMS , 更改分数而且直接剔除。M 注意力机制 , 网络细节设计 ,特征金字塔等 , 你能想到的全有。
2025-03-14 10:12:50
696
原创 YOLOV3
13*13特征图上:(116x90),(156x198),(373x326)26*26特征图上:(30x61),(62x45),(59x119)52*52特征图上:(10x13),(16x30),(33x23)终于到V3了,最大的改进就是网络结构,使其更适合小目标检测。特征做的更细致,融入多持续特征图信息来预测不同规格物体。先验框更丰富了,3种scale,每种3个规格,一共9种。YOLO-V2中选了5个,这回更多了,一共有9种。YOLO-V2中选了5个,这回更多了,一共有9种。·残差连接-为了更好的特征。
2025-03-13 10:19:27
502
原创 YOLO系列
很明显,堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取也会越细致,加入的非线性变换也随着增多,还不会增大权重参数个数,这就是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 16:09:36
916
原创 图像识别技术与应用
VOC数据集:PASCAL VOC挑战赛(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛。经典发展线:R-CNN、SPP-Net、Fast R-CNN、 Faster R-CNN。(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。候选框列表中的所有框依次与A计算IoU,删除大于阈值的候选框。设定目标框的置信度阈值,常用的阈值是0.5左右。
2025-03-11 10:18:43
542
原创 pytorch心德
列举在项目中遇到的诸如梯度消失/爆炸、过拟合、模型不收敛等典型问题,以及通过查阅资料、咨询他人等方式最终解决的过程。对Pytorch的自动求导机制、动态图等核心特性的新认识和在项目中的运用体会。接触到的新的深度学习技术或概念(如迁移学习、注意力机制等)以及在项目中的实践。对使用的评估指标(如准确率、召回率、F1值等)的理解和在项目中的应用情况。阐述采用的优化方法(如数据增强、正则化、模型融合等)的效果和带来的提升。对项目进一步优化和完善的想法,如尝试新的模型架构、更先进的优化算法等。
2025-03-10 16:48:30
702
原创 手写数字识别项目
因图像是灰色的只有一个通道,如果有多个通道,需要有多个数字,如三个通道,应该是Normalize([m1,m2,m3],[nl,n2,n3])。其中model.train()是保证BN层用每一批数据的均值和方差,而model.eval()是保证BN用全部训练数据的均值和方差;定义损失函数可以通过自定义方法或使用PyTorch内置的损失函数,如回归使用的losss_fun=nn.MSELoss(),分类使用的mn.BCELoss等损失函数,更多内容可参考本书5.2.4节。dim=1表示按行计算。
2025-03-06 09:32:36
880
原创 集成算法 机械学习
4. 将所有弱分类组合成强分类器,各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,降低分类误差率大的弱分类器的权重。=True时,等同于使用交叉验证评估模型。对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。2. 训练弱分类器,如果样本分类正确,则在构造下一个训练集中,它的权值就会被降低;·构造树模型:由于二重随机性,使得每个树基本上都不会一样,最终的结果也会不一样。最终的结果:每个分类器根据自身的准确性来确定各自的权重,再合体。
2025-03-05 16:20:18
832
原创 Pytorch实现cifar10多分类
数据集分为5个训练批次和1个测试批次,每个批次有10000个图像。图6-27 显示了数据集中涉及的10个类,以及来自每个类的10个随机图像。数据集分为5个训练批次和1个测试批次,每个批次有10000个图像。图6-27 显示了数据集中涉及的10个类,以及来自每个类的10个随机图像。CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。图6-27 CIFAR-10数据集。
2025-03-03 17:27:49
650
原创 图像识别技术与应用
可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。主对角线的元素之和为正确分类的样本数,其余元素之和为错误分类的样本数。准确率(Precision):又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。召回率(Recall):又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。对于k分类问题,混淆矩阵为k*k的矩阵,元素Cij表示第i类样本被分类器判定为第j类的数量。· 将不同的图像,划分到不同的类别标签,实现最小的分类误差。
2025-02-28 10:10:04
681
原创 Pytorch数据处理工具箱2
cd到logs目录所在的同级目录,在命令行输入如下命令,logdir等式右边可以是相对路径或绝对路径。1)导入tensorboard,实例化SummaryWriter类,指明记录日志路径等信息。transforms提供了对PIL Image对象和Tensor对象的常用操作。transforms提供了对PIL Image对象和Tensor对象的常用操作。transforms提供了对PIL Image对象和Tensor对象的常用操作。使用TensorBoard的一般步骤如下。
2025-02-27 10:26:03
399
原创 Pytorch数据处理工具箱
2.DataLoader:可以批量处理。相关参数介绍如下所示。·_getitem_一次只能获取一个样本。2.DataLoader:可以批量处理。2.DataLoader:可以批量处理。数据处在不同目录之下时会不方便!但是DataLoader并不是迭代器,可以通过“iter”命令转换成迭代器。Pytorch数据处理工具箱。
2025-02-26 16:27:56
235
原创 Pytorch神经网络工具箱2
残差块有两种,一种是正常的模块方式,将输入与输出相加,然后应用激活函数ReLU。继承nn.Module基类并应用模型容器构建模型。继承nn.Module基类并应用模型容器构建模型。继承nn.Module基类并应用模型容器构建模型。继承nn.Module基类并应用模型容器构建模型。继承nn.Module基类并应用模型容器构建模型。继承nn.Module基类并应用模型容器构建模型。1.使用nn.Sequential模型容器。1.使用nn.Sequential模型容器。5.循环测试或验证模型。
2025-02-25 11:33:46
699
原创 Pytorch神经网络工具箱
它能够很好的与nn.Sequential结合使用,而nn.functional.xxx无法与nn.Sequential结合使用。nn.functional中的函数,写法一般为nn.funtional.xxx,如nn.funtional.linear、nn.funtional.conv2d、nn.funtional.cross_entropy等。nn.Module,写法一般为nn.Xxx,如nn.Linear、nn.Conv2d、nn.CrossEntropyLoss等。继承nn.Module基类构建模型。
2025-02-24 16:04:41
972
原创 卷机神经网络2-人工智能
通过构建具有一定“深度”的模型,可以让模型来自动学习好的特征表示(从底层特征,到中层特征,再到高层特征),从而最终提升预测或识别的准确性。表示学习:如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习。• AlexNet的架构与LeNet相似,但使⽤了更多的卷积层和更多的参数来拟合大规模的ImageNet数据集。不同次数的重复VGG块,可获得不同的架构,例如VGG-16,VGG-19,......· 浅层卷积核提取:边缘、颜色、斑块等底层像素特征。
2025-02-21 09:31:20
738
原创 卷机神经网络
不管检测对象出现在图像中的哪个位置,神经网络的前面几层都应该对相同的图像区域具有相似的反应。神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远的区域的关系。给定输入大小224*224,在使用5*5卷积核的情况下,需要55层将输出降低到4*4。卷积层对输入和卷积核进行互相关运算,并在添加标量偏置之后产生输出。步幅是每次滑动核窗口时的行/列的步长,可以成倍的减少输出形状。卷积层将输入和卷积核进行交叉相关,加上偏移后得到输出。填充在输入周围添加额外的行/列,增加输出的高度和宽度。
2025-02-20 09:46:18
382
原创 人工智能 多层感知机
激活函数:刚才登场的h(x)函数会将输入信号的总和转换为输出信号,这种函数一般称为激活函数(activation function)。(3) 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性。神经网络在外界输入样本的刺激下不断改变网络的连接权值乃至拓扑结构,以使网络的输出不断地接近期望的输出。好"了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质——过拟合;如“激活”一词所示,激活函数的作用在于决定如何来激活输入信号的总和。
2025-02-19 16:38:03
282
原创 图像识别技术与应用
流程:在梯度法中,函数的取值从当前位置沿着梯度方向前进一定的距离,然后在新的方向重新求梯度,再沿着新梯度的方向前进,如此反复,不断的沿梯度方向前进。我们发现梯度指向函数的“最低处”(最小值),就像指南针一样,所有的箭头都指向同一点。梯度指示的反向是各点处的函数值减小最多的方向,所以无法保证梯度所指的方向就是函数的最小值或者真正应该前进的方向。所以在寻找函数的最小值的位置任务中,以梯度的信息为线索,决定前进的方向。严格的讲,梯度指示的反向是各点处的函数值减小最多的方向。
2025-02-18 10:33:28
371
原创 图像识别技术与应用
通过对大量语音数据的学习,语音助手能够识别不同的语音模式、口音和语言习惯,准确理解用户的需求并提供相应的服务,如设置提醒、查询信息、控制智能家居设备等。当我们获得了一些数据源及其表示、一个模型和一个合适的损失函数,接下来就需要一种算法,它能够搜索出最佳参数,以最⼩化损失函数。比如指纹、人脸识别解锁,人脸支付,商品推荐,智能物流,仓储机器人,短视频推荐,搜索排列,新闻推荐,智能助手,智能语音,图像编辑,智能美图等。当处理图像数据时,每一张单独的照片即为一个样本,它的特征由每个像素数值的有序列表示。
2025-02-17 17:06:27
301
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人