19.神经网络 - 线性层及其他层介绍

神经网络 - 线性层及其他层介绍

1.批标准化层–归一化层(不难,自学看官方文档)

Normalization Layers

torch.nn — PyTorch 1.10 documentation

BatchNorm2d — PyTorch 1.10 documentation

对输入采用Batch Normalization,可以加快神经网络的训练速度

CLASS torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None, dtype=None)
# num_features C-输入的channel

image-20240808153449423

# With Learnable Parameters
m = nn.BatchNorm2d(100)
# Without Learnable Parameters
m = nn.BatchNorm2d(100, affine=False)  # 正则化层num_feature等于channel,即100
input = torch.randn(20, 100, 35, 45)   #batch_size=20,100个channel,35x45的输入
output = m(input)

image-20240808153318952

2.Recurrent Layers(特定网络中使用,自学)

RNN、LSTM等,用于文字识别中,特定的网络结构

torch.nn — PyTorch 1.13 documentation

image-20240808151920684

3.Transformer Layers(特定网络中使用,自学)

特定网络结构

torch.nn — PyTorch 1.13 documentation

image-20240808151936485

4.Linear Layers–线性层(本节讲解)–使用较多

网站地址:Linear — PyTorch 1.10 documentation

img

d代表特征数,L代表神经元个数 K和b在训练过程中神经网络会自行调整,以达到比较合理的预测

image-20240808152000232

image-20240808152017760

下面以一个简单的网络结果VGG16模型为例

5.代码实例 vgg16 model

img

flatten 摊平

torch.flatten — PyTorch 1.10 documentation

# Example
>>> t = torch.tensor([[[1, 2],[3, 4]],[[5, 6],[7, 8]]])   #3个中括号,所以是3维的
>>> torch.flatten(t)  #摊平
tensor([1, 2, 3, 4, 5, 6, 7, 8])
>>> torch.flatten(t, start_dim=1)  #变为1行
tensor([[1, 2, 3, 4],[5, 6, 7, 8]])
  • reshape():可以指定尺寸进行变换
  • flatten():变成1行,摊平
output = torch.flatten(imgs)
# 等价于
output = torch.reshape(imgs,(1,1,1,-1))for data in dataloader:imgs,targets = dataprint(imgs.shape)  #torch.Size([64, 3, 32, 32])output = torch.reshape(imgs,(1,1,1,-1))  # 想把图片展平print(output.shape)  # torch.Size([1, 1, 1, 196608])output = tudui(output)print(output.shape)  # torch.Size([1, 1, 1, 10])for data in dataloader:imgs,targets = dataprint(imgs.shape)  #torch.Size([64, 3, 32, 32])output = torch.flatten(imgs)   #摊平print(output.shape)   #torch.Size([196608])output = tudui(output)print(output.shape)   #torch.Size([10])

我们想实现下面这个:

image-20240808152109358

import torch
import torchvision.datasets
from torch import nn
from torch.nn import Linear
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset, batch_size=64, drop_last=True)class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.linear1 = Linear(196608, 10)def forward(self, input):output = self.linear1(input)return outputtudui = Tudui()
writer = SummaryWriter("logs")
step = 0for data in dataloader:imgs, targets = dataprint(imgs.shape)  # torch.Size([64, 3, 32, 32])writer.add_images("input", imgs, step)output = torch.reshape(imgs,(1,1,1,-1))  # 方法一:用reshape把图片拉平,另一种办法直接用torch.flatten(imgs)摊平# print(output.shape)  # torch.Size([1, 1, 1, 196608])# output = tudui(output)# print(output.shape)  # torch.Size([1, 1, 1, 10])#output = torch.flatten(imgs)  #方法二 摊平print(output.shape)  # torch.Size([196608])output = tudui(output)print(output.shape)  # torch.Size([10])writer.add_images("output", output, step)step = step + 1

image-20240808161700359

运行后在 terminal 里输入:

tensorboard --logdir=logs

运行结果如下:

image-20240808161529487

6.Dropout Layers(不难,自学)

Dropout — PyTorch 1.10 documentation

在训练过程中,随机把一些 input(输入的tensor数据类型)中的一些元素变为0,变为0的概率为p

