• PyTorch入门学习(十一):神经网络-线性层及其他层介绍


    目录

    一、简介

    二、PyTorch 中的线性层

    三、示例:使用线性层构建神经网络

    四、常见的其他层


    一、简介

    神经网络是由多个层组成的,每一层都包含了一组权重和一个激活函数。每层的作用是将输入数据进行变换,从而最终生成输出。线性层是神经网络中的基本层之一,它执行的操作是线性变换,通常表示为:

    y = Wx + b
    

    其中,y 是输出,x 是输入,W 是权重矩阵,b 是偏置。线性层将输入数据与权重矩阵相乘,然后加上偏置,得到输出。线性层的主要作用是进行特征提取和数据的线性组合。

    二、PyTorch 中的线性层

    在 PyTorch 中,线性层可以通过 torch.nn.Linear 类来实现。下面是一个示例,演示如何创建一个简单的线性层:

    1. import torch
    2. from torch.nn import Linear
    3. # 创建一个线性层,输入特征数为 3,输出特征数为 2
    4. linear_layer = Linear(3, 2)

    在上面的示例中,首先导入 PyTorch 库,然后创建一个线性层 linear_layer,指定输入特征数为 3,输出特征数为 2。该线性层将对输入数据执行一个线性变换。

    三、示例:使用线性层构建神经网络

    现在,接下来看一个示例,如何使用线性层构建一个简单的神经网络,并将其应用于图像数据。我们使用 PyTorch 和 CIFAR-10 数据集,这是一个广泛使用的图像分类数据集。

    1. import torch
    2. from torch import nn
    3. from torch.nn import Linear
    4. from torch.utils.data import DataLoader
    5. import torchvision.datasets
    6. # 加载 CIFAR-10 数据集
    7. dataset = torchvision.datasets.CIFAR10("D:\\Python_Project\\pytorch\\dataset2", train=False, transform=torchvision.transforms.ToTensor(), download=True)
    8. dataloader = DataLoader(dataset, batch_size=64)
    9. # 定义一个简单的神经网络
    10. class MyModel(nn.Module):
    11. def __init__(self):
    12. super(MyModel, self).__init()
    13. self.linear1 = Linear(196608, 10)
    14. def forward(self, x):
    15. x = x.view(x.size(0), -1) # 将输入数据展平
    16. x = self.linear1(x)
    17. return x
    18. # 创建模型实例
    19. model = MyModel()
    20. # 遍历数据集并应用模型
    21. for data in dataloader:
    22. imgs, targets = data
    23. outputs = model(imgs)
    24. print(outputs.shape)

    在上面的示例中,首先加载 CIFAR-10 数据集,然后定义了一个简单的神经网络 MyModel,其中包含一个线性层。我们遍历数据集并将输入数据传递给模型,然后打印输出的形状。

    四、常见的其他层

    除了线性层,神经网络中还有许多其他常见的层,例如卷积层(Convolutional Layers)、池化层(Pooling Layers)、循环层(Recurrent Layers)等。这些层在不同类型的神经网络中起到关键作用。例如,卷积层在处理图像数据时非常重要,循环层用于处理序列数据,池化层用于减小数据维度。在 PyTorch 中,这些层都有相应的实现,可以轻松地构建不同类型的神经网络。

    参考资料:

    视频教程:PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】

  • 相关阅读:
    02、Servlet核心技术(下)
    SpringCloud微服务-Eureka注册中心
    5G网络助力智慧文旅发展:实现旅游资源的优化配置与高效利用
    各语言转wasm-js调用
    ElasticSearch7.3学习(六)----文档(document)内部机制详解
    中小企业数字化思考:数字化转型应该走自己的路
    Elasticsearch:部署 ECE (Elastic Cloud Enterprise)
    【多光谱与高光谱图像融合:金字塔混洗Transformer】
    Linux下socket客户端连接服务器端发送数据
    Redis缓存知识总结
  • 原文地址:https://blog.csdn.net/qq_46179411/article/details/134160209