跟着小土堆学习pytorch(六)——神经网络的基本骨架(nn.model)

文章目录

一、model介绍

复制代码
容器                                          Containers
卷积层                                        Convolution Layers
池化层                                        Pooling layers
填白层                                        Padding Layers
非线性激活(加权和,非线性)                  Non-linear Activations (weighted sum, nonlinearity)
非线性激活(其他)                            Non-linear Activations (other)
正则化层                                      Normalization Layers
复发性层                                      Recurrent Layers
变压器层                                      Transformer Layers
线性层                                        Linear Layers
辍学层                                        Dropout Layers
稀疏层                                        Sparse Layers
距离函数                                      Distance Functions
损失函数                                      Loss Functions
视觉层                                        Vision Layers
洗牌层(打乱)                                Shuffle Layers
数据并行层                                    DataParallel Layers (multi-GPU, distributed)
量化的功能                                    Quantized Functions
惰性模块初始化                                Lazy Modules Initialization

以后一一介绍

二、Module

python 复制代码
class Model(nn.Module):
    def __init__(self) -> None:
        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))

定义自己的类(神经网络),自己继承了Module的父类,但是有想进行修改,则定义了__init__和forward ,

之后就是调用父类的初始化函数。forward(前向传播),backward(反向传播)。

x魏输入,F.relu(self.conv1(x)),先经过一次卷积conv1,之后经过一次非线性relu

由于返回时return F.relu(self.conv2(x))所有总共两组。

示例

python 复制代码
import torch
from torch import nn
class Tudui(nn.Module):
	def __init__(self):
		super().__init__()
	def forward(self,input):
		output = input + 1
		return output
tudui = Tudui()
x = torch.tensor(1.0)
output = tudui(x)
print(output)

三、张量

3.1 定义

数学中

标量:单独的数

向量:一行或一列数组

矩阵:二维数组

张量:维度超过2的数组

PyTorch中

张量(Tensor)是一种数据结构,可以是一个标量、一个向量、一个矩阵,甚至是更高维度的数组。

所以PyTorch中的张量(Tensor)和Numpy中的**数组(ndarray)**非常相似。

3.2 用法

一、张量的数据类型、默认类型、类型转换。

二、张量的生成:torch.tensor()、torch.Tensor()、张量和NumPy数据互相转换、随机数生成张量、函数生成等。

三、张量操作:改变张量的形状、获取张量中的元素、拼接和拆分等。

四、张量计算:比较大小、基本运算、统计相关计算等。

文章链接:【PyTorch】张量超详细介绍(数据类型、生成、操作、计算)

相关推荐
石像鬼₧魂石几秒前
22端口(OpenSSH 4.7p1)渗透测试完整复习流程(含实战排错)
大数据·网络·学习·安全·ubuntu
云半S一1 小时前
pytest的学习过程
经验分享·笔记·学习·pytest
微露清风2 小时前
系统性学习C++-第二十讲-哈希表实现
c++·学习·散列表
星火开发设计2 小时前
C++ queue 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识·队列
All The Way North-3 小时前
PyTorch从零实现CIFAR-10图像分类:保姆级教程,涵盖数据加载、模型搭建、训练与预测全流程
pytorch·深度学习·cnn·图像分类·实战项目·cifar-10·gpu加速
如果你想拥有什么先让自己配得上拥有3 小时前
近似数的思考学习
学习
ha20428941944 小时前
Linux操作系统学习记录之----自定义协议(网络计算器)
linux·网络·学习
振华说技能4 小时前
SolidWorks学习大纲-从基础到全面精通,请看详情
学习
曦月逸霜4 小时前
离散数学-学习笔记(持续更新中~)
笔记·学习·离散数学
im_AMBER4 小时前
Leetcode 101 对链表进行插入排序
数据结构·笔记·学习·算法·leetcode·排序算法