当前位置: 首页 > news >正文

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

文章目录

  • 一、model介绍
  • 二、Module
  • 三、张量
    • 3.1 定义
    • 3.2 用法

一、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

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))所有总共两组。
示例

import torch
from torch import nn
class Tudui(nn.Module):def __init__(self):super().__init__()def forward(self,input):output = input + 1return 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】张量超详细介绍(数据类型、生成、操作、计算)


http://www.mrgr.cn/news/62352.html

相关文章:

  • PHP7内核剖析 学习笔记 第一章 PHP基础架构
  • uni-app写的微信小程序如何实现账号密码登录后获取token,并且每天的第一次登录后都会直接获取参数而不是耀重新登录(1)
  • CSS 动画效果实现:图片展示与交互
  • C语言实例_22之计算阶乘n!
  • Linux权限机制深度解读:系统安全的第一道防线
  • HDFS 操作命令
  • 百度搜索引擎的工作原理
  • linux下的进程,fork、exec函数族简介
  • 如何查看磁盘的类型?(固态硬盘 or 机械硬盘)
  • 【大模型之Graph RAG系列之一】由谷歌搜索的演进看知识图谱如何改进RAG技术
  • 《云计算网络技术与应用》实训8-1:OpenvSwitch简单配置练习
  • 百度集度嵌入式面试题及参考答案
  • JS实现图片放大镜效果
  • 我docker拉取mysql镜像时用的是latest,我该怎么看我的镜像版本是多少?可以通过一下三种方法查看
  • 用Python下载指定URL的图片并保存到本地
  • Mybatis缓存
  • 四足机器人实战篇之十:cheetah mini运动控制工程解读(附C++代码)
  • JAVA——多线程
  • JAVA程序导致cpu标高排查
  • 微服务设计模式 — 补偿事务模式(Compensating Transaction Pattern)
  • 基于java+SpringBoot+Vue的网上租贸系统设计与实现
  • Java8中CompletableFuture.allOf的使用
  • Python飞舞蝙蝠
  • 迪杰斯特拉算法(Dijkstra‘s Algorithm
  • Vue学习记录之二十七 Pinia的使用
  • 97、Python并发编程:多线程实现的两种方式