目的:防止过拟合

image-20240808152145889

7.Sparse Layers(特定网络中使用,自学)

Embedding

Embedding — PyTorch 1.10 documentation

用于自然语言处理

8.Distance Functions

计算两个值之间的误差

torch.nn — PyTorch 1.13 documentation

image-20240808152343889

9. Loss Functions

loss 误差大小

torch.nn — PyTorch 1.13 documentation

image-20240808152404986

  1. pytorch提供的一些网络模型

    图片相关:torchvision torchvision.models — Torchvision 0.11.0 documentation
    分类、语义分割、目标检测、实例分割、人体关键节点识别(姿态估计)等等

    文本相关:torchtext 无
    语音相关:torchaudio torchaudio.models — Torchaudio 0.10.0 documentation

下一节:Container ——> Sequential(序列)

hvision 0.11.0 documentation
分类、语义分割、目标检测、实例分割、人体关键节点识别(姿态估计)等等

文本相关:torchtext   无
语音相关:torchaudio  torchaudio.models — Torchaudio 0.10.0 documentation

下一节:Container ——> Sequential(序列)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[数据集][目标检测]光伏发电板红外图像鸟粪检测数据集VOC+YOLO格式173张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):173 标注数量(xml文件个数):173 标注数量(txt文件个数):173 标注类别…

sentinel安装

Releases alibaba/Sentinel GitHub java -jar sentinel-dashboard-1.8.8.jar 默认启动端口是8080 修改端口启动 java -jar sentinel-dashboard-1.8.8.jar --server.port8888 localhost:配置的端口 账密都是sentinel

本地部署Xinference实现智能体推理工作流(一)

提示:没有安装Docker的需要先提前安装好Docker 第一篇章 使用AutoDL平台快速部署xinference 备注:若使用AutoDL平台,以下过程使用无卡模型开机即可(省钱) 1. 下载Dify源码 Github下载Dify:https://github.com/langgenius/dify 2. 快速启动…

通过观测云 eBPF Tracing 实现无埋点的全链路追踪

