- 博客(138)
- 收藏
- 关注
原创 Pytorch框架07-网络模型训练流程(CPU训练/GPU训练/模型检验)
在训练神经网络时,我们需要定义损失函数和优化器。损失函数用于衡量模型预测与实际标签之间的误差,而优化器则用于更新模型参数,以最小化损失函数。对于分类任务,常用的损失函数是,它能够处理多分类问题。我们使用 SGD(随机梯度下降)作为优化器。# 定义损失函数# 定义优化器这里设置了学习率为 0.01,您可以根据需要调整它。
2025-02-27 11:15:50
984
原创 Pytorch框架06-现有网络模型(修改/使用/保存/加载)
VGG16 网络模型的名字中的 “16” 表示该网络包含 16 层权重(包括卷积层和全连接层)。PyTorch 提供了多个预训练的网络模型,涵盖了广泛的计算机视觉任务,如图像分类、目标检测、语义分割等。随着 Transformer 在自然语言处理(NLP)中的成功,越来越多的 Transformer 网络架构也被应用于计算机视觉任务。在 PyTorch 中,保存模型的方式有两种:保存整个模型(包括结构和参数)和仅保存模型的参数(PyTorch 提供了目标检测的预训练模型,适用于检测图像中的物体。
2025-02-26 21:24:30
1145
原创 Pytorch框架05-反向传播与优化器
PyTorch 中的优化器是用来更新模型参数,以最小化损失函数的工具。在训练深度学习模型时,优化器会根据损失函数计算出的梯度来调整模型的权重,优化模型的表现。是一种用于训练神经网络的算法,它通过计算梯度并根据梯度调整网络中的权重,从而使得模型能够学习到最佳参数,以最小化损失函数。反向传播是深度学习中最常用的优化方法之一。Adam 是基于梯度的一阶和二阶矩估计的优化器,它计算每个参数的自适应学习率,在许多任务中表现优秀。这是最基本的优化方法,按比例调整参数,使用单个样本或批量样本来更新模型参数。
2025-02-24 18:14:57
945
原创 Pytorch框架04-损失函数(L1Loss()/MSELoss()/CrossEntropyLoss())
不同类型的任务(如回归问题、分类问题)需要使用不同的损失函数。损失函数的设计影响模型训练的效果和收敛速度。例如,回归问题通常使用均方误差(MSE),分类问题则常使用交叉熵损失。通过选择合适的损失函数,能够提高算法的表现和训练效率。机器学习算法(如梯度下降)通过计算损失函数的梯度,调整模型参数,使得损失函数值最小化。损失函数通过量化模型预测与真实结果的偏差,为模型的好坏提供客观标准。如果损失值较小,则表明模型的预测较为准确。损失函数(Loss Function)是用于衡量模型预测值与真实值之间差距的函数。
2025-02-24 17:26:43
1019
原创 Pytorch框架03-网络的搭建(nn.Module/卷积层/池化层/非线性激活/线性层/CIFAR-10分类模型搭建)
CIFAR-10 是一个广泛使用的计算机视觉数据集,包含 10 个类别的 60,000 张彩色图像。它的主要作用是对输入数据进行线性变换,通过一组权重和偏置来生成输出。神经网络中的非线性激活函数用于引入非线性因素,从而使得神经网络能够学习和表示复杂的模式和关系。没有非线性激活函数,神经网络即使拥有多个层,也只会表现为一个简单的线性变换,无法解决复杂的任务。线性层对输入进行线性变换,即通过矩阵乘法和加法运算将输入映射到一个新的空间。通过训练过程中的权重更新,网络能够学习到如何将输入数据映射到合适的输出空间。
2025-02-22 19:54:43
762
原创 Pytorch框架02(PyTorch 数据处理板块/Dataset和DataLoader数据加载/Transforms/TensorBoard)
Dataset类是 PyTorch 用于封装数据的基础类,通常通过继承:返回数据集的大小(即样本的数量)。:根据索引idx返回数据集中的某一项数据,通常返回(数据, 标签)。MyDatasetDataLoader是 PyTorch 中用于批量加载数据的工具,能够自动将Dataset中的数据分批,并支持多线程加载,极大提高了训练效率。DataLoaderbatch_size:每个批次加载多少数据。shuffle:是否在每个 epoch 结束时打乱数据集,通常用于训练数据。:用于加载数据的子进程数量。
2025-02-18 10:55:01
448
原创 Pytorch框架01(张量及其基本使用方法)
PyTorch是一个开源的深度学习框架,由Facebook的AI研究团队(FAIR)开发。它广泛应用于机器学习和人工智能的研究和应用中。
2025-02-18 10:45:12
979
原创 Matplotlib基础02-常用图像绘制(折线图/散点图/柱状图/直方图/饼图/箱线图/热图/极坐标图/雷达图/填充图)
要绘制簇型柱状图,您需要将两组数据在相同类别下进行并排显示,而不是重叠在一起。折线图是最常见的图形之一,适用于展示数据随时间或其他变量变化的趋势。填充图展示数据之间的区域,常用于展示函数曲线下方的面积。的位置,并通过调整宽度来使柱状图并排显示。箱线图用于展示数据的分布情况,特别是异常值和中位数。柱状图适用于显示不同类别数据的比较。热图适用于展示二维数据的强度或密度。散点图用于显示两个变量之间的关系。饼图适用于展示各部分占整体的比例。极坐标图用于展示极坐标系下的数据。直方图用于展示数据的分布情况。
2025-02-06 21:53:38
368
原创 Matplotlib基础01( 基本绘图函数/多图布局/图形嵌套/绘图属性)
Matplotlib是一个用于绘制静态、动态和交互式图表的Python库,广泛应用于数据可视化领域。它是Python中最常用的绘图库之一,提供了多种功能,可以生成高质量的图表。Matplotlib是数据分析、机器学习等领域数据可视化的重要工具,广泛应用于科研、教学、报告等多种场景。plt.xlim()和plt.ylim()或plt.axis()设置坐标的范围。
2025-02-06 21:51:08
672
原创 Pandas基础08(分箱操作/时间序列/画图)
是一种数据预处理方法,用于将连续型变量的数值范围分割成若干个区间或“箱”(bins),将数据按照这些区间进行分类,从而转换为离散型变量。这种方法常用于将数据的变化范围缩小,使其更加适合某些分析或模型算法的处理,或通过减少异常值的影响来提高模型的稳定性。例如,将数据范围从0到100分为5个区间,每个区间的宽度为20。向下采样:将数据从高频率的时间序列转变为低频率,比如从小时数据转换为日数据。向上采样:将数据从低频率的时间序列转换为高频率,比如从日数据转换为小时数据。通过plot()函数绘制折线图。
2025-02-03 16:01:40
389
原创 Pandas基础07(Csv/Excel/Mysql数据的存储与读取)
在数据科学和机器学习的流程中,数据的加载与存储是非常重要的一环。Pandas是Python中用于数据处理的强大库,它提供了多种方式来加载和保存数据,支持不同的数据格式,如CSV、Excel以及数据库(例如MySQL)。CSV(逗号分隔值)是最常见的数据存储格式之一,Pandas提供了简便的API来将数据存储为CSV文件以及从CSV文件加载数据。Excel文件是另一种常见的数据存储格式,Pandas提供了很方便的方法来处理Excel文件。方法可以读取CSV文件并将其转换为DataFrame。
2025-02-01 10:18:05
823
原创 Pandas基础06(异常值的检测与过滤/抽样/常用聚合函数/数据聚合)
本文将介绍如何利用 Pandas 中的一些常见函数,检测、处理和过滤数据中的异常值,同时对数据进行基本的处理和探索。通过这些信息,我们可以初步识别数据中的异常值。标准差较大的列可能存在更多的异常值,因为数据点的波动幅度较大。函数可以根据某列的值对数据进行排序,帮助我们识别最大或最小值,从而找到异常值。如果某一列的标准差非常大,且数据的分布范围较广,则可能存在一些离群点或异常值。函数来计算每列数据的标准差,并作为识别异常值的一个辅助指标。通过排序,我们可以快速发现某列的极端值,进而识别可能的异常值。
2025-01-31 10:47:30
455
原创 Pandas基础05(数据的映射/replace()、rename()、map()、apply() 和 transform())
本文将介绍几个常用的映射函数,并展示它们在实际数据处理中的应用。函数在 Pandas 中非常常用,用于替换 DataFrame 或 Series 中的指定值。这个方法特别适用于对 DataFrame 或 Series 中的数值进行批量替换。使得我们能够轻松地重命名 DataFrame 的行索引和列索引,帮助我们使数据集更符合业务需求。的方法,它非常适合处理某一列数据的映射操作。可以处理数据框中的每一列或每一行,执行复杂的操作。函数,这些都是非常常见的用于数据映射的操作。在这个示例中,我们通过自定义的。
2025-01-27 10:48:07
304
原创 Pandas基础04(缺失值处理/重复数据处理)
缺失值是指数据集中缺少的数值,它通常以None或np.nan表示。None:是 Python 中的空对象,类型为object,通常不参与计算,计算时可能会耗时较长。np.nan:是 Pandas 中表示缺失数据的标准值,类型为float,可以参与计算,但会导致结果为空。
2025-01-26 19:18:30
898
原创 Pandas基础03(数据的合并操作/concat()/append()/merge())
区别:merge与concat的区别在于,merge需要依据某一共同的行或列来进行合并使用pd.merge0合并时,会自动根据两者相同column名称的那一列,作为key来进行合并。进行一对一、一对多、多对多等合并操作,还可以灵活地指定合并的列、使用不同的连接方式(如内连接、外连接),以及处理列名冲突等问题。)进行合并,即水平合并。一对多合并是指一个键值在一个 DataFrame 中是唯一的,而在另一个 DataFrame 中出现多次。在多对多合并的场景中,两个 DataFrame 中的键都会出现多次,
2025-01-26 11:23:47
961
原创 Pandas基础02(DataFrame创建/索引/切片/属性/方法/层次化索引)
DataFrame以字典的键作为每一【列】的名称,以字典的值(一个数组)作为每一列。同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN。Pandas 的层次化索引(Hierarchical Indexing)允许在一个 DataFrame 或 Series 中使用多个索引级别。索引堆叠通常指的是对 DataFrame 或 Series 的 层次化索引(MultiIndex) 进行堆叠和展开操作。这种操作可以将数据的索引层级转换,或是将数据的多个层级组合成一个新的层级。(1)索引:先列后行。
2025-01-25 18:33:34
843
原创 Pandas基础01(Series创建/索引/切片/属性/方法/运算)
是一个功能强大的数据分析和操作库,主要用于处理和分析表格型数据(例如:CSV、Excel、SQL数据库等)。它建立在 NumPy 基础上,提供了许多便捷的数据结构,主要是。是一种类似于一维数组的对象,它包含了一组数据(可以是整数、浮点数等)以及与之相关的标签(索引)。Series由一组数据(values)和数据的索引标签(index)构成。看作一个带有索引的一维数组。,用于处理和分析数据。
2025-01-25 18:32:27
357
原创 Numpy基础02(Numpy对数组的基本操作)
矩阵可以与标量相乘或相除,这将导致矩阵中每个元素与标量进行运算。只有在矩阵是方阵并且行列式不为零时,矩阵才有逆矩阵。矩阵的特征值和特征向量是线性代数中的重要概念,可以使用。np.sort():不改变原数组,而是返回一个新的数组。的数组无法广播,因为在第一个维度上它们的大小不匹配。来计算,行列式是判断矩阵是否可逆的重要标志。矩阵的逆是一个常见的操作,它可以通过。属性来实现,它将矩阵的行和列交换。的数组进行运算,后者会被视为。的数组进行运算,较小的数组。矩阵的行列式可以通过。,直到它们的形状匹配。
2025-01-23 19:45:33
740
原创 Numpy基础01(Jupyter基本用法/Ndarray创建与基本操作)
可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等。IPython 是一个增强型的 Python 交互式解释器,提供了自动补全、命令历史、魔法命令等功能。IPython 还支持远程访问、包管理和插件扩展,是一个功能强大且灵活的开发工具。:适合对运行时间短的程序求其平均运行时间。:适合对运行时间长的程序进行统计。
2025-01-20 22:09:46
710
原创 Python基础07(文件的操作与异常的处理)
第一个参数:file表示文件的路径第二个参数:mode表示打开文件的模式默认的模式为r(r表示读w表示写a表示追加文本)第三个参数:encoding表示编码格式**返回值:**打开后的文件对象close()函数用于关闭文件,释放资源。
2025-01-19 18:20:33
368
原创 Python基础06(字符串格式化/操作方法)
center()、ljust()、rjust(),返回指定宽度的新字符串,原字符串居中、左对齐或右对齐出现在新字符串中,如果指定宽度大于字符串长度,则使用指定的字符(默认为空格)进行填充。这三个函数的参数指定的字符串并不作为一个整体对待,而是在原字符串的两侧、右侧、左侧删除参数字符串中包含的所有字符,一层一层地从外往里扒。字符串对象是不可变的,所以字符串对象提供的涉及到字符串“修改”的方法都是返回修改后的新字符串,并不对原始字符串做任何修改,无一例外。你可以指定数字的宽度、填充字符、精度等。
2025-01-19 17:25:34
1030
原创 Python基础05(面向对象程序设计)
Python使用class关键字来定义类,class关键字之后是一个空格,接下来是类的名字,如果派生自其它基类的话则需要把所有基类放到一对圆括号中并使用逗号分隔,然后是一个冒号,最后换行并定义类的内部实现。class Car(object): # 定义一个类,派生自object类def showCar(self): # 定义成员方法print("这是一辆车")car = Car() # 实例化对象car.showCar() # 调用对象的成员方法。
2025-01-18 10:49:19
935
原创 Python基础03(循环与选择结构)
对于带有else子句的循环结构,如果循环因为条件表达式不成立或序列遍历结束而自然结束时则执行else结构中的语句,如果循环是因为执行了break语句而导致循环提前结束则不会执行else中的语句。在python中除了False,0,0.0,0j,None,空列表,空元组,空集合,空字典,空字符串,空range对象,其余的都与True等价。for循环一般用于循环次数可以提前确定的情况,尤其适用于枚举或遍历序列或迭代对象中元素的场合。绝大部分合法的Python表达式都可以作为条件表达式。
2025-01-15 17:31:01
355
原创 Python基础02(Python序列结构/列表/元组/集合/字典/序列解包)
元组属于不可变(immutable)序列,不可以直接修改元组中元素的值,也无法为元组增加或删除元素。元组没有提供append()、extend()和insert()等方法,无法向元组中添加元素;同样,元组也没有remove()和pop()方法,也不支持对元组元素进行del操作,不能从元组中删除元素,而只能使用del命令删除整个元组。元组也支持切片操作,但是只能通过切片来访问元组中的元素,而不允许使用切片来修改元组中元素的值,也不支持使用切片操作来为元组增加或删除元素。
2025-01-15 16:35:45
1446
原创 Python基础01(内置对象,运算符,表达式,内置函数)
Python是一门跨平台、开源、免费的解释型高级动态编程语言。**版本:**Python目前存在2.x和3.x两个系列的版本,互相之间不兼容这种方法一次可以导入多个模块。但在使用模块中的类、方法、函数、常数等内容时,需要在它们前面加上模块名。这种方法一次导入一个模块中的所有内容。使用时不需要添加模块名为前缀,但程序的可读性较差。这种方法一次导入一个模块中指定的内容,如某个函数。调用时不需要添加模块名为前缀。__name__模块是一种程序(代码)的组织形式。
2025-01-13 18:35:35
1257
原创 SSM04-SpringMVC框架
Spring MVC是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。Spring MVC提供了对MVC模式的全面支持,它可以将表现层解耦,同时Spring MVC是基于请求-响应处理模型的请求驱动框架,简化了表现层的实现。Spring MVC作用于三层架构中的表现层,用于接收客户端的请求并进行响应。Spring MVC中包含了控制器和视图,控制器接收到客户端的请求后对请求数据进行解析和封装,接着将请求交给业务层处理。业务层会对请求进行处理,最后将处理结果返回给表现层。
2025-01-10 11:03:20
972
原创 SSM03-Spring Aop(xml配置/注解开发)
AOP是Spring 的重要特性,AOP是通过预编译方式和运行期间动态代理实现程序功能,也就是说可以在不修改源代码的情况下,给程序统一添加功能。AOP即面向切面编程。AOP主张将程序中相同的业务逻辑进行横向隔离,并将重复的业务逻辑抽取到一个独立的模块中,以达到提高程序可重用性和开发效率的目的。AOP中常用术语:切面:是指关注点(指类中重复的代码)形成的类,通常是指封装的、用于横向插入系统的功能类。在实际开发中,该类被Spring容器识别为切面,需要在配置文件中通过<bean>元素指定。
2025-01-10 10:55:39
979
原创 SSM02-Spring框架(IOC/DI/Bean的管理)
Spring是Java SE/EE轻量级开源框架。它最为核心的理念是IoC(控制反转)和AOP(面向切面编程),其中,IoC是Spring的基础,它支撑着Spring对JavaBean的管理功能;AOP是Spring 的重要特性,AOP是通过预编译方式和运行期间动态代理实现程序功能,也就是说可以在不修改源代码的情况下,给程序统一添加功能。:Spring框架的API不会在业务逻辑上出现,业务逻辑代码也可以从Spring框架快速地移植到其他框架。
2025-01-10 10:54:55
942
原创 SSM01-MyBatis框架(一文学会MyBatis)
MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,使用简单的XML或注解进行配置和原始映射,将接口和Java的POJO映射成数据库中的记录,使得Java开发人员可以使用面向对象的编程思想来操作数据库。
2024-12-08 21:23:08
1087
原创 设计模式09-行为型模式2(状态模式/策略模式/Java)
1.模式动机:有些对象具有多种状态,这些状态在某些情况下能够相互转换,对象在不同的状态下将具有不同的行为,将拥有状态的对象中和状态的行为分离。2.模式定义:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类1.模式动机:解决某一问题的一个算法族,允许用户从该算法族中任选一个算法解决某一问题,同时可以方便地更换算法或者增加新的算法。2.模式定义:定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。
2024-11-03 17:36:11
1083
原创 设计模式08-行为型模式1(命令模式/迭代器模式/观察者模式/Java)
描述对象之间的调用关系**1.模式动机:**将请求发送者和接收者完全解耦;发送者与接收者之间没有直接引用关系;发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求**2.模式定义:**将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。1.模式动机:如何访问一个聚合对象(用于存储多个对象)中的元素但又不需要暴露它的内部结构,还能提供多种不同的遍历方式2.模式定义:提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示。
2024-11-03 11:06:45
1139
原创 设计模式07-结构型模式2(装饰模式/外观模式/代理模式/Java)
1.动机:在不改变一个对象本身功能的基础上给对象增加额外的新行为2.定义:动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活**1.模式动机:**一个客户类需要和多个业务类交互,有时候这些需要交互的业务类会作为一个整体出现,如何简化这种主系统和子系统之间的交互。**2.模式定义:**为子系统中的一组接口提供一个统一的入口,外观模式定义了一个高层接口,这个接口使得子系统更加容易使用,外部与子系统的通信通过一个统一的外观对象进行。
2024-10-31 16:24:06
604
1
原创 设计模式06-结构型模式1(适配器/桥接/组合模式/Java)
1.动机:适配器可以使由于接口不兼容而不能交互的类可以一起工作,这就是适配器模式的模式动机。2.定义:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器1.动机:如果系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使得两者可以独立扩展。桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联取代了传统的多重继承,将类之间的静态继承关系转换为动态的对象组合关系,使得系统更加灵活,并易于扩展,同时有效地控制了系统中类的个数。
2024-10-26 18:32:54
1266
2
原创 设计模式05-创建型模式2(建造者/原型/单例模式/Java)
动机:方便创建复杂对象(一个对象中包含多个成员变量)定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。动机:有些对象的创建过程较为复杂,而且需要频繁创建。通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。定义:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。
2024-10-19 20:43:32
807
原创 设计模式04-创建型模式1(简单工厂/工厂模式/抽象工厂/Java)
专门定义一个类来负责创建其他类的实例,可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。动机:为了解决简单工厂模式不易扩展以及工厂类职责太重的为问题。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口, 而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定 究竟应该实例化哪一个具体产品类。动机:需要一个工厂,生产多个对象产品等级结构:产品的继承结构(一个产品的不同表现形式:名词)
2024-10-18 18:47:44
1181
原创 设计模式02-桥接模式(Java)
它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。在使用关联关系是,及在抽象类引入实现类接口时可能会出现不适配的情况,这是可以用适配器类型将其转换成抽象类可以适配的类进行关联。扩展抽象化角色 :是抽象化角色的子类,实现父类中的业务方法, 并通过组合关系调用实现化角色中的业务方法。实现化角色 :定义实现化角色的接口,供扩展抽象化角色调用。抽象化角色 :定义抽象类,并包含一个对实现化对象的引用。具体实现化角色 :给出实现化角色接口的具体实现。实现了对抽象和实现之间的解耦。
2024-10-13 18:12:59
785
1
原创 设计模式01-类图及设计原理(Java)
用户通过注册界面(RegisterForm)输人个人信息,单击“注册”按钮后将输人的信息通过一个封装用户输入数据的对象(UserDTO)传递给操作数据库的数据访问类,为了提高系统的扩展性,针对不同的数据库可能需要提供不同的数据访问类,因此提供了数据访问类接口,如 IUserDAO,每一个具体数据访问类都是某一个数据访问类接口的实现类,如OracleUserDAO 就是一个专门用于访问 Oracle 数据库的数据访问类。换句话说,子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。
2024-10-07 19:47:06
1370
1
原创 Javaweb12-Maven基础和进阶
Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。,它基于项目对象模型(Project Object Model , 简 称: POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。
2024-08-29 11:19:16
1238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人