【学习笔记】【Pytorch】十、线性层

news2024/12/24 21:08:53

【学习笔记】【Pytorch】九、线性层

  • 学习地址
  • 主要内容
    • 一、前言
    • 二、Pytorch的线性层
    • 三、Linear类的使用
      • 1.使用说明
      • 2.代码实现

学习地址

PyTorch深度学习快速入门教程【小土堆】.

主要内容

一、前言

在神经网络中,我们通常用线性层来完成两层神经元间的线性变换。
在这里插入图片描述
在普通神经网络里,输入是一个二维矩阵,不需要摊平。而在卷积神经网络里,在网络的最后几层里,会把卷积层摊平放到全连接里进行计算。

二、Pytorch的线性层

linear-layers

三、Linear类的使用

from torch.nn import Linear

官方解释

作用:对输入数据做线性变换:y=Ax+b。

1.使用说明

【实例化】Linear(in_features, out_features, bias=True, device=None, dtype=None)

  • 作用:创建一个实例。
  • in_features:输入结点数
    out_features:输出结点数
    bias :是否需要偏置
  • 计算公式:
    在这里插入图片描述

2.代码实现

import torch
import torchvision
from torch import nn
from torch.nn import Linear
from torch.utils.data import DataLoader


class Model(nn.Module):
    def __init__(self):
        super().__init__()  # 初始化父类参数
        self.linear1 = Linear(196608, 10)  # 创建一个实例

    def forward(self, input):
        output = self.linear1(input)
        return output


# 创建一个实例
dataset = torchvision.datasets.CIFAR10(root="./dataset", train=False,
                                       transform=torchvision.transforms.ToTensor())
# 创建一个实例,drop_last=True防止经过线性函数报错
dataloader = DataLoader(dataset, batch_size=64, drop_last=True)
model = Model()  # 创建一个实例

for data in dataloader:
    imgs, targets = data
    # batch_size, 通道数, 图片尺寸
    print(imgs.shape)  # torch.Size([64, 3, 32, 32])
    # 拉伸成向量,自动计算最后一个位置(64*3*32*32=196608)
    output = torch.reshape(imgs, (1, 1, 1, -1))
    print(output.shape)  # torch.Size([1, 1, 1, 196608])
    output = model(output)
    print(output.shape)  # torch.Size([1, 1, 1, 10])

输出

torch.Size([64, 3, 32, 32])
torch.Size([1, 1, 1, 196608])
torch.Size([1, 1, 1, 10])
torch.Size([64, 3, 32, 32])
torch.Size([1, 1, 1, 196608])
torch.Size([1, 1, 1, 10])
....
....

补充:

output = torch.reshape(imgs, (1, 1, 1, -1))
# 也可以换成
output = torch.flatten(imgs)

输出变成:

torch.Size([64, 3, 32, 32])
torch.Size([196608])
torch.Size([10])
torch.Size([64, 3, 32, 32])
torch.Size([196608])
torch.Size([10])
....
....

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

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

相关文章

【C++】面向对象---继承(万字详解)

目录前言一、继承的定义及概念二、继承方式三、基类和派生类之间的转换四、切片五、继承中的作用域六、派生类中的默认成员函数七、继承中的友元与静态成员继承与友元继承中的静态成员八、棱形继承和虚继承棱形继承虚继承总结前言 继承是面向对象的一个重点,而继承…

活动星投票医疗保障案例推介网络评选微信的投票方式线上免费投票

“医疗保障案例推介”网络评选投票_线上免费投票系统_功能齐全的微信投票_在线免费投票用户在使用微信投票的时候,需要功能齐全,又快捷方便的投票小程序。而“活动星投票”这款软件使用非常的方便,用户可以随时使用手机微信小程序获得线上投票…

图形编辑器:标尺功能的实现

大家好,我是前端西瓜哥。今天我们来实现图形编辑器的标尺功能。 项目地址: https://github.com/F-star/suika 线上体验: https://blog.fstars.wang/app/suika/ 标尺指的是画布上边和左边的两个有刻度的尺子,作用让用户知道他正在编…

java 探花交友day2 项目简介,环境搭建 登录验证码

技术方案: 项目结构: 项目概述 通过接口文档(API文档)定义规范 开发工具安装与配置 Linux虚拟机 YAPI 账号 tanhuaitcast.cn 密码123456 安装个安卓模拟器,然后安装APK 开发环境说明 初始工程搭建 阿里云短…

Leetcode:235. 二叉搜索树的最近公共祖先(C++)

目录 问题描述: 实现代码与解析: 递归: 原理思路: 精简版: 迭代: 原理思路: 问题描述: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先…

1589_AURIX_TC275_PMU_Flash的基本特性以及操作

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 关于这部分,感觉能够看到的比较有实践指导价值的信息不多。这里关于是否支持cache的信息,之前在内核手册等地方其实也看过了。 DFlash不支持buffer命中的功能&#…

