pytorch基础实践1

news2024/11/24 6:48:26

数据预处理的最终目的是将我们正在处理的任何数据转换成能够感知我们神经网络的张量

基本概念

tensor数据类型

CNN的输入tensor

一般CNN的输入是一个4阶张量,分别用一个字母代表每个axis上的长度,那么它的shape为:

[B,C,H,W]

其中 HW 分别代表输入的单张图片的 height(高)和 width(宽)的像素数。
C 代表 color,是指图片的颜色通道数量。对于彩色图片,通常是 C = 3(分别是RGB通道);如果是灰度图片,那么 C = 1。但 C 只在输入层中是这个含义,图片进入CNN传播之后这个axis的意义会变化。于是可以通过 C、H、W 这三个axis来索引单张图片某一个像素点的像素值,通过 C 索引颜色通道,通过 H 和 W 索引这个颜色通道下第几行第几列的亮度数值。
B 代表 batch size,因为一次向神经网络中会不只输入一张图片,而是同时输入一批图片进行并行计算,因此 B 的数值就代表一次输入了几张图片。

color channel的变化

color channel在图片在CNN的传播中会发生变化,是因为CNN中使用不同的filter对图像进行卷积操作,每个filter进行卷积之后都会输出一个output channel,称为feature map。于是原来的每一个color channel就被替换成了多个feature map。假设CNN中使用了 F 个filter,那么经过一次卷积之后tensor的shape会变成:B, F*C, H, W]
根据卷积操作的不同,输出tensor中的 H 和 W 长度也可能会发生变化。

创建操作

PyTorch中的tensor attributes

我们创建的一个空的tensor t:

> import torch
>t = torch.Tensor()
>type(t)
torch.Tensor

查看三个属性:

> print(t.dtype)
>print(t.device)
>print(t.layout)
torch.float32
cpu
torch.strided

利用已有 data 创建 PyTorch tensor

  1. torch.Tensor(data)
  2. torch.tensor(data)
  3. torch.as_tensor(data)
  4. torch.from_numpy(data)

创建 tensor 的实例如下:

> import torch
>import numpy as np
>data = np.array([1,2,3])
>type(data)
numpy.ndarray

用4种方法转化为torch.Tensor:

t1 = torch.Tensor(data) # 构造类
t2 = torch.tensor(data) # 工厂函数
t3 = torch.as_tensor(data) # 工厂函数
t4 = torch.from_numpy(data) # 工厂函数
>print(t1)
>print(t2)
>print(t3)
>print(t4)
tensor([1., 2., 3.])
tensor([1, 2, 3], dtype=torch.int32)
tensor([1, 2, 3], dtype=torch.int32)
tensor([1, 2, 3], dtype=torch.int32)

区别在于,torch.Tensor(data)是torch.Tensor这个类的 class constructor,使用默认的参数创建一个 tensor。如前所述torch.Tensor类的默认数据类型是 float32(32位浮点数),所以输出的是 [1., 2., 3.],小数点就代表浮点数。

查看默认数据类型:

> torch.get_default_dtype()
torch.float32

验证 torch.Tensor 创建的数据类型:

>t1.dtype == torch.get_default_dtype()
True

后面三种是 factory function,根据输入的 data 创建一个torch.Tensor返回给 caller,并且直接继承 data 的属性(type inference),也可以用给定参数指定属性。

指定创建的 tensor 的数据类型为 float32:

torch.tensor(data, dtype=torch.float32)
torch.as_tensor(data, dtype=torch.float32)

利用预设创建tensor

  • torch.eye()函数可以创建单位二阶张量(单位矩阵),括号内指定axis的length。例如创建 2x2 单位阵:

> print(torch.eye(2))
tensor([

[1., 0.],
[0., 1.] ])

  • torch.zeros()函数创建全零张量,例如创建 2x2 全零二阶张量:

print(torch.zeros([2,2]))
tensor([

[0., 0.],
[0., 0.]])

  • torch.ones()函数创建全1张量, 例如创建 2x2 全1张量:

