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

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

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

1.nn.Module是什么

    torcn.nn是专门为神经网络设计的模块化接口. nn构建于autograd之上,可以用来定义和运行神经网络。
    nn.Module是nn中十分重要的类,包含网络各层的定义及forward方法,在用户自定义神经网络时,需要继承自nn.Module类。
    在PyTorch官网中有关于torch.nn的详细情况介绍:torch.nn模块介绍
    具体情况如下图所示:
在这里插入图片描述
在这里插入图片描述

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函数的细节如下所示:
在这里插入图片描述

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的操作,输出结果。代码运行效果如下所示:
在这里插入图片描述
    在语句test = Test()处设置断点,观察代码运行过程中各个变量的变化情况,如下所示:
在这里插入图片描述

3.学习小结

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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值