- 博客(57)
- 收藏
- 关注
原创 深度学习框架PyTorch——从入门到精通(10)PyTorch张量简介
如果你熟悉 NumPy 的多维数组(ndarray)中的广播语义,你会发现同样的规则也适用于此处。同形状规则的一个例外是张量广播。# 输出这里有什么诀窍?我们是如何可以将2x4张量乘以1x4张量?广播是一种在形状上具有相似性的张量之间执行运算的方式。在上述示例中,那个一行四列的张量与那个两行四列张量的两行都进行了乘法运算。这在深度学习中是一项重要的运算。
2025-03-26 13:31:39
1563
原创 深度学习框架PyTorch——从入门到精通(9)PyTorch简介
这个历史追踪方法是在你的模型中实现灵活性与快速迭代的东西,即使在具有决策分支和循环的复杂模型中,计算历史也可以通过特定的模型跟踪特定的路劲,并正确计算反向导数。即张量的数据类型是默认的就不会输出,如果不是默认的(例如上面特意更改的int16,就会在末尾输出类型:dtype=torch.int16。对于这些训练循环中的点,我们必须计算损失的导数(模型的各个参数就是偏导数)。这个计算产生的每个张量都知道它是怎么来的,例如,i2h携带的元数据表明它来自矩阵W_x 和 x 的乘法,所以它继续向下、跟踪其余部分。
2025-03-25 13:31:30
1027
原创 深度学习框架PyTorch——从入门到精通(8)保存并加载模型
在本节中,我们将了解如何通过保存、加载和运行模型预测来持久化模型状态。在这之前,先加载torch和torchvision包。
2025-03-23 19:02:09
441
原创 深度学习框架PyTorch——从入门到精通(7)优化模型参数
现在我们有了模型和数据,是时候通过优化数据参数来训练、验证和测试我们的模型了。训练模型是一个迭代过程;在每次迭代中,模型都会对输出进行猜测,计算其猜测中的误差(损失),收集误差相对于其参数的导数(正如我们在。
2025-03-23 18:35:53
1173
原创 深度学习框架PyTorch——从入门到精通(6.2)自动微分机制
本节内容:来自Pytorch官网-Docs - Autograd mechanics本节将概述自动微分(autograd)的工作原理和记录操作。理解这一切并不是绝对必要的,但建议熟悉它,因为它将帮助您编写更高效、更干净的程序,还可以在调试程序时帮你理解程序。自动微分(Autograd)是一种反向自动微分系统。简单来说,当你进行各种运算时,自动求导会记录下所有产生数据的运算过程,为您提供一个有向无环图,其叶是输入张量,根是输出张量。从根到叶跟踪遍历此图,您可以使用链式法则自动计算梯度。在内部,自动微分将
2025-03-23 12:47:02
1262
原创 深度学习框架PyTorch——从入门到精通(6.1)自动微分
在训练神经网络时,最常用的算法是反向传播。在该算法中,参数(模型权重)根据损失函数的梯度相对于给定参数进行调整。为了计算这些梯度,PyTorch有一个内置的微分引擎,名为torch.autograd。它支持为任何计算图自动计算梯度。考虑最简单的一层神经网络,具有输入x、参数w和b以及一些损失函数。
2025-03-18 19:10:04
703
原创 深度学习框架PyTorch——从入门到精通(5)构建神经网络
我们通过继承 PyTorch 的nn.Module类来定义自己的神经网络。在__init__这个特殊方法中,我们会初始化网络中需要用到的各个神经层(比如全连接层、卷积层等)。每个继承自·nn.Module·的子类都必须在·forward·方法中定义如何对输入数据进行处理(即实现前向传播逻辑)。nn.ReLU(),nn.ReLU(),# 我们创建一个NeuralNetwork的实例,并将其移动到device和printits结构。# 输出要使用模型,我们将输入数据传递给它。
2025-03-18 15:03:51
1155
原创 深度学习框架PyTorch——从入门到精通(4)数据转换
所有TorchVision数据集都有两个参数——transform来修改特征,target_transform来修改标签——接受包含转换逻辑的可调用项。FashionMNIST 数据集的特征采用的是 Python Imaging Library(PIL)图像格式,而标签是整数。很多时候,数据并不总是以训练机器学习算法所需的最终处理形式出现。所以我们需要使用变换对数据进行一些处理,使其适合训练。对于训练来说,我们需要将特征转换为归一化的张量,将标签转换为独立热编码的张量。模块提供了几个开箱即用的转换。
2025-03-18 11:15:26
475
原创 深度学习框架PyTorch——从入门到精通(3)数据集和数据加载器
自定义Dataset类必须实现三个函数:__init____len__和。看看这个实现;时尚MNIST图像存储在目录img_dir中,它们的标签单独存储在CSV文件annotations_file中。在下一节中,我们将分解这些函数中发生的事情。import os__init__函数在实例化Dataset对象时运行一次。我们初始化的目录包含图像、注释文件和两个转换(将在下一节中详细介绍)。labels. csv文件如下所示:......__len__函数返回数据集中的样本数。
2025-03-18 10:59:44
456
原创 深度学习框架PyTorch——从入门到精通(2)张量
在PyTorch存储库中,我们将加速器定义为与CPU一起使用以加快计算速度的设备(torch.device)。默认情况下,张量是在CPU上创建的。add_:加,copy_:复制,t_:转置.sub_:减法,mul_:乘法,div_:除法,zero_:变0,fill_:所有元素变为指定元素。在Torch中,我们使用张量来编码模型的输入和输出,以及模型的参数。CPU上的NumPy数组与张量可以共享它们的底层内存位置,改变一个就会改变另一个。张量的属性描述了它们的形状、数据类型和存储它们的设备。
2025-03-18 09:58:30
767
原创 牛客竞赛记录——小紫的优势博弈(Python3题解)
链接:https://ac.nowcoder.com/acm/contest/103948/D来源:牛客网。
2025-03-17 20:35:55
1022
原创 深度学习框架PyTorch——从入门到精通(1)下载与安装
在人工智能技术爆发的今天,PyTorch 凭借其动态计算图的灵活性和高效的 GPU 加速能力,已成为深度学习领域最受欢迎的框架之一。好吧,其实我写这个的原因是:很多有关人工智能的工作岗位都需要应聘者熟悉Tensorflow/scikit-learn/xgboost/Caffe/MindSpore/pytorch等主流深度学习框架,或者至少其中之一。那么torch自然就是一个很好的选择。
2025-03-15 21:55:59
839
原创 牛客刷题自留-数据库MYSQL
A第一范式(1 NF)数据冗余 程度最小,第五范式(5 NF)数据冗余程度最大B第一范式每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构C第二范式满足第一范式条件,而且每个非关键字属性都由整个关键字决定D随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降正确答案:A官方解析:第一范式(1 NF)数据冗余 程度最大,第五范式(5 NF)数据冗余程度最小。
2025-03-07 12:00:51
959
原创 牛客刷题自留-Linux
因此ABC都能得到正确的最终权限结果,而D选项会导致错误的权限设置。这体现了Linux权限可以通过不同的命令组合实现相同的效果。给用户加x权限,去掉组的x权限,这样用户最终会有x权限,与目标权限不符。先去掉所有用户x权限,再给其他用户加上x权限,最终结果正确。先给所有用户加x权限,再去掉用户和组的x权限,最终结果正确。去掉组的x权限,给其他用户加上x权限,最终结果正确。
2025-03-05 15:06:47
215
原创 深度学习-15.生成对抗网络
生成对抗网络(GANs)通过两个网络(一个判别器和一个生成器)之间的竞争过程来学习函数。生成器学习在目标领域中生成合成数据示例:2014 - 2017年用于生成逼真人脸的生成对抗网络的发展历程生成对抗网络(GANs)的众多应用生成对抗网络已得到广泛应用,尤其在图像编辑处理方面表现突出。左上:朱俊彦(Zhu, J. Y.)、朴泰升(Park, T.)、菲利普·伊索拉(Isola, P.)和亚历山大·A·埃弗罗斯(Efros, A. A.)(2017年)。
2025-03-02 15:14:01
830
原创 深度学习-14.深度强化学习:近端策略优化
上一节的深度Q学习,解决了连续状态空间,离散动作空间的问题。现在我们希望能够解决具有连续动作空间的强化学习问题,这时我们通常会使用策略梯度方法。回顾为例方便回顾,这里再贴一下强化学习的基本框架,智能体(Agent)根据当前状态StS_tSt,依据策略π\piπ采取动作AtA_tAt,环境(Environment)根据智能体的动作给出下一个状态St+1S_{t+1}St+1和奖励Rt+1R_{t+1}Rt+1,智能体再根据这些反馈通过强化学习算法更新策略。策略梯度通常可以写成价值函数的一个函数。演
2025-03-02 11:26:08
684
原创 深度学习-13.深度强化学习:深度 Q 学习
强化学习是一种基于学习的最优控制方式,它在以最大化奖励为驱动的情况下,从状态中获取行动(策略)。我们可以从反馈控制的角度来理解强化学习,其中策略相当于控制律,环境类似于被控对象强化学习部分组成元素:包含智能体(Agent)、环境动态(Environment Dynamics)。智能体中有策略(Policy,π\piπ)和强化学习算法(Reinforcement learning algorithm)。工作流程:在时刻ttt,智能体观察环境状态sts_tst,根据当前策略π\piπ。
2025-03-01 11:18:02
1146
原创 深度学习-12.变换器(Transformer)
变换器(Transformer)网络是一种较新的前馈网络,被广泛应用,例如应用于谷歌翻译、谷歌搜索和ChatGPT等。我们更倾向于使用前馈网络而非循环网络,因为前馈网络的训练和实现过程可以并行化。循环网络非常适合处理序列数据,但它们不适合并行实现。本讲将介绍变换器(Transformer)网络,它解决了这个问题!前馈网络可以并行化的原因。
2025-02-28 11:41:12
790
原创 牛客刷题自留-深度学习
正常答案: CA不知道B看情况C是D否平移变换不变性指的是当输入图像发生小范围的平移时,模型的输出结果不会发生改变。例如,在图像分类任务中,一张猫的图片在图像中稍微向左或向右移动了一些像素,模型仍然能够正确地将其分类为猫。池化层通常有最大池化(Max Pooling)和平均池化(Average Pooling)等常见类型,以最大池化为例,它会在输入特征图上划分出多个不重叠的区域(池化窗口),然后对每个区域内的元素取最大值作为该区域的输出。
2025-02-27 17:28:38
877
原创 深度学习-11.用于自然语言处理的循环神经网络
循环神经网络常常被应用于诸如机器翻译、语音识别和语音合成等序列问题中。循环网络的记忆存储于内部状态xtx_txt中门控循环网络(GRU和LSTM)具备长期记忆能力,而简单RNN只有短期记忆。循环网络单元对比简单RNN(Simple RNN)xttanhAxt−1ButxttanhAxt−1But用于更新内部状态,结合上一时刻状态xt−1x_{t - 1}xt−1和当前输入utu_tut;ytgC。
2025-02-27 16:59:32
1079
原创 深度学习-10.门控循环网络
简单循环神经网络容易出现梯度消失和梯度爆炸问题。基于长短期记忆网络(LSTM)和门控循环单元(GRU)的门控循环网络能够缓解梯度消失/爆炸问题。门控循环单元(GRU)和长短期记忆网络(LSTM)被广泛应用,而简单循环神经网络(RNN)由于梯度消失/爆炸问题,使用频率较低。
2025-02-27 14:01:08
697
原创 深度学习-9.简单循环神经网络
循环网络可以对处理序列数据的系统进行建模,并且具有随时间变化的内部状态和记忆能力。循环网络在捕捉序列数据中不同时间步之间的关系时,计算效率较高。存在多种序列数据问题:多对多I型(一一对应);多对多II型;多对一;一对多。循环网络通常使用时间反向传播算法(BPTT)进行训练。
2025-02-27 11:21:59
862
原创 牛客题解-在线编程-面试笔刷:BM96 主持人调度(二)Python解法
贪心算法是一种在每一步选择中都采取当前状态下最优(即最有利)的选择,从而希望导致结果是全局最优的算法。贪心算法需要问题具备贪心选择性质,即通过局部最优选择能得到全局最优解。
2025-02-25 12:30:26
812
原创 深度学习-7.超参数优化
选择超参数有两种基本方法:手动选择或自动选择。手动超参数选择需要使用者对模型或深度学习有更多的了解。自动超参数选择通常需要更多的计算时间。调整模型的有效容量,使其与任务的复杂程度相匹配;在一定的运行时间和内存限制(模型复杂度)条件下,通过找到最低的泛化误差来评判模型性能。
2025-02-22 10:55:59
1137
原创 深度学习-6.用于计算机视觉的深度学习
深度学习对计算机视觉产生了重大影响。(a) 图像分类(Image Classification):对整个图像进行分类,判断图像中是否存在牛这一类别,这里确定图像中有牛。(b) 目标检测(Object Detection):不仅要检测出图像中是否存在牛,还要用边界框(如红、绿、蓝框)标出每头牛在图像中的具体位置。© 语义分割(Semantic Segmentation):将图像中的每个像素分配到特定的类别(这里是牛),把图像中属于牛的区域用绿色进行分割标记,不区分具体是哪头牛。
2025-02-21 11:17:27
1174
原创 深度学习-5.卷积网络
应用场景:卷积网络用于处理具有网格状结构的数据,如时间序列、图像和视频。卷积层优势:卷积层在计算效率上比全连接层高得多,具体体现在:参数更少:相较于全连接层,卷积层所需的参数数量更少。参数共享:卷积层中参数是共享的,这减少了计算量和模型的参数量。卷积网络特性:卷积网络的先进特性使其在计算上更高效,并且能够构建得更深。这些特性帮助卷积网络在处理相关数据时表现出色,在诸多领域得到广泛应用。
2025-02-20 14:15:37
854
原创 深度学习-4.优化与正则化
训练方法:训练深度网络通常基于随机梯度下降及其变体,以提高效率。动量的作用:动量被用于加速学习过程。Adam算法结合了动量和自适应梯度。是当前常用的标准优化方法。批量归一化:用于学习网络中传输数据的归一化,往往能够提高收敛速度。
2025-02-20 11:13:50
529
原创 深度学习-3.深度前反馈网络
在机器学习中,我们希望能够对非线性函数进行建模 —— 深度前馈网络能够实现非线性函数近似基函数扩展(Basis Function Expansion)基函数扩展概念:为了对非线性函数进行建模,我们将输入xxx通过基函数扩展,以创建从特征到输出的线性映射。线性模型:给出线性模型公式yθxyθx。带基函数扩展的非线性模型:公式为y∑i1nθiϕixy∑i1nθiϕix,其中ϕi\phi_iϕi是基函数,可被视为一种“特征”。
2025-02-19 14:12:29
338
原创 深度学习-2.机械学习基础
我们将重点关注机器学习的回归和分类的学习模型。示例:模型正在预测边界框(回归)和类别标签(分类)),通过此示例直观地展示了回归和分类在实际应用中的体现,即模型不仅要确定物体的位置(边界框,对应回归问题),还要识别物体的类别(类别标签,对应分类问题)机器学习系统的组成部分机器学习系统通常有四个主要组成部分:从最后的参数估计会反馈回之前的各个部分,即机器学习系统各组件间的反馈调整机制:机械学习算法从数据中学习,在机械学习的回归问题中输出的数据都是连续的。下图一个示例图表,图中标注了一些数据点,如 (x1
2025-02-19 12:12:39
842
原创 深度学习-1.简介
深度学习是表示学习的一个子集,而表示学习是机器学习的一个子集,机器学习又是人工智能的一个子集。(表示学习(Representation Learning)是机器学习中的一个重要领域,它旨在自动从数据中学习到有效的特征表示(也叫特征向量),这些特征能够更好地捕捉数据的内在结构和语义信息,从而提升模型在各种任务上的性能,比如分类、回归、预测等。遗憾的是,下图没有展示表示学习。深度学习使用一个由简单函数构成的‘深度’链,自动从数据中学习特征经典机器学习。
2025-02-18 11:45:43
800
原创 机械学习常用的激活函数(ReLU 、Sigmoid、Tanh 、Softmax、Leaky ReLU、GELU、Swish、ELU、线性激活函数)
常见常用的激活函数(ReLU 、Sigmoid、Tanh 、Softmax、Leaky ReLU、GELU、Swish、ELU、线性激活函数)
2025-02-15 16:47:33
657
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人