print(torch.ones([2,2]))
tensor([

[1., 1.],
[1., 1.]])

  • torch.rand()函数创建随机数值张量,例如创建 3x3 随机数据张量:

print(torch.rand([3,3]))
tensor([

[0.6006, 0.0577, 0.0226],
[0.1377, 0.9634, 0.5406],
[0.4780, 0.5221, 0.4703]])

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

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

相关文章

北邮22信通:第五章 邻接表图的广度遍历和深度遍历

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 获取更多文章 请访问专栏: 北邮22信通_青山如墨雨如画的博客-CSDN博客 目录 一.总纲 二.构造函数 2.1构造函数讲解 2.2构造函数的书写 书…

echars力引导关系图

效果图 力引导关系图 力引导布局是模拟弹簧电荷模型在每两个节点之间添加一个斥力,每条边的两个节点之间添加一个引力,每次迭代节点会在各个斥力和引力的作用下移动位置,多次迭代后节点会静止在一个受力平衡的位置,达到整个模型…

Java项目-苍穹外卖-Day01

文章目录 博客介绍软件开发流程项目介绍产品原型技术选型 博客介绍 从头开始做黑马的苍穹外卖项目 每天记录一下新学的知识点以及对应的开发进度 然后一些在项目中遇到的问题会重点标注 本篇主要是后端的,前端会一笔带过 软件开发流程 流程介绍需求分析需求规格说…

使用pg_prewarm缓存PostgreSQL数据库表

pg_prewarm pg_prewarm 直接利用系统缓存的代码,对操作系统发出异步prefetch请求,在应用中,尤其在OLAP的情况下,对于大表的分析等等是非常耗费查询的时间的,而即使我们使用select table的方式,这张表也并不可能将所有…

Eureka 学习笔记2:EurekaClient

版本 awsVersion ‘1.11.277’ EurekaClient 接口实现了 LookupService 接口&#xff0c;拥有唯一的实现类 DiscoveryClient 类。 LookupService 接口提供以下功能&#xff1a; 获取注册表根据应用名称获取应用根据实例 id 获取实例信息 public interface LookupService<…

【LeetCode】141. 环形链表 进阶题142. 环形链表 II

141. 环形链表 这道题还是用经典的快慢指针法来做。每次让快的指针走两步&#xff0c;慢的走一步。如果有环&#xff0c;则绝对会在环内的某一节点相遇。思想跟物理知识有点关系&#xff0c;如果有环&#xff0c;则在相对运动过程中&#xff0c;可以相当于慢指针静止&#xff0…

STM32入门——外部中断

中断系统概述 中断&#xff1a;在主程序运行过程中&#xff0c;出现了特定的中断触发条件&#xff08;中断源&#xff09;&#xff0c;使得CPU暂停当前正在运行的程序&#xff0c;转而去处理中断程序&#xff0c;处理完成后又返回原来被暂停的位置继续运行中断优先级&#xff…

Java集合数组相互转换

1.集合转换成数组 &#xff08;1&#xff09;集合a通过toArray()方法进行转换为数组&#xff0c;可以转换成为指定类型的数组&#xff0c;但是这些类型都必须是object类型的子类&#xff0c;基本类型不可以。 必要时我们使用强制类型转换&#xff0c;转成我们需要的类型。 Li…

【网络编程】poll

主旨思想 用一个结构体记录文件描述符集合&#xff0c;并记录用户态状态和内核态状态 函数说明 概览 #include <poll.h> struct pollfd { int fd; /* 委托内核检测的文件描述符 */ short events; /* 委托内核检测文件描述符的什么事件 */ short revents; /* 文件描述…

MySQL 远程操作mysql

可以让别人在他们的电脑上操作我电脑上的数据库 create user admin identified with mysql_native_password by admin; //设置账号密码都为admingrant all on *.* to admin; //给admin账号授权 授权完成

