关于pytorch中全连接神经网络搭建两种模式详解

yizhihongxing

PyTorch 中全连接神经网络搭建两种模式详解

在 PyTorch 中,全连接神经网络是一种常见的神经网络模型。本文将详细讲解 PyTorch 中全连接神经网络的搭建方法,并提供两个示例说明。

1. 模式一:使用 nn.Module 搭建全连接神经网络

在 PyTorch 中,我们可以使用 nn.Module 类来搭建全连接神经网络。以下是使用 nn.Module 搭建全连接神经网络的示例代码:

import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(784, 512)
        self.fc2 = nn.Linear(512, 256)
        self.fc3 = nn.Linear(256, 10)

    def forward(self, x):
        x = x.view(-1, 784)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

在这个示例中,我们首先定义了一个名为 Net 的类,并继承了 nn.Module 类。然后,我们在 init() 方法中定义了三个全连接层,分别是 fc1、fc2 和 fc3。接着,我们在 forward() 方法中定义了网络的前向传播过程,其中使用了 F.relu() 函数来实现激活函数的功能。最后,我们返回了网络的输出。

2. 模式二:使用 nn.Sequential 搭建全连接神经网络

除了使用 nn.Module 类搭建全连接神经网络之外,我们还可以使用 nn.Sequential 类来搭建全连接神经网络。以下是使用 nn.Sequential 搭建全连接神经网络的示例代码:

import torch.nn as nn

net = nn.Sequential(
    nn.Linear(784, 512),
    nn.ReLU(),
    nn.Linear(512, 256),
    nn.ReLU(),
    nn.Linear(256, 10)
)

在这个示例中,我们首先定义了一个名为 net 的 nn.Sequential 对象,并在其中添加了三个全连接层和两个激活函数。其中,nn.Linear() 函数用于定义全连接层,nn.ReLU() 函数用于定义激活函数。

示例1:使用 nn.Module 搭建全连接神经网络

以下是使用 nn.Module 搭建全连接神经网络的示例代码:

import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(784, 512)
        self.fc2 = nn.Linear(512, 256)
        self.fc3 = nn.Linear(256, 10)

    def forward(self, x):
        x = x.view(-1, 784)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

net = Net()

在这个示例中,我们首先定义了一个名为 Net 的类,并继承了 nn.Module 类。然后,我们在 init() 方法中定义了三个全连接层,分别是 fc1、fc2 和 fc3。接着,我们在 forward() 方法中定义了网络的前向传播过程,其中使用了 F.relu() 函数来实现激活函数的功能。最后,我们创建了一个名为 net 的对象。

示例2:使用 nn.Sequential 搭建全连接神经网络

以下是使用 nn.Sequential 搭建全连接神经网络的示例代码:

import torch.nn as nn

net = nn.Sequential(
    nn.Linear(784, 512),
    nn.ReLU(),
    nn.Linear(512, 256),
    nn.ReLU(),
    nn.Linear(256, 10)
)

在这个示例中,我们首先定义了一个名为 net 的 nn.Sequential 对象,并在其中添加了三个全连接层和两个激活函数。其中,nn.Linear() 函数用于定义全连接层,nn.ReLU() 函数用于定义激活函数。

结语

以上是 PyTorch 中全连接神经网络搭建两种模式的详细攻略,包括使用 nn.Module 类和 nn.Sequential 类搭建全连接神经网络的示例代码。在实际应用中,我们可以根据具体情况来选择合适的方法,以搭建高效的神经网络模型。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于pytorch中全连接神经网络搭建两种模式详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Pytorch dataset自定义【直播】2019 年县域农业大脑AI挑战赛—数据准备(二),Dataset定义

    在我的torchvision库里介绍的博文(https://www.cnblogs.com/yjphhw/p/9773333.html)里说了对pytorch的dataset的定义方式。 本文相当于实现一个自定义的数据集,而这正是我们在做自己工程所需要的,我们总是用自己的数据嘛。 继承 from torch.utils.data import Dataset…

    2023年4月6日
    00
  • Pytorch 扩展Tensor维度、压缩Tensor维度

        相信刚接触Pytorch的宝宝们,会遇到这样一个问题,输入的数据维度和实验需要维度不一致,输入的可能是2维数据或3维数据,实验需要用到3维或4维数据,那么我们需要扩展这个维度。其实特别简单,只要对数据加一个扩展维度方法就可以了。 1.1 torch.unsqueeze(self: Tensor, dim: _int)   torch.unsqueez…

    2023年4月8日
    00
  • Colab下pytorch基础练习

    Colab    Colaboratory 是一个 Google 研究项目,旨在帮助传播机器学习培训和研究成果。它是一个 Jupyter 笔记本环境,并且完全在云端运行,已经默认安装好 pytorch,不需要进行任何设置就可以使用,并且完全在云端运行。详细使用方法可以参考 Rogan 的博客:https://www.cnblogs.com/lfri/p/10…

    2023年4月8日
    00
  • Pytorch Visdom

    fb官方的一些demo 一.  show something 1.  vis.image:显示一张图片 viz.image( np.random.rand(3, 512, 256), opts=dict(title=’Random!’, caption=’How random.’), ) opts.jpgquality:JPG质量(number0-100;默…

    2023年4月8日
    00
  • [pytorch][进阶之路]pytorch学习笔记一

    1. Tensor是一个高维数组,可以通过GPU加速运算 import torch as t x = t.Tensor(5, 3) # 构建Tensor x = t.Tensor([[1,2],[3,4]]) # 初始化Tendor x = t.rand(5, 3) # 使用[0,1]均匀分布随机初始化二维数组 print(x.size()) # 查看x的形…

    PyTorch 2023年4月8日
    00
  • kaggle——猫狗识别(pytorch)

    数据下载 一、下载数据集并创建以下形式文件目录   train.py: 用于创建并训练模型,并生成训练完成的参数文件。   setting.py: 用于存放训练配置、超参数,包括学习率,训练次数,裁剪图片大小,每次训练图片数量,参数保存地址。   train: 存放下载的数据集(共25000张图片,其中猫狗各12500张)。   func: 自定义包,存放部…

    PyTorch 2023年4月7日
    00
  • Win10系统下Pytorch环境的搭建过程

    当您需要在Windows 10系统下搭建PyTorch环境时,您需要遵循以下步骤: 步骤1:安装Anaconda 首先,您需要安装Anaconda,这是一个流行的Python发行版,它包含了许多常用的Python库和工具。您可以从Anaconda官网下载适用于Windows 10的安装程序,并按照提示进行安装。 步骤2:创建虚拟环境 接下来,您需要创建一个虚…

    PyTorch 2023年5月15日
    00
  • 动手学深度学习PyTorch版-task04

    课后习题 task0402.注意力机制与Seq2seq模型 不同的attetion layer的区别在于score函数的选择,在本节的其余部分,我们将讨论两个常用的注意层 Dot-product Attention 和 Multilayer Perceptron Attention;随后我们将实现一个引入attention的seq2seq模型并在英法翻译语料…

    2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部