- 博客(38)
- 收藏
- 关注
原创 本节课课堂总结
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
181
原创 本节课课堂总结:
"):在"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
667
原创 本节课课堂总结:
强类型的 Dataset 和弱类型的 DataFrame 都提供了相关的聚合函数, 如 count(),// 聚合函数缓冲区中值的数据类型(salary,count)// 稳定性:对于相同的输入是否一直返回相同的输出。//创建SparkSession对象。//创建SparkSession对象。//在 spark 中注册聚合函数。//在 spark 中注册聚合函数。// 函数返回值的数据类型。//读取json文件。// 更新缓冲区中的数据。
2025-04-15 10:55:29
651
原创 本节课课堂总结:
这使得 Spark SQL 得以洞察更多的结构信息,从而对藏于 DataFrame 背后的数据源以及作用于 DataFrame 之上的变换进行了针对性的优化,最终达到大幅提升运行时效率的目标。在 IDEA 中开发程序时,如果需要 RDD 与 DF 或者 DS 之间互相操作,那么需要引入 import spark.implicits._ 这里的 spark 不是 Scala 中的包名,而是创建的 sparkSession 对象的变量名称,所以必 须先创建 SparkSession 对象再导入。
2025-04-14 16:53:18
466
原创 本节课课堂总结
Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后传。比如,如果你的应用需要向所有节点发送一个较大的只读查询表,行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合。聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据。在驱动程序中,以数组 Array 的形式返回数据集的所有元素。返回一个由 RDD 的前 n 个元素组成的数组。
2025-04-11 11:13:06
334
原创 本节课课堂总结
(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
401
原创 本节课课堂总结
Spark 集群的独立部署环境中,不需要依赖其他的资源调度框架,自身就实现了资源调度的功能,所以环境中还有其他两个核心组件:Master 和 Worker,这里的 Master 是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责,类似于 Yarn 环境中的 RM, 而Worker 呢,也是进程,一个 Worker 运行在集群中的一台服务器上,由 Master 分配资源对数据进行并行的处理和计算,类似于 Yarn 环境中 NM。在提交应用中,可以提供参数指定计算节点的个数,以及对应的资源。
2025-04-09 17:13:13
612
原创 本节课课堂总结
(4)扁平化+映射 注:flatMap 相当于先进行 map 操作,在进行 flatten 操作集合中的每个元素的子元素映射到某个函数并返回新集合。单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果。遍历一个集合并从中获取满足指定条件的元素组成一个新的集合。将集合中的每一个元素映射到某一个函数。按照指定的规则对集合的元素进行分组。(2)转化/映射(map)(5)分组(group)
2025-04-08 09:47:45
188
原创 本节课课堂总结
你可以在"之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。
2025-04-07 18:09:14
261
原创 本节课课堂总结
Scala语言是完全面向对象的语言,所以并没有静态的操作(即在Scala中没有静态的概念)。第二种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了特质叠加的策略。由于一个类可以混入(mixin)多个 trait,且 trait 中可以有具体的属性和方法,若混入的特质中具有相同的方法(方法名,参数列表,返回值均相同),必然会出现继承冲突问题。
2025-04-03 11:12:55
317
原创 本节课课堂总结
Scala 有两种包的管理风格,一种方式和 Java 的包管理风格相同,每个源文件一个包(包名和源文件所在路径不要求必须一致),包名用“.”进行分隔以表示包的层级关系,如com.zpark.scala。封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。在 Scala 中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有 class 和 object 的共享变量,可以被直接访问。
2025-04-03 11:12:08
362
原创 本节课课堂总结:
函数的本质:函数可以当做一个值进行传递。当函数返回值被声明为 lazy 时,函数的执行将被推迟,直到我们首次对此取值,该函数才会执行。解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。闭包:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包。解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。函数柯里化:把一个参数列表的多个参数,变成多个参数列表。需求:定义一个函数,实现将传入的名称打印出来。
2025-04-01 10:36:58
244
原创 本节课课堂总结
其 中 ,for,while,do…(2)for 推导式有一个不成文的约定:当 for 推导式仅包含单一表达式时使用圆括号, 当包含多个表达式时,一般每行一个表达式,并用花括号代替圆括号,如下。(1)循环守卫,即循环保护式(也称条件判断式,守卫)。说明:将遍历过程中处理的结果返回到一个新 Vector 集合中,使用 yield 关键字。(2)设外层循环次数为m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次。需求:将原数据中所有值乘以 2,并把数据返回到一个新的集合中。(2)上面的代码等价。
2025-03-31 17:36:41
311
原创 本节课课堂总结
例如,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
545
原创 本节课课堂总结
你可以在"之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。
2025-03-28 10:33:24
307
原创 本节课课堂总结
5*64 =320 , 最终组合得到全部特征。现在来看 , 很多视觉任务都可以套用这招。训练的时候同样会用到L4 ,效果还不错。把能拼能凑的特征全用上就是升级版了。不同的max pool整合低阶特征。以前我们都是加法 , 现在全都要。这么简单的结构就能把分割任务做好。起初是做医学方向 , 现在也是。其实跟densenet思想一致。损失由多个位置计算 , 再更新。(X1和X2 , 轮廓之类的)也是很常见的事 , 多输出。(感受野大的 , 全局的)简单但是很实用 ,应用广。特征融合 ,拼接更全面。
2025-03-21 10:59:05
331
原创 本节课课堂总结
Cityscape数据集:5000张精细标注的图像(2975张训练图、500张验证图和1525张测试图)、20000张粗略标注的图像。COCO数据集:共91类,以人类4岁小孩能够辨识为基准,其中82类有超过5000个instance。实例分割:只预测前景目标的类别属性以及边框,个体ID,每一个像素可以属于多个ID。将不同的像素划分到不同的类别,非常细粒度的分类。VOC数据集:一共2913张图,1464张训练图片,1449张验证图片。人像抠图,医学组织提取,遥感图像分析,自动驾驶,材料图像等。
2025-03-20 11:16:23
313
原创 本节课课堂总结
亲民政策 , 单GPU就能训练的非常好 , 接下来很多小模块都是这个出发点。数据增强: 调整亮度、 对比度、 色调、 随机缩放、 剪切、 翻转、 旋转。V3中为了更好满足不同输入大小 , 训练的时候要改变输入数据的大小。做人留一面日好相见 ,柔和一点的NMS , 更改分数而且直接剔除。网络细节部分加入了很多改进 , 引入了各种能让特征提取更好的方法。注意力机制 , 网络细节设计 ,特征金字塔等 , 你能想到的全有。消融实验 , 感觉能做的都让他给做了 ,这工作量不轻。
2025-03-14 11:25:56
403
原创 本节课课堂总结
终于到V3了,最大的改进就是网络结构,使其更适合小目标检测。V3中也用了resnet的思想,堆叠更多的层来进行特征提取。从今天的角度来看,基本所有网络架构都用上了残差连接的方法。特征做的更细致,融入多持续特征图信息来预测不同规格物体。先验框更丰富了,3种scale,每种3个规格,一共9种。为了能检测到不同大小的物体,设计了3个scale。softmax改进,预测多标签任务。下采样通过stride为2实现。没有池化和全连接层,全部卷积。3种scale,更多先验框。残差连接-为了更好的特征。
2025-03-13 11:31:37
92
原创 本节课课堂总结
➢ 如果堆叠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
834
原创 课堂知识总结
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
270
原创 图像识别技术知识总结
特征提取:特征提取是图像识别的关键步骤,旨在从图像中提取出能够代表图像本质特征的向量。分类与识别:在提取图像特征后,需要将这些特征与预先训练好的模型进行比对,以确定图像所属的类别或识别出图像中的特定对象。其中,深度学习方法在图像分类与识别领域表现出色,通过构建多层神经网络,对大量图像数据进行训练,学习图像特征与类别之间的映射关系,从而实现对新图像的准确分类和识别。图像增强,通过调整图像的对比度、亮度等参数,突出图像中的关键特征,便于后续的特征提取。
2025-03-10 17:26:15
119
原创 第十三节课课堂总结
对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。②Boosting:个体学习器间存在强依赖关系、必须串行生成的序列化方法,如Adaboost。集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务等。①Bagging:个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表为随机森林。③Stacking:聚合多个分类或回归模型(可以分阶段来做)
2025-03-05 17:06:12
206
原创 第十节课课堂总结
可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。主对角线的元素之和为正确分类的样本数,其余元素之和为错误分类的样本数。准确率(Precision):又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。召回率(Recall):又称为查全率,表示模型正确识别出为正类的样本的数量占总的正类样本数量的比值。对于k分类问题,混淆矩阵为k*k的矩阵,元素Cij表示第i类样本被分类器判定为第j类的数量。将不同的图像,划分到不同的类别标签,实现最小的分类误差。· 迁移学习:使用预训练模型。
2025-02-28 11:28:41
411
原创 第九节课课堂总结
cd到logs目录所在的同级目录,在命令行输入如下命令,logdir等式右边可以是相对路径或绝对路径。dataset 中的数据个数可能不是 batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃。是否将数据保存在锁页内存(pin memory区),其中的数据转到GPU会快一些。如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可。DataLoader:可以批量处理。使用多进程加载的进程数,0代表不使用多进程。TensorBoard的使用一般步骤如下。
2025-02-27 09:55:56
562
原创 第九节课课堂总结
cd到logs目录所在的同级目录,在命令行输入如下命令,logdir等式右边可以是相对路径或绝对路径。dataset 中的数据个数可能不是 batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃。是否将数据保存在锁页内存(pin memory区),其中的数据转到GPU会快一些。如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可。DataLoader:可以批量处理。使用多进程加载的进程数,0代表不使用多进程。TensorBoard的使用一般步骤如下。
2025-02-27 09:53:07
747
原创 第八节课课堂总结
dataset 中的数据个数可能不是 batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃。是否将数据保存在锁页内存(pin memory区),其中的数据转到GPU会快一些。如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可。2.DataLoader:可以批量处理。相关参数介绍如下所示。使用多进程加载的进程数,0代表不使用多进程。2.DataLoader:可以批量处理。Pytorch数据处理工具箱。
2025-02-26 17:09:16
169
原创 第七节课课堂总结
残差块有两种,一种是正常的模块方式,将输入与输出相加,然后应用激活函数ReLU。另一种是为使输入与输出形状一致,需添加通过1×1卷积调整通道和分辨率。·组合这两个模块得到现代经典RetNet18网络结构。继承nn.Module基类并应用模型容器构建模型。1.使用nn.Sequential模型容器。2.使用nn.ModuleList模型容器。3.使用nn.ModuleDict模型容器。5.循环测试或验证模型。1.加载预处理数据集。
2025-02-25 10:13:48
417
原创 第六节课课堂总结:
Pytorch神经网络工具箱 神经网络核心组件 层:神经网络的基本结构,将输入张量转换为输出张量。模型:层构成的网络。损失函数:参数学习的目标函数,通过最小化损失函数来学习各种参数。优化器:如何是损失函数最小,这就涉及到优化器神经网络核心组件 构建神经网络的主要工具➢ nn.Module①继承自Module类,可自动提取可学习的参数。②适用于卷积层、全连接层、dropout层。➢ nn.functional①更像是纯函数。②适用于激活函数、池化层。构建神经网络的主要工具-nn.Module 构建神经网络的主
2025-02-24 17:10:20
334
原创 第五节课课堂知识总结:
通过构建具有一定“深度”的模型,可以让模型来自动学习好的特征表示(从底层特征,到中层特征,再到高层特征),从而最终提升预测或识别的准确性。AlexNet由⼋层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。表示学习:如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习。AlexNet的架构与LeNet相似,但使⽤了更多的卷积层和更多的参数来拟合大规模的ImageNet数据集。· 中层卷积核提取:条纹、纹路、形状等中层纹理特征。
2025-02-21 11:26:08
349
原创 第四节课课堂知识总结
不管检测对象出现在图像中的哪个位置,神经网络的前面几层都应该对相同的图像区域具有相似的反应。神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远的区域的关系。给定输入大小224*224,在使用5*5卷积核的情况下,需要55层将输出降低到4*4。步幅是每次滑动核窗口时的行/列的步长,可以成倍的减少输出形状。卷积层将输入和卷积核进行交叉相关,加上偏移后得到输出。填充在输入周围添加额外的行/列,增加输出的高度和宽度。每个通道都有一个卷积核,结果是所有通道卷积结果的和。
2025-02-20 10:19:29
245
原创 第三节课总结
激活函数:刚才登场的h(x)函数会将输入信号的总和转换为输出信号,这种函数一般称为激活函数(activation function)。(3) 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性。如“激活”一词所示,激活函数的作用在于决定如何来激活输入信号的总和。(2) 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率。(1) 连续并可导(允许少数点上不可导)的非线性函数。S型(sigmoid)激活函数(挤压函数)S型(sigmoid)激活函数(挤压函数)
2025-02-19 16:59:14
330
原创 第二节课课堂总结
PyTorch是由Meta AI(Facebook)人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库,目前被广泛应用于学术界和工业界,PyTorch在API的设计上更加简洁、优雅和易懂。流程:在梯度法中,函数的取值从当前位置沿着梯度方向前进一定的距离,然后在新的方向重新求梯度,再沿着新梯度的方向前进,如此反复,不断的沿梯度方向前进。梯度指示的反向是各点处的函数值减小最多的方向,所以无法保证梯度所指的方向就是函数的最小值或者真正应该前进的方向。机器学习的输出又将去往何方?
2025-02-18 11:07:36
825
原创 图像识别技术与应用课堂总结
当我们获得了一些数据源及其表示、一个模型和一个合适的损失函数,接下来就需要一种算法,它能够搜索出最佳参数,以最⼩化损失函数。更多的数据可以被用来训练出更强大的模型,从而减少对预先设想假设的依赖。仅仅拥有海量的数据是不够的,还需要正确的数据。在每个步骤中,梯度下降法都会检查每个参数,看看如果仅对该参数进行少量变动,训练集损失会朝哪个方向移动。在机器学习中,我们需要定义模型的优劣程度的度量,这个度量在大多数情况是“可优化”的,这被称之为目标函数。在一个数据集上,我们可以通过最⼩化总损失来学习模型参数的最佳值。
2025-02-17 17:52:27
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人