​五、驱动 - ​音频系统硬件电路

文章目录 1. 音频系统硬件电路结构2. 蓝牙音频2.1 音乐播放2.2 VoIP通话2.3 4G通话3. 其他3.1 什么是S/PDIF1. 音频系统硬件电路结构 录音放音设备:mic、speaker、耳机、听筒这些带有录音放音功能的设备(因为录放设备可能是模拟设备也可能是数字设备,所以接口可能是模拟接口…

IDEA中怎么使用git下载项目到本地,通过URL克隆项目(gitee\github)

点击 新建>来自版本控制的项目 点击后会弹出这样一个窗口 通过URL拉取项目代码 打开你要下载的项目仓库 克隆>复制 gitee github也是一样的 返回IDEA 将刚刚复制的URL粘贴进去选择合适的位置点击克隆 下载完成

JavaEE初阶之网络初识

一、网络发展史 1.1独立模式 独立模式:计算机之间相互独立; 1.2网络互连 随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。网络互连:将多台计算机连接在一起,完成数据共享。 数据共享本质是网络数据…

【Python】5分钟了解11个最佳的Python编译器和解释器

11个最佳Python编译器和解释器 1. Brython2. Pyjs3. WinPython4. Skulpt5. Shed Skin6. Active Python7. Transcrypt8. Nutika9. Jython10. CPython11. IronPython结论原文链接 Python是一门初学者的编程语言。它是一种高级语言&#xff0c;非常灵活、解释性和面向对象的语言。…

安防监控进入全景时代,萤石全景摄像机E4p体验评测

随着智能家居的普及&#xff0c;智能家居摄像机已经成为我们必备的智能家居设备之一。传统摄像机在捕捉画面时只能获得单一角度的画面&#xff0c;可能会错过关键信息。 针对这个问题&#xff0c;萤石最近推出的E4p全景摄像机&#xff0c;解决了用户在特定场景下需要更全面画面…

笔试数据结构选填题

目录 卡特兰数Catalan&#xff1a;出栈序列/二叉树数 树 二叉树 N01N2 哈夫曼树&#xff08;最优二叉树&#xff09;Huffman 度m的哈夫曼树只有度为0和m的结点&#xff1a;Nm(n-1)/(m-1) 平衡二叉树AVL Nh表示深度为h最少结点数&#xff0c;则N00&#xff0c;N11&#…

Linux下TCP网络服务器与客户端通信程序入门

文章目录 目标服务器与客户端通信流程TCP服务器代码TCP客户端代码 目标 实现客户端连接服务器&#xff0c;通过终端窗口发送信息给服务器端&#xff0c;服务器接收到信息后对信息数据进行回传&#xff0c;客户端读取回传信息并返回。 服务器与客户端通信流程 TCP服务器代码 …

AI 绘画Stable Diffusion 研究(五)sd文生图功能详解(下)

大家好&#xff0c;我是风雨无阻。 上一篇文章详细介绍了sd文生图的功能及使用注意事项&#xff0c;感兴趣的朋友可以前往查看&#xff1a;AI 绘画Stable Diffusion 研究&#xff08;四&#xff09;sd文生图功能详解&#xff08;上&#xff09; 。 那今天这篇文章&#xff0c;我…

【牛客网】二叉搜索树与双向链表

二叉搜索树与双向链表 题目描述算法分析编程代码 链接: 二叉搜索树与双向链表 题目描述 算法分析 编程代码 /* struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {} };*/ class Solution { public:…

解决Hadoop审计日志hdfs-audit.log过大的问题

【背景】 新搭建的Hadoop环境没怎么用&#xff0c;就一个环境天天空跑&#xff0c;结果今天运维告诉我说有一台服务器磁盘超过80%了&#xff0c;真是太奇怪了&#xff0c;平台上就跑了几个spark测试程序&#xff0c;哪来的数据呢&#xff1f; 【问题调查】 既然是磁盘写满了&…