Pytorch深度学习-----神经网络的基本骨架-nn.Module的使用

系列文章目录

PyTorch深度学习——Anaconda和PyTorch安装
Pytorch深度学习-----数据模块Dataset类
Pytorch深度学习------TensorBoard的使用
Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Compose,RandomCrop)
Pytorch深度学习------torchvision中dataset数据集的使用(CIFAR10)
Pytorch深度学习-----DataLoader的用法


文章目录

  • 系列文章目录
  • 一、nn.Module是什么?
  • 二、搭建自己的一个神经网络


一、nn.Module是什么?

首先nn是Neural Netword(神经网络)首字母的缩写。
其次torch.nn是专门为神经网络设计的模块化接口,可以用来定义和运行神经网络
nn.Module是nn中十分重要的类,包含网络各层的定义及forward方法
类别如下图所示
Pytorch深度学习-----神经网络的基本骨架-nn.Module的使用_第1张图片
Module:位于containers容器中
官网案例如下图所示:
Pytorch深度学习-----神经网络的基本骨架-nn.Module的使用_第2张图片
代码解释如下:

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

class Model(nn.Module):  # 表示nn.Module为其Model的父类,Model继承于它
    def __init__(self):  # 构造函数,进行初始化
        super().__init__()  # 调用父类的构造函数
        self.conv1 = nn.Conv2d(1, 20, 5)  # 卷积操作
        self.conv2 = nn.Conv2d(20, 20, 5) # 卷积操作

    def forward(self, x):  # 前向传播函数
        x = F.relu(self.conv1(x))
        return F.relu(self.conv2(x))

小土堆对forward函数的解释如下图所示
Pytorch深度学习-----神经网络的基本骨架-nn.Module的使用_第3张图片
Pytorch深度学习-----神经网络的基本骨架-nn.Module的使用_第4张图片
即:对输入的x进行第一次卷积,再进行第一次非线性操作;
再第二次进行卷积,然后第二次非线性操作。
最后返回结果。

二、搭建自己的一个神经网络

import torch
import torch.nn as nn

# 创建类
class Lgl(nn.Module):  # 表示nn.Module为其Lgl的父类,Lgl继承于它
    def __init__(self):  # 构造函数,进行初始化
        super().__init__()  # 调用父类的构造函数

    def forward(self, x):  # 前向传播函数
        y = x+1  # 定义这个神经网络是输入x,返回x+1的结果
        return y
# 实例化
test = Lgl()
x=torch.tensor(1.0)  # 创建tensor类型数据作为卷积的参数
print(type(x))
result = test(x)
print(result)  # tensor(2.)

你可能感兴趣的:(pytorch深度学习,深度学习,pytorch,神经网络)