- 博客(33)
- 收藏
- 关注
原创 大数据技术之Spark Core编程
在 Driver 程序中定义的变量,在Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后,传回 Driver 端进行 merge。广播变量用来高效分发较大的对象。比如,如果你的应用需要向所有节点发送一个较大的只读查询表,行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合。聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据。
2025-04-11 10:46:24
135
原创 Spark Core
从 shuffle 的角度:reduceByKey 和 groupByKey 都存在 shuffle 的操作,但是 reduceByKey可以在 shuffle 前对分区内相同 key 的数据进行预聚合(combine)功能,这样会减少落盘的数据量,而 groupByKey 只是进行分组,不存在数据量减少的问题,reduceByKey 性能比较高。该操作用于排序数据。当 spark 程序中,存在过多的小任务的时候,可以通过 coalesce 方法,收缩合并分区,减少分区的个数,减小任务调度成本。
2025-04-10 14:23:39
563
原创 大数据技术之SPARK
宽依赖表示同一个父(上游)RDD 的 Partition 被多个子(下游)RDD 的 Partition 依赖,会引起 Shuffle,总结:宽依赖我们形象的比喻为多生。只有 Key-Value 类型的 RDD 才有分区器,非 Key-Value 类型的 RDD 分区的值是 None。不可变:RDD 封装了计算逻辑,是不可以改变的,想要改变,只能产生新的 RDD在新的 RDD 里面封装计算逻辑。RDD 是计算模型的封装,当需求中需要将多个计算模型进行组合时,就需要将多个 RDD 建立依赖关系。
2025-04-09 17:44:26
605
1
原创 spark安装过程
Spark安装解压修改环境变量完成安装 启动Local环境。进入spark-local中,执行如下命令bin/spark-shell
2025-04-08 10:58:58
163
原创 大数据技术之Scala
(4) 扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。将集合中的每一个元素映射到某一个函数。按照指定的规则对集合的元素进行分组。(2) 转化/映射(map)(6) 简化(归约)
2025-04-08 09:44:27
232
原创 大数据技术之SCALA
基于函数的排序,通过一个 comparator 函数,实现自定义排序的逻辑。(5)集合间合并:将一个整体拆成一个一个的个体,称为扁平化。说明:二维数组中有三个一维数组,每个一维数组中有四个元素。对一个集合进行自然排序,通过传递隐式的Ordering。(2)创建一个 List(数据有顺序,可重复)对一个属性或多个属性进行排序,通过它的类型。(1)List 默认为不可变集合。(4)List 增加数据。创建不可变集合 Map。不可变数组转可变数组。可变数组转不可变数组。(3)遍历 List。
2025-04-07 17:16:32
907
原创 大数据技术之Scala
第二种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了特质叠加的策略。第一种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 之间没有任何关系,解决这类冲突问题,直接在类(Sub)中重写冲突方法。4)可变集合,就是这个集合可以直接对原对象进行修改,而不会返回新的对象。
2025-04-03 10:17:12
365
原创 大数据技术之Scala
Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。在scala中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。在其作用范围内都可以使用。
2025-04-02 17:11:00
567
原创 大数据技术之Scala
(2) 类型省略之后,发现只有一个参数,则圆括号可以省略;解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略)如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加。如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略。如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略。(1) 参数的类型可以省略,会根据形参进行自动的推导。如果函数体只有一行代码,可以省略花括号。
2025-04-01 11:27:13
272
原创 大数据技术之Scala
(4) 因为 while 中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量,而变量需要声明在 while 循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用 for 循环。在Scala的for推导式中,引入变量是指在循环过程中定义额外的临时变量,这些变量的值依赖于循环变量或其他已定义的变量,用于更灵活地处理数据和实现复杂逻辑。- 原理:在循环内部通过条件判断,当元素为偶数时,不执行打印语句(相当于跳过 ),仅当元素为奇数时执行打印操作。
2025-03-31 16:54:20
341
原创 图像识别与应用技术
for 循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。如果被循环的是 Map,返回的就是Map,被循环的是 List,返回的就是 List,以此类推。与Java对比:Scala 的算术操作符如 +(加法)、-(减法)、*(乘法)、/(除法)、%(取余) 以及位操作符 &(按位与)、|(按位或)、^(按位异或)、>>>(无符号右移)、<<< 等 ,和Java在功能上类似。◦在Scala中,to 用于创建一个包含起始值和结束值的整数范围,是闭区间。If else(单分支)
2025-03-28 11:05:27
391
原创 图像识别与应用技术
Scala和Java能无缝相互调用代码,Scala还可使用Java标准库及框架,借助其丰富生态。图中的关系图展示了Java和Scala代码在JVM上的编译执行过程,以及两者代码相互调用的情况。扩展性:Scala设计上考虑到领域特定开发需求,提供独特语言机制,能以库的形式添加新语言结构,如方法可作操作符,能自动构造闭包。类型系统:通过编译时检查保障代码安全一致,支持泛型类、协变逆变等多种特性,还具备强大的类型推断、泛型编程及类型系统扩展能力。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。
2025-03-27 10:24:04
320
原创 图像识别技术与应用
特征图生成与组合:各层通过卷积操作统一得到64个特征图,一共有5组这样的操作,5×64=320 ,最终将这些特征组合起来得到全部特征,用于后续的处理。特征拼接操作:模型引入了特征拼接操作,不同于以往常用的加法操作,而是将不同层的特征进行拼接融合。图中展示了由下采样、上采样、跳跃连接和卷积操作构成的网络结构,特征图之间的连接更为复杂。整体结构:呈现U型结构,左侧是下采样路径(编码过程),右侧是上采样路径(解码过程)高阶特征整合:利用上采样操作来整合高阶特征,这些高阶特征具有较大的感受野和全局性。
2025-03-21 10:36:51
221
原创 图像识别技术与应用
转置卷积概念:介绍了反卷积输入为22的矩阵 Y = [y_0, y_1, y_2, y_3] ,输出为44的矩阵 X = [x_0, ..., x_{16}] ,卷积核为3*3。•卷积与反卷积关系:二者是转置关系,通过展开卷积运算的矩阵形式可以看出,反卷积是对卷积运算矩阵的转置操作,从而实现上采样等功能,在图像分割等任务中用于恢复图像分辨率。基本原理:利用深度学习等技术,让计算机理解图像中的语义信息,将图像分割成具有语义意义的不同部分。典型图像分割网络:提到卷积网络的编码器部分,但未展开讲解。
2025-03-20 10:22:02
237
原创 YOLO系列-V4
Random Erase(随机擦除):这是计算机视觉领域中常用的数据增强技术,通过用随机值或者训练集的平均像素值来替换图像中的某个区域,增加数据的多样性,让模型在训练时能适应图像局部缺失的情况,提升泛化能力。Hide and Seek(捉迷藏):同样是数据增强方法,依据设定的概率随机隐藏图像中的一些补丁区域,使模型学习到图像不同部分的特征,增强对图像特征的提取和识别能力。引入了自底向上的路径,使得底层信息更容易传到顶部,形成了一个捷径,相比ResNet等网络中较深的路径,能更高效地传递信息。
2025-03-14 10:30:55
295
原创 YOLOV3
数量变化:YOLO - V2中选用了5个先验框,而YOLO - V3增加到了9种 ,先验框数量的增加有助于更准确地匹配不同形状和大小的目标物体。整体融合:该架构融合了当时目标检测领域的多种经典做法,在保证检测速度的同时,提高了检测精度。多尺度检测:多尺度检测有助于检测不同大小的目标,先验框能提高目标定位的准确性。不同特征图的先验框:在不同尺度的特征图上分配了不同尺寸的先验框。网络组成:不同数量的残差块组合,得到不同维度的特征图输出。多尺度特征图 尺度因子 损失函数中的尺度相关项。
2025-03-13 10:23:22
106
原创 YOLOV1和YOLOV2
融合之前特征捕捉小目标;4. 最后,根据边界框、置信度和类别概率,筛选出最终的检测结果,也就是用不同颜色框标记出图像中的各个物体。NMS的作用是在目标检测中,当一个目标被多个边界框检测到时,保留置信度最高的边界框,抑制其他重叠的边界框。2. 每个网格会预测多个边界框及其置信度 ,置信度表示该框内存在物体的可能性以及框的准确性。首先将输入图像划分为S×S的网格 ,若物体的中心落在某个网格中,该网格就负责检测这个物体。3. 同时,每个网格还会预测一个类别概率图,表示该网格所检测到的物体属于不同类别的概率。
2025-03-12 16:40:41
171
原创 图像识别技术与应用
特点:场景丰富多样,涵盖自然、城市、室内等各种场景,目标具有不同尺度、姿态和遮挡情况,标注信息全面,包括目标类别、边界框、分割掩码等。anchor-base anchor-base是自顶向下的 类似于传统方法,滑动窗口法穷举出许多,然后再根据置信度之类的进行筛选。特点:图像分辨率适中,标注质量高,在目标检测发展早期是重要的基准数据集,推动了早期目标检测算法的研究和发展。P-R曲线:以召回率为横轴,准确率为纵轴绘制的曲线,直观展示模型在不同召回率下的准确率变化。Two stage 算法。
2025-03-11 10:32:53
308
原创 图像识别课后总结
4.Pytorch数据处理工具箱讲解了Pytorch数据处理工具箱,包括utils.data中的Dataset和DataLoader、torchvision中的transforms和ImageFolder,以及TensorBoard可视化工具的使用。2.Pytorch工具应用介绍了Pytorch中构建神经网络的工具,如nn.Module和nn.functional,以及多种构建模型的方式,还介绍了自定义网络模块和训练模型的流程。在接触图像识别技术的过程中,我被其巨大的潜力和广泛的应用前景深深震撼。
2025-03-10 17:58:56
267
原创 手写数字识别项目
背景:借助PyTorch的nn工具箱,在PyTorch1.5环境(GPU或CPU)下,利用MNIST数据集完成手写数字识别,以直观理解神经网络。数据预处理与迭代器创建:运用torchvision进行预处理,用torch.utils建立数据迭代器。数据下载:通过PyTorch内置的mnist函数下载MNIST数据集。模型实例化与配置:实例化模型,并定义损失函数和优化器。模型构建:基于nn工具箱搭建神经网络模型。可视化源数据:对原始数据进行可视化展示。结果可视化:可视化展示训练结果。forward 方法。
2025-03-06 12:25:31
2935
原创 机器学习简介
目的与优势:提出集成学习算法主要是为了提高机器学习系统的稳定性与精确度,其优势在于能提高预测准确性、泛化能力和处理复杂问题的能力,在图像识别、自然语言处理、金融预测、基因分类、图像分割、视频检索等诸多领域均有应用。boosting方法。
2025-03-05 17:40:21
110
原创 代码分析解释
net.parameters():在PyTorch中,每个继承自nn.Module的模型(这里假设net是这样的模型实例)都有parameters)方法,该方法返回一个可迭代对象,其中的每个元素代表模型中的一层参数,比如权重和偏置。paras_summary函数:接受输入尺寸input_size和模型model作为参数,用于汇总模型各层参数信息。register_hook内部函数:用于为模型的每一层注册前向传播钩子。hook内部函数:在每次前向传播时被调用,获取层的相关信息。2定义损失函数和优化器。
2025-03-04 14:16:05
190
原创 代码运行解析
3. 加载训练集和测试集:使用torchvision.datasets.CIFAR10加载CIFAR10数据集的训练集和测试集,并通过torch.utils.data.DataLoader创建数据加载器,设置批量大小、是否打乱数据和加载数据的进程数。1. 导入必要的库:导入torch.nn和torch.nn.functional用于构建神经网络,同时检测是否有可用的CUDA设备,以便将模型部署到GPU上加速训练。4. 计算并打印模型参数总数:通过遍历模型的所有参数,计算并输出模型中可训练参数的总数。
2025-03-03 17:48:01
366
原创 图像分类项目
• 模型精度下降:训练过程中,数据量不足易使模型陷入局部最优解,无法找到全局最优的参数组合。模型泛化能力受限:深度学习等机器学习模型依赖大量训练数据学习丰富特征,样本量过少时,模型仅能学到有限特征,面对未知数据时处理能力不足,难以将在训练数据中学到的模式应用到新数据上。可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。召回率:又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。准确率:又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。
2025-02-28 10:49:32
225
原创 PyTorch数据处理工具箱
TensorBoard:专为TensorFlow和PyTorch设计的可视化工具,能可视化模型结构、训练指标(如准确率、损失值)、张量分布等,便于监控和调试深度学习模型训练过程。Seaborn:基于Matplotlib的高级可视化库,提供更美观、主题化的图表样式,擅长绘制统计图形,像热力图、箱线图等,有助于探索数据分布和变量间关系。Visdom:Facebook开发的用于可视化神经网络训练的工具,可实时绘制各种图表,展示图像、文本等数据,支持在浏览器中查看,方便远程监控训练。
2025-02-27 09:32:06
275
原创 PyTorch数据处理工具箱
Scikit-learn:机器学习库,包含数据预处理模块,如标准化、归一化、特征选择等工具,还提供了众多经典机器学习算法,用于分类、回归、聚类等任务。Matplotlib 和 Seaborn:数据可视化库,可将处理后的数据以各种图表形式呈现,如折线图、柱状图、散点图等,帮助直观理解数据特征和规律。Pandas:擅长数据的清洗、转换和分析,提供了DataFrame等数据结构,方便处理结构化数据,如读取、处理CSV、Excel等文件。二.数据处理工具箱概述。
2025-02-26 20:08:02
187
原创 PyTorch神经网络工作箱
自定义网络模块通常是指在深度学习框架(如PyTorch、TensorFlow等)中,用户根据特定需求自行设计的神经网络层或模块。以下是一个在PyTorch中自定义网络模块的示例。
2025-02-25 22:49:07
161
原创 Python 神经网络工作箱
nn.Module,写法一般为nn.Xxx,如nn.Linear、nn.Conv2d、nn.CrossEntropyLoss等。nn.functional中的函数,写法一般为nn.funtional.xxx,如nn.funtional.linear、nn.funtional.conv2d、nn.funtional.cross_entropy等。可以在继承`nn.Module`的基础上,使用`nn.Sequential`或其他模型容器来组织模型的层结构。②适用于卷积层、全连接层、dropout层。
2025-02-24 16:34:40
112
原创 卷积神经网络
它在 ImageNet 大规模视觉识别挑战赛(ILSVRC)中取得了突破性成绩,大幅降低了图像分类的错误率,从而推动了深度学习在计算机视觉领域的广泛应用。AlexNet的架构与LeNet相似,但使⽤了更多的卷积层和更多的参数来拟合大规模的ImageNet数据集。今天,AlexNet已经被更有效的架构所超越,但它是从浅层⽹络到深层网络的关键一步。通过构建具有一定“深度”的模型,可以让模型来自动学习好的特征表示(从底层特征,到中层特征,再到高层特征),从而最终提升预测或识别的准确性。
2025-02-21 10:15:34
330
原创 卷积神经网络
不管检测对象出现在图像中的哪个位置,神经网络的前面几层都应该对相同的图像区域具有相似的反应。神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远的区域的关系。保持空间维度:通过填充,可以在卷积操作后保持输入和输出的空间维度(高度和宽度)相同。平均池化操作计算输入特征图的每个局部区域的平均值作为输出。填充是指在输入特征图的边缘添加额外的像(通常是零值像素),以控制输出特征图的大小。步幅的主要目的是:控制输出特征图的大小:较大的步幅会减小输出特征图的空间维度。核矩阵的大小是超参数。
2025-02-20 09:52:05
389
原创 多层感知机
激活函数(如Sigmoid、Tanh、ReLU)用于增强网络的表示能力和学习能力。感知机的局限性在于只能表示由一条直线分割的空间,无法处理线性不可分的问题。通过调整权重和偏置,感知机可以模拟与门、与非门、或门等简单逻辑电路。反向传播:误差从输出层反向传播到各隐藏层,用于更新参数。数据复杂度受样本数量、特征数量、时间和空间结构等因素的影响。通过引入隐藏层和非线性激活函数,MLP可以处理非线性问题。过拟合:模型在训练数据上表现很好,但在新数据上表现不佳。前向传播:输入样本经过输入层、隐藏层到输出层。
2025-02-19 16:52:49
349
原创 图像识别技术与应用
一个人在不接触对方的情况下,通过一种特殊的方式,和对方进行一系列的问答。如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算机是智能的”。通常采用观测数据或与环境交互的形式,机器学习算法会积累更多的经验,其性能也会逐步提高。一个样本(一个图片或者一个候选框)中含有多个物体,标注的label也是多个的,多个类间并不是互斥的,多选多。-交叉熵损失是分类问题中常用的损失函数,用于衡量预测概率与真实标签的差异。严格的讲,梯度指示的反向是各点处的函数值减小最多的方向。
2025-02-18 11:16:20
285
原创 图像识别技术与应用预备知识
优化算法:当我们获得了一些数据源及其表示、一个模型和一个合适的损失函数,接下来就需要一种算法,它能够搜索出最佳参数,以最⼩化损失函数。深度学习中,大多流行的优化算法通常基于一种基本方法——梯度下降。数据:在机器学习或数据分析中,关键组件中的数据通常指的是对模型性能或分析结果有重要影响的特征、变量或数据点(越多数据工作越容易)语音识别系统:采集一个包含大量音频样本的数据集,并对包含和不包含唤醒词的样本进行标注。预测分类任务——最⼩化错误率:预测与实际情况不符的样本⽐例。目标函数:用来量化模型的有效性。
2025-02-17 17:51:25
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人