- 博客(41)
- 收藏
- 关注
原创 Kafka整合和Spark-Streaming核心编程(三)
Transform 允许 DStream 上执行任意的 RDD-to-RDD 函数。即使这些函数并没有在 DStream的 API 中暴露出来,通过该函数可以方便的扩展 Spark API。两个流之间的 join 需要两个流的批次大小一致,这样才能做到同时触发计算。计算过程就是对当前批次的两个流中各自的 RDD 进行 join,与两个 RDD 的 join 效果相同。使用Spark消费Kafka中的数据。# 配置 Sink(写入 Kafka)#指定写入数据到哪一个topic。#指定写入数据到哪一个集群。
2025-04-25 10:15:56
505
原创 Kafka命令行的使用/Spark-Streaming核心编程(二)
ISR: In-Sync Replicas 可以提供服务的副本。设定副本数量,不能大于broker的数量。分区数量,副本数量,都是必须的。在Kafka的数据目录下查看。主题名称-分区编号。
2025-04-24 10:31:40
792
原创 Kafka集群的安装 和安装部署Spark
log.dirs=/root/kafkadata // 数据存放的目录,会自动生成,不需要创建。是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true。是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true。声明Kafka集群对应的一个编号,0、1、2分别代表node01、node02、node03。利用已有的3台机器:node01、node02、node03。②node02、node03也进行相同的配置。
2025-04-23 17:49:50
625
原创 Spark-Streaming核心编程
可以通过使用 ssc.queueStream(queueOfRDDs)来创建 DStream,每一个推送到这个队列中的 RDD,都会作为一个DStream 处理。需求:使用 netcat 工具向 9999 端口不断的发送数据,通过 SparkStreaming 读取端口数据并统计不同单词出现的次数。需求:循环创建几个 RDD,将 RDD 放入队列。创建DStream的三种方式:RDD队列、自定义数据源、kafka数据源。案例:自定义数据源,实现监控某个端口号,获取该端口号内容。
2025-04-22 10:21:46
958
原创 【无标题】
Spark SQL 可以通过 JDBC 从关系型数据库中读取数据的方式创建 DataFrame,通过对。2. 将hive-site.xml 文件拷贝到项目的 resources 目录中。DataFrame 一系列的计算后,还可以将数据再写回关系型数据库中。此处的 node01 改为自己的 hadoop 用户名称。
2025-04-16 18:11:49
762
原创 【无标题】Spark-SQL编程(2)
set("spark.some.config.option", "some-value") // 可选配置。println(f"平均工资: $averageSalary%.2f") // 保留两位小数。println("RDD => DataFrame => DataSet 转换:")println("DataSet => DataFrame => RDD 转换:")println("DataFrame转DataSet:")
2025-04-15 10:04:14
790
原创 Spark-SQL编程
在 IDEA 中开发程序时,如果需要 RDD 与 DF 或者 DS 之间互相操作,那么需要引入 import spark.implicits._ 这里的 spark 不是 Scala 中的包名,而是创建的 sparkSession 对象的变量名称,所以必 须先创建 SparkSession 对象再导入。DataFrame 与 RDD 的主要区别在于,前者带有 schema 元信息,即 DataFrame 所表示的二维表数据集的每一列都带有名称和类型。同是的他们的执行效率和执行方式。
2025-04-14 17:24:22
659
原创 Spark Core(2)
Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后,传回 Driver 端进行 merge。在类型为(K,V)和(K,W)的 RDD 上调用,返回一个(K,(Iterable<V>,Iterable<W>))类型的 RDD。在一个(K,V)的 RDD 上调用,K 必须实现 Ordered 接口(特质),返回一个按照 key 进行排序。在类型为(K,V)和(K,W)的 RDD 上调用,返回一个相同 key 对应的所有元素连接在一起的。
2025-04-11 09:59:27
1097
原创 Spark Core
从 shuffle 的角度:reduceByKey 和 groupByKey 都存在 shuffle 的操作,但是 reduceByKey可以在 shuffle 前对分区内相同 key 的数据进行预聚合(combine)功能,这样会减少落盘的数据量,而 groupByKey 只是进行分组,不存在数据量减少的问题,reduceByKey 性能比较高。该操作用于排序数据。将待处理的数据以分区为单位发送到计算节点进行处理,这里的处理是指可以进行任意的处理,哪怕是过滤数据,在处理时同时可以获取当前分区索引。
2025-04-10 10:29:27
1032
原创 Spark运行架构 RDD相关概念Spark-Core编程
Spark 集群的独立部署环境中,不需要依赖其他的资源调度框架,自身就实现了资源调度的功能,所以环境中还有其他两个核心组件:Master 和 Worker,这里的 Master 是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责,类似于 Yarn 环境中的 RM, 而Worker 呢,也是进程,一个 Worker 运行在集群中的一台服务器上,由 Master 分配资源对数据进行并行的处理和计算,类似于 Yarn 环境中 NM。在提交应用中,可以提供参数指定计算节点的个数,以及对应的资源。
2025-04-09 17:26:05
1148
原创 安装Spark
3) spark-examples_2.12-3.0.0.jar 运行的应用类所在的 jar 包,实际使用时,可以设定为咱们自己打的 jar 包。2) --master local[2] 部署模式,默认为本地模式,数字表示分配的虚拟 CPU 核数量。1) --class 表示要执行程序的主类,此处可以更换为咱们自己写的应用程序。在解压缩文件夹下的 data 目录中,添加 word.txt 文件。4) 数字 10 表示程序的入口参数,用于设定当前应用的任务数量。在命令行工具中执行如下代码指令。
2025-04-08 15:47:06
548
原创 大数据技术之 Scala(6)
(4)扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。Reduce 简化(归约) :通过指定的逻辑将集合中的数据进行聚合,从而减少数据,最终获取结果。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。将集合中的每一个元素映射到某一个函数。Fold 折叠:化简的一种特殊情况。(2)转化/映射(map)
2025-04-08 10:45:44
509
原创 大数据技术之 Scala(5)
元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。说的简单点,就是将多个无关的数据封装为一个整体,称为元组。默认情况下, Scala 使用的是不可变集合, 如果你想使用可变集合, 需要引用。基于函数的排序,通过一个 comparator 函数,实现自定义排序的逻辑。说明:二维数组中有三个一维数组,每个一维数组中有四个元素。对一个集合进行自然排序,通过传递隐式的Ordering。Scala 中的 Map 和 Java 类似,对一个属性或多个属性进行排序,通过它的类型。,它存储的内容也是键值对(
2025-04-07 16:29:14
749
原创 大数据技术之 Scala(4)
第二种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了。第一种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 之间没有任何关系,解决这类冲突问题,直接在类(Sub)中重写冲突方法。的特质中具有相同的方法(方法名,参数列表,返回值均相同),必然会出现继承冲突问题。
2025-04-03 17:41:41
787
原创 大数据技术之 Scala(3)
Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。
2025-04-02 17:17:50
1018
原创 大数据技术之 Scala(2)
解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。函数的本质:函数可以当做一个值进行传递。万物皆对象对象的本质:对数据和行为的一个封装。一个函数/方法在函数/方法体内又调用了本身,我们称之为递归调用。需求:定义一个函数,实现将传入的名称打印出来。:把一个参数列表的多个参数,变成多个参数列表。
2025-04-01 10:45:11
549
原创 大数据技术之 Scala
推荐使用函数式的风格解决break 和continue 的功能,而不是一个关键字。说明:循环守卫,即循环保护式(也称条件判断式,守卫)。说明:将遍历过程中处理的结果返回到一个新 Vector 集合中,使用 yield 关键字。需求 4:循环遍历 10 以内的所有数据,奇数打印,偶数跳过(continue)需求:将原数据中所有值乘以 2,并把数据返回到一个新的集合中。需求 2:采用 Scala 自带的函数,退出循环。需求:输出 1 到 5 中,不等于 3 的值。需求:输出 10 句 " scala"
2025-03-31 17:03:52
643
原创 Scala基础知识点
除了 s 的功能外(不指定格式就和 s 一样),还能进行格式化输出,在变量后用 % 指定输出格式。除了对字面值中的字符不做编码外,raw 插值器与 s 插值器在功能上是相同的。输出个位数与十位数不相同的两位数(个位、十位数均从1-3取值)在任何字符串前加上s,就可以直接在串中使用变量了。Scala中的三个字符串插值器:s、f、raw。If else if else(多分支)If else(单分支)
2025-03-28 11:13:14
854
原创 Scala简介与基础语法
Scala的设计秉承一项事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展。Scala 的编译模型(独立编译,动态类加载)与 Java 和 C# 一样,所以 Scala 代码可以调用 Java 类库(对于.NET实现则可调用.NET类库)。保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名。Scala是静态编译的,所以速度会快很多。-Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。
2025-03-27 09:42:12
349
原创 U-net系列算法
M 训练的时候同样会用到L4 ,效果还不错。现在来看 , 很多视觉任务都可以套用这招。M 以前我们都是加法 , 现在全都要。把能拼能凑的特征全用上就是升级版了。M 可以根据速度要求来快速完成剪枝。这么简单的结构就能把分割任务做好。起初是做医学方向 , 现在也是。其实跟densenet思想一致。损失由多个位置计算 , 再更新。M 因为前面也单独有监督训练。也是很常见的事 , 多输出。M 概述就是编码解码过程。简单但是很实用 ,应用广。特征融合 ,拼接更全面。还引入了特征拼接操作。
2025-03-21 09:38:27
103
原创 图像分割项目
Cityscape数据集:5000张精细标注的图像(2975张训练图、500张验证图和1525张测试图)、20000张粗略标注的图像。COCO数据集:共91类,以人类4岁小孩能够辨识为基准,其中82类有超过5000个instance。实例分割:只预测前景目标的类别属性以及边框,个体ID,每一个像素可以属于多个ID。将不同的像素划分到不同的类别,非常细粒度的分类。VOC数据集:一共2913张图,1464张训练图片,1449张验证图片。人像抠图,医学组织提取,遥感图像分析,自动驾驶,材料图像等。
2025-03-20 09:20:04
248
原创 YOLOv4
并且还是一个捷径 , 红色的没准走个100层(Resnet) , 绿色的几层就到了。亲民政策 , 单GPU就能训练的非常好 , 接下来很多小模块都是这个出发点。M V3中为了更好满足不同输入大小 , 训练的时候要改变输入数据的大小。M 网络细节部分加入了很多改进 , 引入了各种能让特征提取更好的方法。M 注意力机制 , 网络细节设计 ,特征金字塔等 , 你能想到的全有。M 不仅考虑了IoU的值,还考虑了两个Box中心点之间的距离。消融实验 , 感觉能做的都让他给做了 ,这工作量不轻。
2025-03-14 10:29:04
390
原创 YOLO-V3
终于到V3了,最大的改进YOLO-V3就是网络结构,使其更适合小目标检测。logistic激活函数来完成,这样就能预测每一个类别是/不是。V3中也用了resnet的思想,堆叠更多的层来进行特征提取。特征做的更细致,融入多持续特征图信息来预测不同规格物体。先验框更丰富了,3种scale,每种3个规格,一共9种。物体检测任务中可能一个物体有多个标签。softmax改进,预测多标签任务。所有网络架构都用上了残差连接的方法。下采样通过stride为2实现。没有池化和全连接层,全部卷积。3种scale,更多先验框。
2025-03-13 09:43:38
97
原创 Yolov1和YOLOV2
很明显,堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取也会越细致,加入的非线性变换也随着增多,还不会增大权重参数个数,这就是VGG网络的基本出发点,用小的卷积核来完成体特征提取操作。faster-rcnn系列选择的先验比例都是常规的,但是不一定完全适合数据集。最后一层时感受野太大了,小目标可能丢失了,需融合之前的特征。这样会导致收敛问题,模型不稳定,尤其是刚开始进行训练的时候。V1训练时用的是224*224,测试时使用448*448。使用高分辨率分类器后,YOLOv2的mAP提升了约4%
2025-03-12 15:53:51
295
原创 目标检测项目
(Xmin, Ymin, W, H),其中x,y,w,h均不是归一化后的数值,分别代表左上角坐标和宽、高。经典发展线:R-CNN、SPP-Net、Fast R-CNN、 Faster R-CNN。(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。候选框列表中的所有框依次与A计算IoU,删除大于阈值的候选框。选取置信度最高的框A添到输出列表,将其从候选框列表删除。设定目标框的置信度阈值,常用的阈值是0.5左右。mean AP:每个类别所得到的AP的均值。
2025-03-11 09:39:37
303
原创 图像分类识别项目总结与感悟
从最初对简单边缘、纹理的识别,到逐渐抽象出物体的形状、结构等高级特征,每一层网络都像是在对图像进行一场深度解析。最初接触图像分类识别,是源于生活中无处不在的智能应用,如手机相册的自动分类、安防监控中的人脸识别、自动驾驶中的交通标志识别等。主对角线的元素之和为正确分类的样本数,其余元素之和为错误分类的样本数。对角线的值越大,分类器准确率越高。召回率(Recall):又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。将不同的图像,划分到不同的类别标签,实现最小的分类误差。
2025-03-10 18:34:04
310
原创 数字识别项目
定义损失函数可以通过自定义方法或使用PyTorch内置的损失函数,如回归使用的losss_fu=mMSELos(),分类使用的m.BCELos等损失函数,更多内容可参考本书5.2.4节。其中nodeltrain()是保证BN层用每一批数据的均值和方差,而nodel.eval()是保证BN用全合训练数据的均值和方差;Dropout,model.train()是随机取一部分网络连接来训练更新参数,而model.eval()是利用到了所有网络连接。1)设置为测试或验证模式:model.eval()
2025-03-06 10:12:00
281
原创 图像识别技术-集成算法
对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务等。
2025-03-05 16:03:47
168
原创 Pytorch实现cifar10多分类
数据集分为5个训练批次和1个测试批次,每个批次有1000个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。训练批次以随机顺序选取剩余图像,但一些训练批次可能更多会选取来自一个类别的图像。总体来说,五个训练集之和包含来自每个类的正好5000张图像。图6-27显示了数据集中涉及的10个类,以及来自每个类的10个随机图像。CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。
2025-03-03 17:26:35
97
原创 图像分类项目
深度学习最重要的属性,计算最长路径的卷积层+全连接层数量。LeNet网络,C1+C3+C5+F6+Output共5层。主对角线的元素之和为正确分类的样本数,其余元素之和为错误分类的样本数。对角线的值越大,分类器准确率越高。对于k分类问题,混淆矩阵为k*k的矩阵,元素Cij表示第i类样本被分类器判定为第j类的数量。每一个网络层的通道数,以卷积网络层计算。将不同的图像,划分到不同的类别标签,实现最小的分类误差。无监督方法:通过GAN网络生成所需样本,然后再进行训练。·曲线和坐标轴面积越大,模型越好。
2025-02-28 09:34:06
235
原创 Pytorch数据处理工具(2)
如果要对数据集进行多个操作,可通过Compose将这些操作像管道一样拼接起来,类似于nn.Sequential。transforms提供了对PIL Image对象和Tensor对象的常用操作。transforms提供了对PIL Image对象和Tensor对象的常用操作。用于可视化文本数据,例如模型生成的文本或训练日志。对PIL Image的常见操作如下。用于可视化高维数据的低维表示。标准化,即减均值,除以标准差。用于可视化图形或复杂的图表。用于可视化数据的分布。用于可视化图像数据。用于可视化音频数据。
2025-02-27 09:46:00
298
原创 Pytorch数据处理工具箱
如果要对数据集进行多个操作,可通过Compose将这些操作像管道一样拼接起来,类似于nn.Sequential。transforms提供了对PIL Image对象和Tensor对象的常用操作。ImageFolder可以读取不同目录下的图像数据。_getitem_一次只能获取一个样本。2.DataLoader:可以批量处理。
2025-02-26 17:28:21
205
原创 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:15:42
317
原创 卷积神经网络(2)
通过构建具有一定“深度”的模型,可以让模型来自动学习好的特征表示(从底层特征,到中层特征,再到高层特征),从而最终提升预测或识别的准确性。表示学习:如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习。AlexNet的架构与LeNet相似,但使⽤了更多的卷积层和更多的参数来拟合大规模的ImageNet数据集。今天,AlexNet已经被更有效的架构所超越,但它是从浅层⽹络到深层网络的关键一步。浅层卷积核提取:边缘、颜色、斑块等底层像素特征。
2025-02-21 09:31:02
324
原创 卷积神经网络
不管检测对象出现在图像中的哪个位置,神经网络的前面几层都应该对相同的图像区域具有相似的反应。神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远的区域的关系。卷积层对输入和卷积核进行互相关运算,并在添加标量偏置之后产生输出。步幅是每次滑动核窗口时的行/列的步长,可以成倍的减少输出形状。卷积层将输入和卷积核进行交叉相关,加上偏移后得到输出。填充在输入周围添加额外的行/列,增加输出的高度和宽度。每个通道都有一个卷积核,结果是所有通道卷积结果的和。填充和步幅可以改变输出的高度和宽度。
2025-02-20 09:50:50
189
原创 多层感知机
激活函数:函数会将输入信号的总和转换为输出信号,这种函数一般称为激活函数(activation function)。(3) 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性。神经网络在外界输入样本的刺激下不断改变网络的连接权值乃至拓扑结构,以使网络的输出不断地接近期望的输出。如“激活”一词所示,激活函数的作用在于决定如何来激活输入信号的总和。(2) 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率。(1) 连续并可导(允许少数点上不可导)的非线性函数。
2025-02-19 16:52:33
271
原创 预备知识2
PyTorch是由Meta AI(Facebook)人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库,目前被广泛应用于学术界和工业界,PyTorch在API的设计上更加简洁、优雅和易懂。“一个人在不接触对方的情况下,通过一种特殊的方式,和对方进行一系列的问答。一个样本(一个图片或者一个候选框)中含有多个物体,标注的label也是多个的,多个类间并不是互斥的,多选多。廉价又高质量的传感器、廉价的数据存储以及廉价计算的普及,特别是GPU的普及,使大规模的算力唾手可得。
2025-02-18 11:20:40
292
原创 线性回归和softmax回归
流程:在梯度法中,函数的取值从当前位置沿着梯度方向前进一定的距离,然后在新的方向重新求梯度,再沿着新梯度的方向前进,如此反复,不断的沿梯度方向前进。比如,对于某个输入图像,预测是图中的数字0到9中的哪一个的问题(10类别分类问题),将输出层的神经元设定为10个。梯度指示的反向是各点处的函数值减小最多的方向,所以无法保证梯度所指的方向就是函数的最小值或者真正应该前进的方向。所以在寻找函数的最小值的位置任务中,以梯度的信息为线索,决定前进的方向。严格的讲,梯度指示的反向是各点处的函数值减小最多的方向。
2025-02-18 10:43:58
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人