- 博客(47)
- 收藏
- 关注
原创 本节课课堂总结
imread() 方法返回一个 numpy.ndarray 对象,其形状是 (nrows, ncols, nchannels),表示读取的图像的行数、列数和通道数。imshow() 创建了一个 4x4 的二维 numpy 数组,并对其进行了三种不同的 imshow 图像展示。imshow() 创建了一个 4x4 的二维 numpy 数组,并对其进行了三种不同的 imshow 图像展示。我们可以使用 pyplot 中的 hist() 方法来绘制直方图。1.如果我们将数组乘以一个数 0≤≤1,图像将变暗。
2025-04-29 10:53:16
364
原创 学习spark-streaming收获
Streaming 的微批处理(Micro-Batch)模型,将流数据切分为小批次(如1秒间隔)进行处理,与真正的流处理(如Flink)的区别。DStream 的抽象,它是一系列连续的RDD,通过转换操作(如 map、reduceByKey)实现流式计算。•容错机制:通过 RDD的血缘(Lineage)和检查点(Checkpoint) 实现故障恢复,确保数据不丢失。• 窗口操作(Window Operations):学会了滑动窗口(如 window、• 输入源 (Input Sources):熟悉了从。
2025-04-27 17:37:09
391
原创 本节课课堂总结
给定一个由(键,事件)对构成的 DStream,并传递一个指定如何根据新的事件更新每个键对应状态的函数,它可以构建出一个新的 DStream,其内部数据为(键,状态) 对。与 RDD 中的惰性求值类似,如果一个 DStream 及其派生出的 DStream 都没有被执行输出操作,那么这些 DStream 就都不会被求值。updateStateByKey() 的结果会是一个新的 DStream,其内部的 RDD 序列是由每个时间区间对应的(键,状态)对组成的。1. 定义状态,状态可以是一个任意的数据类型。
2025-04-27 17:36:12
411
原创 本节课课堂总结
需要记住的是,尽管这些函数看起来像作用在整个流上一样,但事实上每个 DStream 在内部是由许多 RDD(批次)组成,且无状态转化操作是分别应用到每个 RDD 上的。需要记住的是,尽管这些函数看起来像作用在整个流上一样,但事实上每个 DStream 在内部是由许多 RDD(批次)组成,且无状态转化操作是分别应用到每个 RDD 上的。需要记住的是,尽管这些函数看起来像作用在整个流上一样,但事实上每个 DStream 在内部是由许多 RDD(批次)组成,且无状态转化操作是分别应用到每个 RDD 上的。
2025-04-25 10:49:40
278
原创 本节课课堂总结
存在的问题,接收数据的 Executor 和计算的 Executor 速度会有所不同,特别在接收数据的 Executor速度大于计算的 Executor 速度,会导致计算数据的节点内存溢出。1) 需求:通过 SparkStreaming 从 Kafka 读取数据,并将读取过来的数据做简单计算,最终打印到控制台。DirectAPI:是由计算的 Executor 来主动消费 Kafka 的数据,速度由自身控制。//通过读取kafka数据,创建DStream。6) 开启Kafka生产者,产生数据。
2025-04-24 11:31:24
656
原创 本节课课堂总结
另一种是消息队列推送数据,消费者的消费能力不一样,没法根据不同的消费者提供不同的推送速度。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处),发送消息必须有主题。Kafka中存储的消息,被消费后不会被删除,可以被重复消费,消息会保留多长,由kafka自己去配置。当consumer去消费数据的时候,会有一个偏移量(offset),一个分区的数据,一个consumer只能消费一次。
2025-04-23 16:49:50
793
原创 本节课课堂总结
在Spark 1.5 以前版本,用户如果要限制 Receiver 的数据接收速率,可以通过设置静态配制参数“spark.streaming.receiver.maxRate”的值来实现,此举虽然可以通过限制接收速率,来适配当前的处理能力,防止内存溢出,但也会引入其它问题。Spark Streaming 支持的数据输入源很多,例如:Kafka、Flume、Twitter等,以及和简单的 TCP 套接字等等。容错:Spark Streaming在没有额外代码和配置的情况下,可以恢复丢失的数据。
2025-04-22 11:37:32
463
原创 本节课课堂总结
Apache Hive 是 Hadoop 上的 SQL 引擎,Spark SQL 编译时可以包含 Hive 支持,也可以不包含。包含 Hive 支持的 Spark SQL 可以支持 Hive 表访问、UDF (用户自定义函数)、Hive 查询语言(HQL)等。需要强调的一点是,如果要在 Spark SQL 中包含Hive 的库,并不需要事先安装 Hive。使用方式分为内嵌Hive、外部Hive、Spark-SQL CLI、Spark beeline 以及代码操作。Spark-SQL连接Hive。
2025-04-21 17:41:30
392
原创 本节课课堂总结:
"):在"csv"、"jdbc"、"json"、"orc"、"parquet"和"textFile"格式下需要传入加载。"):指定加载的数据类型,包括"csv"、"jdbc"、"json"、"orc"、"parquet"和。"):指定保存的数据类型,包括"csv"、"jdbc"、"json"、"orc"、"parquet"和。➢ save ("…"):在"csv"、"orc"、"parquet"和"textFile"格式下需要传入保存数据的路径。如果保存不同格式的数据,可以对不同的数据格式进行设定。
2025-04-16 16:47:26
705
原创 本节课课堂总结:
强类型的 Dataset 和弱类型的 DataFrame 都提供了相关的聚合函数, 如 count(),// 聚合函数缓冲区中值的数据类型(salary,count)// 稳定性:对于相同的输入是否一直返回相同的输出。//创建SparkSession对象。//创建SparkSession对象。//在 spark 中注册聚合函数。//在 spark 中注册聚合函数。// 函数返回值的数据类型。//读取json文件。// 更新缓冲区中的数据。
2025-04-15 10:55:29
672
原创 本节课课堂总结:
这使得 Spark SQL 得以洞察更多的结构信息,从而对藏于 DataFrame 背后的数据源以及作用于 DataFrame 之上的变换进行了针对性的优化,最终达到大幅提升运行时效率的目标。在 IDEA 中开发程序时,如果需要 RDD 与 DF 或者 DS 之间互相操作,那么需要引入 import spark.implicits._ 这里的 spark 不是 Scala 中的包名,而是创建的 sparkSession 对象的变量名称,所以必 须先创建 SparkSession 对象再导入。
2025-04-14 16:53:18
479
原创 本节课课堂总结
Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后传。比如,如果你的应用需要向所有节点发送一个较大的只读查询表,行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合。聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据。在驱动程序中,以数组 Array 的形式返回数据集的所有元素。返回一个由 RDD 的前 n 个元素组成的数组。
2025-04-11 11:13:06
347
原创 本节课课堂总结
(acc1: (Int, Int), acc2: (Int, Int)) => (acc1._1 + acc2._1, acc1._2 + acc2._2) //将分区内部计算的结果进行分区间的汇总计算,得到每个key的总值以及每个key出现的次数。示例:现有数据 List(("a", 88), ("b", 95), ("a", 91), ("b", 93), ("a", 95), ("b", 98)),求每个key的总值及每个key对应键值对的个数。Map 算子主要目的将数据源中的数据进行转换和改变。
2025-04-10 11:41:26
414
原创 本节课课堂总结
Spark 集群的独立部署环境中,不需要依赖其他的资源调度框架,自身就实现了资源调度的功能,所以环境中还有其他两个核心组件:Master 和 Worker,这里的 Master 是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责,类似于 Yarn 环境中的 RM, 而Worker 呢,也是进程,一个 Worker 运行在集群中的一台服务器上,由 Master 分配资源对数据进行并行的处理和计算,类似于 Yarn 环境中 NM。在提交应用中,可以提供参数指定计算节点的个数,以及对应的资源。
2025-04-09 17:13:13
627
原创 本节课课堂总结
(4)扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。将集合中的每一个元素映射到某一个函数。按照指定的规则对集合的元素进行分组。(2)转化/映射(map)(5)分组(group)
2025-04-08 09:47:45
199
原创 本节课课堂总结
你可以在"之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。
2025-04-07 18:09:14
273
原创 本节课课堂总结
Scala语言是完全面向对象的语言,所以并没有静态的操作(即在Scala中没有静态的概念)。第二种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了特质叠加的策略。由于一个类可以混入(mixin)多个 trait,且 trait 中可以有具体的属性和方法,若混入的特质中具有相同的方法(方法名,参数列表,返回值均相同),必然会出现继承冲突问题。
2025-04-03 11:12:55
350
原创 本节课课堂总结
Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。
2025-04-03 11:12:08
374
原创 本节课课堂总结:
函数的本质:函数可以当做一个值进行传递。当函数返回值被声明为 lazy 时,函数的执行将被推迟,直到我们首次对此取值,该函数才会执行。解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。闭包:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。函数柯里化:把一个参数列表的多个参数,变成多个参数列表。需求:定义一个函数,实现将传入的名称打印出来。
2025-04-01 10:36:58
257
原创 本节课课堂总结
其 中 ,for,while,do…(2)for 推导式有一个不成文的约定:当 for 推导式仅包含单一表达式时使用圆括号, 当包含多个表达式时,一般每行一个表达式,并用花括号代替圆括号,如下。(1)循环守卫,即循环保护式(也称条件判断式,守卫)。说明:将遍历过程中处理的结果返回到一个新 Vector 集合中,使用 yield 关键字。(2)设外层循环次数为m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次。需求:将原数据中所有值乘以 2,并把数据返回到一个新的集合中。(2)上面的代码等价。
2025-03-31 17:36:41
320
原创 本节课课堂总结
例如,Scala还提供了RichInt、RichDouble、RichChar等类型,RichInt就提供了to方法,1.to(10),此处Int先隐式转换为RichInt,然后再调用其to方法。scala中没有提供++、--操作符,我们只能使用+和-,比如num = 1,num ++是错误的,必须写做num += 1。scala的算术操作符与java的算术操作符也没有什么区别,比如+、-、*、/、%等,以及&、|、^、>>、<<等。//使用var定义的变量是可变的,在Scala中鼓励使用val。
2025-03-28 11:08:29
556
原创 本节课课堂总结
你可以在"之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。
2025-03-28 10:33:24
323
原创 本节课课堂总结
5*64 =320 , 最终组合得到全部特征。现在来看 , 很多视觉任务都可以套用这招。训练的时候同样会用到L4 ,效果还不错。把能拼能凑的特征全用上就是升级版了。不同的max pool整合低阶特征。以前我们都是加法 , 现在全都要。这么简单的结构就能把分割任务做好。起初是做医学方向 , 现在也是。其实跟densenet思想一致。损失由多个位置计算 , 再更新。(X1和X2 , 轮廓之类的)也是很常见的事 , 多输出。(感受野大的 , 全局的)简单但是很实用 ,应用广。特征融合 ,拼接更全面。
2025-03-21 10:59:05
339
原创 本节课课堂总结
Cityscape数据集:5000张精细标注的图像(2975张训练图、500张验证图和1525张测试图)、20000张粗略标注的图像。COCO数据集:共91类,以人类4岁小孩能够辨识为基准,其中82类有超过5000个instance。实例分割:只预测前景目标的类别属性以及边框,个体ID,每一个像素可以属于多个ID。将不同的像素划分到不同的类别,非常细粒度的分类。VOC数据集:一共2913张图,1464张训练图片,1449张验证图片。人像抠图,医学组织提取,遥感图像分析,自动驾驶,材料图像等。
2025-03-20 11:16:23
336
原创 本节课课堂总结
亲民政策 , 单GPU就能训练的非常好 , 接下来很多小模块都是这个出发点。数据增强: 调整亮度、 对比度、 色调、 随机缩放、 剪切、 翻转、 旋转。V3中为了更好满足不同输入大小 , 训练的时候要改变输入数据的大小。做人留一面日好相见 ,柔和一点的NMS , 更改分数而且直接剔除。网络细节部分加入了很多改进 , 引入了各种能让特征提取更好的方法。注意力机制 , 网络细节设计 ,特征金字塔等 , 你能想到的全有。消融实验 , 感觉能做的都让他给做了 ,这工作量不轻。
2025-03-14 11:25:56
408
原创 本节课课堂总结
终于到V3了,最大的改进就是网络结构,使其更适合小目标检测。V3中也用了resnet的思想,堆叠更多的层来进行特征提取。从今天的角度来看,基本所有网络架构都用上了残差连接的方法。特征做的更细致,融入多持续特征图信息来预测不同规格物体。先验框更丰富了,3种scale,每种3个规格,一共9种。为了能检测到不同大小的物体,设计了3个scale。softmax改进,预测多标签任务。下采样通过stride为2实现。没有池化和全连接层,全部卷积。3种scale,更多先验框。残差连接-为了更好的特征。
2025-03-13 11:31:37
98
原创 本节课课堂总结
➢ 如果堆叠3个3*3的卷积层,并且保持滑动窗口步长为1,其感受野就是7*7的了,这跟一个使用7*7卷积核的结果是一样的,那为什么非要堆叠3个小卷积呢?➢ 例如预测值(σtx,σty,tw,th)=(0.2,0.1,0.2,0.32),anchor框为。➢ 从现在的角度来看,Batch Normalization已经成网络必备处理。➢ 从现在的角度来看,Batch Normalization已经成网络必备处理。➢ 经过Batch Normalization处理后的网络会提升2%的mAP。
2025-03-12 17:02:52
858
原创 课堂知识总结
VOC数据集:PASCAL VOC挑战赛(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛。(Xmin, Ymin, W, H),其中x,y,w,h均不是归一化后的数值,分别代表左上角坐标和宽、高。经典发展线:R-CNN、SPP-Net、Fast R-CNN、 Faster R-CNN。(Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。候选框列表中的所有框依次与A计算IoU,删除大于阈值的候选框。
2025-03-11 10:45:37
275
原创 图像识别技术知识总结
特征提取:特征提取是图像识别的关键步骤,旨在从图像中提取出能够代表图像本质特征的向量。分类与识别:在提取图像特征后,需要将这些特征与预先训练好的模型进行比对,以确定图像所属的类别或识别出图像中的特定对象。其中,深度学习方法在图像分类与识别领域表现出色,通过构建多层神经网络,对大量图像数据进行训练,学习图像特征与类别之间的映射关系,从而实现对新图像的准确分类和识别。图像增强,通过调整图像的对比度、亮度等参数,突出图像中的关键特征,便于后续的特征提取。
2025-03-10 17:26:15
124
原创 第十三节课课堂总结
对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。②Boosting:个体学习器间存在强依赖关系、必须串行生成的序列化方法,如Adaboost。集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务等。①Bagging:个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表为随机森林。③Stacking:聚合多个分类或回归模型(可以分阶段来做)
2025-03-05 17:06:12
224
原创 第十节课课堂总结
可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。主对角线的元素之和为正确分类的样本数,其余元素之和为错误分类的样本数。准确率(Precision):又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。召回率(Recall):又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。对于k分类问题,混淆矩阵为k*k的矩阵,元素Cij表示第i类样本被分类器判定为第j类的数量。将不同的图像,划分到不同的类别标签,实现最小的分类误差。· 迁移学习:使用预训练模型。
2025-02-28 11:28:41
432
原创 第九节课课堂总结
cd到logs目录所在的同级目录,在命令行输入如下命令,logdir等式右边可以是相对路径或绝对路径。dataset 中的数据个数可能不是 batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃。是否将数据保存在锁页内存(pin memory区),其中的数据转到GPU会快一些。如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可。DataLoader:可以批量处理。使用多进程加载的进程数,0代表不使用多进程。TensorBoard的使用一般步骤如下。
2025-02-27 09:55:56
574
原创 第九节课课堂总结
cd到logs目录所在的同级目录,在命令行输入如下命令,logdir等式右边可以是相对路径或绝对路径。dataset 中的数据个数可能不是 batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃。是否将数据保存在锁页内存(pin memory区),其中的数据转到GPU会快一些。如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可。DataLoader:可以批量处理。使用多进程加载的进程数,0代表不使用多进程。TensorBoard的使用一般步骤如下。
2025-02-27 09:53:07
765
原创 第八节课课堂总结
dataset 中的数据个数可能不是 batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃。是否将数据保存在锁页内存(pin memory区),其中的数据转到GPU会快一些。如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可。2.DataLoader:可以批量处理。相关参数介绍如下所示。使用多进程加载的进程数,0代表不使用多进程。2.DataLoader:可以批量处理。Pytorch数据处理工具箱。
2025-02-26 17:09:16
181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人