前言 随着微服务架构的普及和系统复杂度的增加,对应用程序的可观测性要求也越来越高。传统的监控方法通常需要在应用程序中添加代码来记录和追踪重要信息,这种方法可能会增加系统的负担,并且在复杂系统中维护难度较大。 eBPF(Ex…

告别PDF格式困扰,2024年PDF转换器推荐

PDF现在已经逐渐成为了文件传输的主流格式了,它有保存文件页面版式的优点,但是这个格式编辑对大部分人来说还是不那么方便,日常我们还是习惯将它们转换成我们常见的 文本格式来操作。今天我分享一下可以实现PDF格式转换的pdf转换器有哪些吧。…

SX_c语言字符串赋值 “multiple definition of .. first defined here”问题_21

字符串赋值问题&#xff1a; #include <stdio.h> #include <string.h>char* my_string_cat(int position, int slot, char* content){char* gnsst NULL;static char retvalue[50];memset(retvalue, \0, sizeof(retvalue));if(position 0){//头部if(slot 0){//卡…

【视频讲解】SMOTEBoost、RBBoost和RUSBoost不平衡数据集的集成分类酵母数据集、治癌候选药物|数据分享...

全文链接&#xff1a;https://tecdat.cn/?p37502 分析师&#xff1a;Zilin Wu 在当今的大数据时代&#xff0c;科研和实际应用中常常面临着海量数据的处理挑战。在本项目中&#xff0c;我们拥有上万条数据&#xff0c;这既是宝贵的资源&#xff0c;也带来了诸多难题。一方面&a…

【递归回溯之floodfill算法专题练习】

1. 图像渲染 class Solution {int dx[4] {0, 0, -1, 1};int dy[4] {1, -1, 0, 0};int m, n;int oldcolor; public:vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int color) {oldcolor image[sr][sc]; // 保存原…

MySQL数据库MVCC机制底层原理详解

mvcc机制即多版本并发控制 当在事务中使用了写操作&#xff08;增删改&#xff09;语句时会给当前事务生成一个事务id&#xff0c;事务id是递增的 同时&#xff0c;对于被修改的行的数据会创建一个数据版本 &#xff0c;这个数据版本除了包含原有的字段还会包含一个事务id和一…

Linux驱动开发—创建总线,创建属性文件

文章目录 1.什么是BUS&#xff1f;1.1总线的主要概念1.2总线的操作1.3总线的实现 2.创建总线关键结构体解析2.1注册总线到系统2.2 struct bus_type *bus 解析 3.实验结果分析1. devices 目录2. drivers 目录3. drivers_autoprobe 文件4. drivers_probe 文件5. uevent 文件 4.在…

【力扣】划分为k个相等的子集

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 给定一个整数数组 …

【qt】锁

线程安全问题. 多线程程序太复杂了. 加锁 把多个线程要访问的公共资源&#xff0c;通过锁保护起来.>把并发执行变成串行执行. Linux mutex 互斥量. C11引入std::mutex Qt 同样也提供了对应的锁&#xff0c;来针对系统提供的锁进行封装.QMutex 多个线程进行加锁的对象&…

【生日视频制作】室内告白表白祝福布置霓虹灯AE模板修改文字软件生成器教程特效素材【AE模板】

室内告白表白祝福布置霓虹灯生日视频制作教程AE模板改字生成器 怎么如何做的【生日视频制作】室内告白表白祝福布置霓虹灯AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频

Signac R|如何合并多个 Seurat 对象 (1)

引言 在本文中演示了如何合并包含单细胞染色质数据的多个 Seurat 对象。为了进行演示&#xff0c;将使用 10x Genomics 提供的四个 scATAC-seq PBMC 数据集&#xff1a; 500-cell PBMC 1k-cell PBMC 5k-cell PBMC 10k-cell PBMC 实战 在整合多个单细胞染色质数据集的过程中&…

SAP与生产制造MPM系统集成案例

一、需求介绍 某公司为保证企业内部生产管理系统的多项基础数据的同步更新&#xff0c;确保各模块间信息的一致性和准确性&#xff0c;对后续的生产计划和物料管理打下基础&#xff0c;该公司将MPM系统和SAP系统经过SAP PO中间件集成平台进行了集成。MPM全称为Manufacturing…

超实用的8个无版权、免费、高清图片素材网站整理

不管是设计、文章配图&#xff0c;还是视频制作&#xff0c;图片都至关重要。但是图片版权一直都是困扰很多设计、自媒体以及企业的大问题。现在&#xff0c;因为图片侵权被告的案例已经是司空见惯了&#xff0c;有的公众号甚至因为图片版权问题遭受致命打击。 1. Pexels Pexe…

Spring框架:开发者的得力伙伴,魅力何在?

目录 一. Spring介绍 二. Spring搭建 三. Spring Bean管理 ▐ 管理方式 ▐ 依赖注入 四. Spring数据访问层管理 五. Spring集成MyBatis 海漫浩浩,我亦苦作舟!大家一起学习,一起进步! 一. Spring介绍 Spring是什么? Spring 是一个轻量级的, IOC 和 AOP 的一站式 J…

如何使用ssm实现基于java web的计算机office课程平台设计与实现+vue

TOC ssm277基于java web的计算机office课程平台设计与实现vue 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利…

博弈论(Nim游戏的扩展)

公平组合游戏ICG 若一个游戏满足: 1.由两名玩家交替行动; 2.在游戏进程的任意时刻&#xff0c;可以执行的合法行动与轮到哪名玩家无关; 3.不能行动的玩家判负; 则称该游戏为一个公平组合游戏。 NIM博弈属于公平组合游戏&#xff0c;但城建的棋类游戏&#xff0c;比如围棋&…

大刀阔斧改革之后,阅文距离“东方迪士尼”更近了吗?

当前&#xff0c;网文IP的确是“富矿”。中国社会科学院文学研究所发布的《2023中国网络文学发展研究报告》显示&#xff0c;截至2023年底&#xff0c;网络文学IP市场规模2605亿元&#xff0c;同比增长近百亿元。 近日&#xff0c;网文产业中的头部企业阅文集团也披露数据称&a…