PyTorch学习笔记(5)--神经网络基本骨架nn.Module的使用

PyTorch学习笔记(5)–神经网络基本骨架nn.Module的使用

    本博文是PyTorch的学习笔记,第5次内容记录,主要介绍神经网络基本骨架nn.Module的基本使用。

目录

  • PyTorch学习笔记(5)--神经网络基本骨架nn.Module的使用
  • 1.nn.Module是什么
  • 2.nn.Module的使用
    • 2.1nn.Module的基本结构
    • 2.2搭建自己的神经网络
  • 3.学习小结

1.nn.Module是什么

    torcn.nn是专门为神经网络设计的模块化接口. nn构建于autograd之上,可以用来定义和运行神经网络。
    nn.Module是nn中十分重要的类,包含网络各层的定义及forward方法,在用户自定义神经网络时,需要继承自nn.Module类。
    在PyTorch官网中有关于torch.nn的详细情况介绍:torch.nn模块介绍。
    具体情况如下图所示:
PyTorch学习笔记(5)--神经网络基本骨架nn.Module的使用_第1张图片
PyTorch学习笔记(5)--神经网络基本骨架nn.Module的使用_第2张图片

2.nn.Module的使用

2.1nn.Module的基本结构

    在官网中,详细介绍了nn.Module的基本结构,现以containers为例,详细代码入下:

import torch.nn as nn
import torch.nn.functional as F

class Model(nn.Module):  # Model类继承自nn.Module
    def __init__(self):   # 构造函数
        super(Model, self).__init__()  # 在构造函数中要调用Module的构造函数
        self.conv1 = nn.Conv2d(1, 20, 5)  # 卷积操作
        self.conv2 = nn.Conv2d(20, 20, 5) # 卷积操作

    def forward(self, x): # 前向传播函数
        x = F.relu(self.conv1(x))  # 先卷积操作conv1,后非线性操作relu
        return F.relu(self.conv2(x))

    关于forward函数的细节如下所示:
PyTorch学习笔记(5)--神经网络基本骨架nn.Module的使用_第3张图片

2.2搭建自己的神经网络

    现在尝试搭建自己的神经网络,创建一个名字为Test的类,代码如下:

# coding :UTF-8
# 文件功能: 代码实现nn.module模块基本使用的功能
# 开发人员: dpp
# 开发时间: 2021/8/15 11:18 下午
# 文件名称: nn_module.py
# 开发工具: PyCharm
import torch
from torch import nn


class Test(nn.Module):
    def __init__(self):
        super().__init__()

    def forward(self, input):
        output = input + 1
        return output

test = Test()
x = torch.tensor(1.0)
output = test(x)
print(output)

    在上述神经网络中创建了类Test,并实现将输入+1的操作,输出结果。代码运行效果如下所示:
PyTorch学习笔记(5)--神经网络基本骨架nn.Module的使用_第4张图片
    在语句test = Test()处设置断点,观察代码运行过程中各个变量的变化情况,如下所示:
PyTorch学习笔记(5)--神经网络基本骨架nn.Module的使用_第5张图片

3.学习小结

    在本文中总结了神经网络基本骨架nn.Module的基本使用方法,并通过构建一个类Test介绍nn.Module的具体使用方法,在下一篇博文,将开始介绍神经网络的具体层。
    关于nn.Module的更多细节可以参照博文:Pytorch nn.Module模块详解。

你可能感兴趣的:(PyTorch学习笔记,python,pytorch,神经网络)