当前位置: 首页 > 网络应用技术

Pytorch学习系列教程:建立深度学习模型需要什么步骤?

时间:2023-03-08 10:31:00 网络应用技术

  简介:继续Pytorch学习系列。上一部分引入了Pytorch -Tensor中最基本和最核心的数据结构。有了这些基本概念,可以开始深度学习实践。本文根据项圈删除的轮廓原理和复杂性的简化重点介绍了这一主题宏观的观点。

  与经典的机器学习过程不同,深度学习模型的构建和培训更加灵活和简单。它之所以称为灵活性,是因为通常没有成熟度和直接使用模型,并且更多的用户需要自己设计和组装每个网络模块。这仅仅是因为深度学习通常会意识到结束 - 端训练,也就是说,从原始数据集到模型输出,而无需数据预处理,功能工程和经典机器学习中的功能选择。

  类似于将大象安装到冰箱中的3个步骤,建立深度学习模型也可以分为三个步骤:

  本文首先介绍这三个链接,然后提供一个简单的应用程序案例。

  从理论上讲,深度学习中的数据集准备与经典机器学习中的数据集准备基本不同。它通常基于特定的数据构建样品和标签。其中,这里的样本基于不同的应用程序方案。不同的样式,例如CV字段中的典型图片以及NLP字段中的典型文本。但是无论原始样本是什么,它最终都会将其转换为一个数值张量。

  当然,在将数据集转换为张量之后,理论上可以在深度学习模型的输入和培训中使用。(数据集),我们通常希望继承这种类型以提供此格式。在这里我们主要引入3个通常引入3使用的数据集相关类:

  1.Dataset

  数据集是Pytorch中提供的数据集类别。首先,检查数据集的签名文档,如下所示:

  可以看出,所有自定义数据集都应继承此类别,然后重新加载__getItem__和__len __的两种方法。当然,还需要加载数据以通过初始化方法的类型设置要加载的数据。数据集的典型自定义的实现如下:

  2. tensordataset

  上述数据集方法可以由标准的自定义数据集构造,但是如果更简单的数据集仍然需要八个类似八个重型负载__getItem__ and __len__,则不可避免地有一些复杂且庸俗的集合。以上要求,即当特定张量作为自定义数据集包裹到数据集类型中时,然后直接使用TensordatAset。此处仍然是签名文档:

  在特定的应用程序中,您只需要将几种张量格式作为参数的输入传递到TensorDataset中,然后返回结果是标准数据集类型数据集。标准使用方法如下:

  3.数据加载器

  深度学习通常适合大数据集场景。训练一个成熟的深度学习模型通常需要足够的数量数据。因此,在深度学习培训的过程中,您通常不会一次将所有训练设置数据提供给模型,而是在一小部分培训中。每个人都称为批处理。训练称为时代。有许多方法可以实现小批次和多批次。例如,可以通过随机进行索引碎片来实现这项工作,但是使用数据级装载器的方式更为标准和优雅。给出的签名文档如下:

  可以看出,数据加载程序通常可以等效于为数据集实现随机采样(采样器),然后为指定的数据集提供迭代类型。相对回应,使用方法相对简单:直接传输数据集作为数据集作为一个数据集作为一个数据集参数到数据载体中。简单使用示例如下:

  以上是Pytorch中经常使用的三个操作来构建数据集。基本上,每天使用中使用的大多数需求都可以与实际情况一起涵盖。

  深度学习和经典机器学习之间最大的区别之一是模型结构在模型结构方面。经典的机器学习模型通常具有固定的范式和结构。例如,随机森林由指定数量的决策树组成。整个过程中,随机森林模型的结构是确定的。深度学习模型的基础是神经网络,该网络由几个神经网络层组成。创新空间。

  当然,网络体系结构的设计无需从头开始。这些深度学习框架的主要特征之一是提供基本的神经网络模块(模块),而用户只需要根据自己的设计意图而灵活地组装,就像起床一样 - 就像构建块一样!所有网络模块!在Pytorch中,位于Torch.nn模块(NN = Nural网络)下,其中包括以下模块:

  这些模块的数量巨大且不同,这构成了深度学习模型的核心,但是就其功能而言,它通常分为以下类别:

  在某种程度上,深度学习的主题是理解和掌握其各自的功能和使用方法。基于此,您可以遵循自己对数据和场景的理解。模型效果。

  这部分太大了。这不是一个可以清楚地解释的两个小组推文。这还不足以完全理解它不足以完全理解。

  在这些单个网络模块的基础上,完整的网络模型内置需要继承Pytorch中的模块类以实现它(此过程类似于继承数据集类以实现自定义数据集),模块的签名文档仍然是这里给出:

  可以看出,所有自定义网络模型都需要继承模块类,并且通常需要重写前向功能(用于实现神经网络的正向传播过程)。培训参数等。

  它仍然与经典机器学习模型的培训模型不同。由于其网络体系结构通常是自定义的,因此通常通过调用拟合/预测来实现简单的模型培训/预测过程,并经常由用户自己掌握。

  一般而言,模型培训的实施主要包括以下要素:

  数据集的准备和模型定义部分是前两个部分中描述的内容。损失函数,简单的要求可以基于Pytorch提供的共同损失函数,而更复杂和个性化的损失函数继承了模块类的模式以使其自身。定义实现;优化器部分不是太多的“模式”。通常,它可以直接调用构建的优化器,例如Adam,SGD等。

  这些操作与随后的练习案例结合起来。

  尽管麻雀很小,五个内部器官,但麻雀的解剖结构可以帮助探索含义的本质和基本定律。

  在上述小部分的理论基础上,您可以开始深度学习实践案例。在这里,Sklearn中的手写数字分类针对目标。

  1.首先,在Sklearn中随机森林模型的实现方法和效果

  当然,该数据集的分类并不困难,即使没有人参,它也达到了良好的分类效果。

  2.基于Pytorch的深度学习模型培训实践。在这里,根据标准深度学习培训过程,上述手写数字分类数据集仍用于实验:

  A。构建数据集类型数据集

  b。通常定义网络模型并仅使用线性网络层

  C。

  此时,从数据集准备到模型定义,直到最终模型培训和输出。数据并不大,深度学习的优势并不明显。

  原始:https://juejin.cn/post/7095368946806685709