21.Isaac教程--GEMS 导航堆栈简介

Isaac GEMS 导航堆栈简介 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 导航堆栈必须执行以下高级功能: Mapping 映射用于自动创建操作环境的地图。 该地图既用于定位,又用于路径规划。 它可以由具有附加功能的人进行注…

deap遗传算法 tirads代码解读

deap遗传算法 tirads代码解读写在最前面Overview 程序概览参考deap框架介绍creator模块创建适应度类Types定义适应度策略创建个体类Toolbox类创建种群(个体、策略以及粒子)Initialization1. 创建 attr_int 运算符2. 创建 individual_guess() 运算3.创建新…

学会python后:收集每天热点内容信息,并发送到自己的邮箱

嗨害大家好鸭!我是小熊猫~ 实现目的 本篇文章内容主要为如何用代码,把你想要的内容,以邮件的形式发送出去 内容可以自己完善,还可以设置一个定时发送,或者开机启动自动运行代码 代理注册与使用 注册账号并登录 生成ap…

使用TDengine时序数据库的介绍以及系统整合

目录 一、 如何使用 安装目录介绍 数据文件查看和备份 客户端连接 sql使用 二、 系统整合 Java连接配置 Demo示例 三、 对采集点、超级表、子表和设备等关系进行维护 一、 如何使用 安装目录介绍 目录/文件 说明 /usr/local/taos/bin TDengine 可执行文件目录…

css笔记2

目录 选择器进阶 1、复合选择器 1.1后代选择器:空格 1.2 子代选择器: > 2、并集选择器:, 3、交集选择器 4、hover伪类选择器 Emmet语法 背景相关属性 1.1背景颜色 2.1背景图片 3.1背景平铺 4.1背景位置 5.1背景相关属…

linux中断机制

目录 1.中断机制 1.1.中断流程图 1.2.代码结构图 2.中断代码 2.1.硬件中断 2.2.asm.s 2.3.trap.c 2.3.1.trap_init函数 2.3.2.die函数 2.4 .sys_call.s 2.4.1._system_call.s 3.总结 1.中断机制 何为中断,中断里面各种名词的区分,请看下面这几篇…

安装VSCode图文版(附安装所需插件)

安装VSCode安装地址下载安装安装成功安装所需插件安装go插件安装中文简体安装地址 VSCode 安装地址 https://code.visualstudio.com/ 下载 在下面两个地方都可以下载,左侧下载可以根据自己的需要进行版本或者系统的选择下载。 安装 同意协议 选择附加项 为什…

基于python知识图谱医疗领域问答系统实现(完整代码+数据可直接运行)

直接上结果展示: “让人类永远保持理智,确实是一种奢求” ,机器人莫斯,《流浪地球》 项目概况 本项目为一个使用深度学习方法解析问题,知识图谱存储、查询知识点,基于医疗垂直领域的对话系统的后台程序 运行效果:

【阶段四】Python深度学习04篇:深度学习项目实战:深度神经网络预测客户流失率(分类模型)

本篇的思维导图: 深度神经网络预测客户流失率(分类模型) 项目背景 应用Keras框架构建单隐层网络和深度神经网络进行金融客户流失率的预测,以及模型的优化。主要用来熟悉Keras全连接层网络的使用。 数据获取 本次建模数据来源于网络,数据项统计如下: 编号

uni-app Vue3实现一个酷炫的多功能音乐播放器支持微信小程序后台播放

前言 本文存在多张gif演示图,建议在wifi环境下阅读📖 最近在做网易云音乐微信小程序开源项目的时候,关于播放器功能参考了一些成熟的微信小程序,如网易云音乐小程序和QQ音乐小程序,但是发现这些小程序端的播放器相对于…

【寒假每日一题】洛谷 P7471 [NOI Online 2021 入门组] 切蛋糕

题目链接:P7471 [NOI Online 2021 入门组] 切蛋糕 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 Alice、Bob 和 Cindy 三个好朋友得到了一个圆形蛋糕,他们打算分享这个蛋糕。 三个人的需求量分别为 a,b,c,现在请你帮他们切蛋糕…

Linux文件的默认权限、软硬链接和属性

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java案例分…

Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝

Java-FileInputStream和FileOutputStream的使用什么是IO流?流是什么?IO流的类图流的分类字符与字节的区别FileInputStream的使用1.构造器2.常用方法3.使用FileInputStream来读取txt文件FileOutputStream的使用1.构造器2.常用方法3.使用FileOutputStream写…

(11)go-micro微服务雪花算法

文章目录一 雪花算法介绍二 雪花算法优缺点三 雪花算法实现四 最后一 雪花算法介绍 雪花算法是推特开源的分布式ID生成算法,用于在不同的机器上生成唯一的ID的算法。 该算法生成一个64bit的数字作为分布式ID,保证这个ID自增并且全局唯一。 1.第一位占用…