
深度学习
文章平均质量分 89
poorCoder_
这个作者很懒,什么都没留下…
展开
-
PyTorch翻译官网教程-PROFILING YOUR PYTORCH MODULE
分析器与主线程在同一个线程中运行,但它也会分析可能在另一个线程中运行的子线程。同时运行的分析器将被限制在它们自己的线程中,以防止混合结果。请注意,就内存和时间而言,最昂贵的操作是掩码索引中的forward(10)操作。将每个子任务的代码包装在单独的带标签的上下文管理器中。在分析器的输出中,子任务中所有操作的综合性能指标将显示在相应的标签下。PyTorch 1.8引入了新的API,将在未来的版本中取代旧的分析器API。,它根据操作及其回溯(截断为最近的5个事件)汇总运行时间,并按注册的顺序显示事件。原创 2023-08-20 20:55:24 · 636 阅读 · 0 评论 -
PyTorch翻译官网教程-TEXT CLASSIFICATION WITH THE TORCHTEXT LIBRARY
该模型由层和用于分类的线性层组成。使用模式模式”mean“ 的nn.EmbeddingBag 计算”bag“Embedding的平均值。尽管这里的文本条目具有不同的长度,但模块在这里不需要填充,因为文本长度保存在偏移量中。此外,由于在运行中累计了所有Embedding的平均值,因此可以提高处理一系列张量的性能和内存效率。print(原创 2023-08-19 16:12:12 · 526 阅读 · 0 评论 -
PyTorch翻译官网教程-NLP FROM SCRATCH: TRANSLATION WITH A SEQUENCE TO SEQUENCE NETWORK AND ATTENTION
从输入的单词序列中直接生成正确的译文是很困难的。与字符级RNN教程中使用的字符编码类似,我们将把语言中的每个单词表示为一个独热向量,或者巨大的零向量只有一个1(在单词的索引处)。你可以观察到teacher-forced 网络的输出,它们阅读时语法连贯,但偏离了正确的翻译——从直觉上讲,它已经学会了表示输出的语法,并且可以在教师告诉它前几个单词时“拾取”意思,但它还没有正确地学会如何从翻译中创建句子。为了训练,对于每个对,我们将需要一个输入张量(输入句子中单词的索引)和目标张量(目标句子中单词的索引)。原创 2023-08-12 16:37:32 · 248 阅读 · 0 评论 -
PyTorch翻译官网教程-NLP FROM SCRATCH: GENERATING NAMES WITH A CHARACTER-LEVEL RNN
最大的区别在于,我们不是在读取一个名字的所有字母后预测一个类别,而是输入一个类别并每次输出一个字母。为了进行示例,我们给网络一个字母并询问下一个字母是什么,将其作为下一个字母输入,并重复直到EOS令牌。当训练时,我们在每个时间步向网络提供它,这是一个设计选择,它可以作为初始隐藏状态的一部分或其他策略。与其给它一个起始字母,另一种策略是在训练中包含一个“字符串起始”标记,并让网络选择自己的起始字母。我们将创建(“A”,“B”),(“B”,“C”),(“C”,“D”),(“D”,“EOS”)。原创 2023-08-12 13:53:47 · 817 阅读 · 0 评论 -
PyTorch翻译官网教程-NLP FROM SCRATCH: CLASSIFYING NAMES WITH A CHARACTER-LEVEL RNN
为了运行这个网络的一个步骤,我们需要传递一个输入(在我们的例子中,是当前字母的张量)和一个先前的隐藏状态(我们一开始将其初始化为零)。我们将返回输出(每种语言的概率)和下一个隐藏状态(我们将其保留到下一步)。字符级RNN将单词作为一系列字符来读取 ,每一步输出一个预测和“隐藏状态”,将之前的隐藏状态输入到下一步。为了了解网络在不同类别上的表现如何,我们将创建一个混淆矩阵,表示网络猜测(列)的每种语言(行)。额外的1维度是因为PyTorch假设所有的东西都是分批的——我们在这里只是使用1的批大小。原创 2023-08-12 13:53:17 · 929 阅读 · 0 评论 -
PyTorch翻译官网教程-FAST TRANSFORMER INFERENCE WITH BETTER TRANSFORMER
在本教程中,我们介绍了使用 Better Transformer fastpath快速的transformer 推理,在torchtext 中使用PyTorch核心的 Better Transformer包支持Transformer Encoder 模型。在确认BT fastpath可用性的前提下,我们已经演示了 Better Transformer 的使用。我们已经演示并测试了BT fastpath执行模式·、本机MHA执行和BT稀疏性加速的使用。原创 2023-08-12 13:52:34 · 1140 阅读 · 0 评论 -
PyTorch翻译官网教程-LANGUAGE MODELING WITH NN.TRANSFORMER AND TORCHTEXT
在本教程中,我们在语言建模任务上训练一个nn.TransformerEncoder模型。请注意,本教程不包括的训练,如上图右半部分所示。语言建模任务是为给定单词(或单词序列)跟随单词序列的可能性分配一个概率。首先将一系列标记传递给源文本嵌入层,然后是一个位置编码器来解释单词的顺序(请参阅下一段了解更多细节)。由的多个层组成。除了输入序列外,还需要一个方形注意掩码,因为在中的自注意层只允许参与序列中较早的位置。对于语言建模任务,应掩盖未来位置上的任何标记。为了生成输出词的概率分布,原创 2023-08-12 13:51:04 · 919 阅读 · 0 评论 -
PyTorch翻译官网教程-DEPLOYING PYTORCH IN PYTHON VIA A REST API WITH FLASK
我们将首先定义API 路径、请求和响应类型。我们的API路径是/predict它接受带有包含图像的文件参数的HTTP POST请求。响应将是JSON响应,其中包含预测结果。原创 2023-07-15 11:44:46 · 2547 阅读 · 0 评论 -
PyTorch翻译官网教程8-SAVE AND LOAD THE MODEL
当加载模型权重时,我们需要首先实例化模型类,因为类定义了网络的结构。我们可能希望将该类的结构与模型一起保存,在这种情况下,我们可以使用。如果不这样做,将产生不一致的推理结果。PyTorch模型将学习到的参数存储在一个名为state_dict的内部状态字典中。在本节中,我们将了解如何通过保存、加载和运行模型预测来持久化模型状态。要加载模型权重,需要首先创建同一模型的实例,然后使用。模块,因此它依赖于 加载模型时可用的实际类定义。这种方法在序列化模型时使用Python。一定要在推理之前调用。原创 2023-07-15 11:42:25 · 651 阅读 · 0 评论 -
PyTorch翻译官网教程7-OPTIMIZING MODEL PARAMETERS
现在我们有了一个模型和数据,是时候通过优化我们的数据参数来训练、验证和测试我们的模型了。在每次迭代中,模型对输出进行预测,计算猜测中的误差(损失),收集误差相对于其参数的导数(如我们在前一节中看到的),并使用梯度下降优化这些参数。损失函数衡量的是得到的结果与目标值的错误程度,这是我们在训练中要最小化的损失函数。优化指的是在每个训练步骤中调整模型参数以减少模型误差的过程。一旦我们设置了超参数,我们就可以用优化循环来训练和优化我们的模型。我们通过注册需要训练的模型参数,并传入学习率超参数来初始化优化器。原创 2023-07-15 11:41:12 · 823 阅读 · 0 评论 -
PyTorch翻译官网教程4-TRANSFORMS
它首先创建一个大小为10的零张量(我们数据集中的标签数量),并调用scatter_,它对标签y给出的索引赋值=1。为了训练,我们需要将特征转换为归一化处理的张量,将标签转换为one-hot编码的张量。为了完成这些转换,我们使用ToTensor和Lambda。所有的TorchVision数据集都有两个参数,transform用于修改特征,target_transform用于修改标签。数据并不总是以训练机器学习算法所需的最终处理形式出现,我们使用transforms对数据进行一些操作,使其适合于训练。原创 2023-07-07 22:26:58 · 694 阅读 · 0 评论 -
PyTorch翻译官网教程5-BUILD THE NEURAL NETWORK
我们通过继承nn.Module类来定义神经网络,并在__init__方法中初始化神经网络层。每一个继承nn.Module 的子类要在forward方法中实现对输入数据的操作。nn.ReLU(),nn.ReLU(),我们创建一个NeuralNetwork的实例,并将其移动到设备上,并打印其结构。输出为了使用该模型,我们将输入数据传递给它。这将执行模型的forward 方法,以及一些。不要直接调用model.forward()!原创 2023-07-07 22:31:07 · 313 阅读 · 0 评论 -
PyTorch翻译官网教程6-AUTOMATIC DIFFERENTIATION WITH TORCH.AUTOGRAD
我们使用张量来构造计算图的函数实际上是Function类的对象,该对象知道如何在正向方向上计算函数,以及如何在反向传播步骤中计算其导数。这基本上相当于调用backward(torch.tensor(1.0)),这是在标量值函数的情况下计算梯度的有用方法,例如神经网络训练期间的损失。然而,在一些情况下我们不需要这样做,例如,当我们完成了模型的训练,只想将其应用于一些测试数据时,即我们只想通过网络进行前向计算。传播时,PyTorch会累积梯度的,即计算梯度的值被添加到计算图的所有叶节点的grad属性中。原创 2023-07-15 11:35:20 · 986 阅读 · 0 评论 -
PyTorch翻译官网教程3-DATASETS & DATALOADERS
自定义Dataset类必须实现三个函数:__init__, __len__和__getitem__。FashionMNIST图像存储在img_dir目录中,它们的标签单独存储在CSV文件annotations_file中。在接下来的部分中,我们将分解这些函数中发生的事情。import os。原创 2023-06-24 22:03:07 · 826 阅读 · 1 评论 -
PyTorch翻译官网教程2-TENSORS
张量类似于NumPy中的ndarray,除了张量可以在gpu或其他硬件加速器上运行。默认情况下,张量是在CPU上创建的。在PyTorch中,我们使用张量来编码模型的输入和输出,以及模型的参数。超过100多种张量运算操作,包括算术,线性代数,矩阵操作(转置,索引,切片),采样和更多的全面描述在这里(CPU和NumPy数组上的张量可以共享它们的底层内存位置,更改其中一个将更改另一个。形状是张量维度的元组,在下面的函数中,它决定了输出张量的维度。新张量保留原张量参数的属性(形状,数据类型),除非显式覆盖。原创 2023-06-24 22:01:23 · 511 阅读 · 0 评论 -
PyTorch翻译官网教程1-QUICKSTART
我们将Dataset作为DataLoader的入参,Dataset在数据集上包装了一个可迭代对象,并支持自动批处理、采样、洗牌和多进程数据加载。为了在PyTorch中定义一个神经网络,我们创建了一个继承了nn.Module的类,我们在__init__函数中定义网络层,并在forward函数中指定数据如何通过网络。我们希望看到精度随着时间的推移而提高,损失随着时间的推移而减少。在单个训练循环中,模型对训练数据集进行预测(批量提供给它),并反向传播预测误差以调整模型的参数。请参阅每个部分中的链接以深入了解。原创 2023-06-24 21:56:21 · 553 阅读 · 0 评论