Torch包学习

news2024/11/15 19:25:28

创建

  • torch.from_numpy(ndarray) → Tensor:将numpy.ndarray 转换为pytorch的 Tensor。两者共享内存。返回的张量不能改变大小
  • orch.linspace(start, end, steps=100, out=None) → Tensor:生成一个 从start 到 end 的tensor。tensor的长度为steps。包括start和end
  • torch.arange(start, end, step=1, out=None) → Tensor:不包含end
  • torch.ones(*sizes, out=None) → Tensor
  • torch.zeros(*sizes, out=None) → Tensor
  • torch.rand(*sizes, out=None) → Tensor:[0,1)的均匀分布的一组随机数
  • torch.randn(*sizes, out=None) → Tensor:标准正泰分布(均值为0,方差为 1)的一组随机数。
  • torch.randperm(n, out=None) → LongTensor:从0 到n -1 的随机整数排列。

(从0到n-1的随机整数排列)

  • torch.normal(means, std, out=None):均值means是一个张量,包含每个输出元素相关的正态分布的均值。std是一个张量,包含每个输出元素相关的正态分布的标准差。均值和标准差的形状不须匹配,但每个张量的元素个数须相同
  • torch.normal(mean=0.0, std, out=None):与上面函数类似,所有抽取的样本共享均值
  • torch.normal(means, std=1.0, out=None):与上面函数类似,所有抽取的样本共享标准差

连接、切割、去\加1维度、堆叠、转置

  • torch.cat(inputs, dimension=0) → Tensor:在给定维度上对输入的张量序列seq 进行连接操作。
  • torch.stack(sequence, dim=0):增加新的维度进行堆叠。 dim (int) – 插入的维度。
  • torch.split(tensor, split_size, dim=0):按指定维度将输入张量进行分割。split_size (int) – 单个分块的形状大小,最后一个块可能小于前面的块。
  • torch.squeeze(input, dim=None, out=None): 将输入张量形状中的1 去除并返回。返回张量与输入张量共享内存
  • torch.unsqueeze(input, dim, out=None): 对输入指定的位置插入维度1.
  • torch.transpose(input, dim0, dim1, out=None) → Tensor:

(交换维度dim0和dim1。只能交换两个维度。)

  • permute(input, dims) → Tensor:dims可以是tuple,可以交换多个维度

(交换多个维度)

随机数种子

  • torch.manual_seed(seed): 设定生成随机数的种子,保证每次随机初始化时都一样.
  • torch.cuda.manual_seed(int.seed): 为当前GPU设置随机种子.
  • torch.cuda.manual_seed_all(int.seed): 为所有GPU设置随机种子.

保存和加载

  • torch.save(obj, f, pickle_module, pickle_protocol):只需关注前两个参数。将obj保存到f路径
  • torch.load(f, map_location=None, pickle_module): 加载torch.save()保存的对象,例如:map_location=torch.device(‘gpu’)

数学操作

逐像素操作

  • torch.ceil(input, out=None) → Tensor:对输入张量向上取整
  • torch.floor(input, out=None) → Tensor:返回张量每个元素的floor
  • torch.round(input, out=None) → Tensor:返回一个新张量,将输入input张量每个元素舍入到最近的整数

归并操作

  • torch.numel(input)->int: 返回张量元素的个数.
  • torch.sum(input, dim, out=None) → Tensor:返回输入张量给定维度上每行的和。 输出形状与输入相同,除了给定维度上为1.
  • torch.mean(input, dim, out=None) → Tensor:返回输入张量给定维度dim上每行的均值。输出形状与输入相同,除了给定维度上为1。
  • orch.norm(input, p, dim, out=None) → Tensor:返回输入张量给定维dim 上每行的p 范数。 输出形状与输入相同,除了给定维度上为1.
  • torch.std(input, dim, out=None) → Tensor:返回输入张量给定维度上每行的标准差。 输出形状与输入相同,除了给定维度上为1.
  • torch.var(input, dim, out=None) → Tensor:返回输入张量给定维度上每行的方差。 输出形状与输入相同,除了给定维度上为1.
  • torch.sort(input, dim=None, descending=False, out=None) -> (Tensor, LongTensor)

对输入张量input沿着指定维度升序排序,如果不给定dim,则默认为输入的最后一维,如果指定参数descending = True,则按降序排序,

返回元组 (sorted_tensor, sorted_indices)

sorted_indices为原始输入的下标.

Tensor数据类型

在这里插入图片描述

类型转换

  • data.numpy():Tensor –> Numpy.ndarray
  • torch.from_numpy(data):Numpy.ndarray –> Tensor

CPU和GPU之间的转换

  • data.cuda():cpu –> gpu
  • data.cpu():gpu –> cpu

Tensor基本数据类型转换

  • type(dtype=None, non_blocking=False, **kwargs):指定类型改变。例如data = data.type(torch.float32)
  • type_as(tensor):按照给定的tensor的类型转换类型。

总结

慢慢的会自己用到啥,调用什么函数,会将各种的函数都给其调用好都行啦的理由与打算.
慢慢的将各种函数啥的都研究一下,全部都研究彻底,研究透彻.都行啦的理由与打算.

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

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

相关文章

JVM【字节码与类的加载篇】

Class文件结构 字节码文件的跨平台性(了解) 1.Java语言:跨平台的语言 当Java源代码成功编译为字节码后,如果想在不同的平台上运行,则无须再次编译这个优势不再那么吸引人了。Python PHP perl ruby lisp等有强大的解释器跨平台似乎已经快成…

二叉树的遍历大全(前序,中序,后序)+(递归,迭代,Morris方法)

文章目录二叉树的前序遍历递归迭代Morris遍历二叉树的中序遍历递归迭代Morris遍历二叉树的后序遍历递归迭代Morris遍历二叉树的前序遍历 力扣传送门: https://leetcode.cn/problems/binary-tree-preorder-traversal/description/ 递归 递归的解法非常简单&#x…

快过年了,Python实现12306查票以及自动购票....

嗨害大家好鸭!我是小熊猫~ 明天就是2023年啦~ 还有谁像我小熊猫一样没有回家的? 这次康康能不能12306抢票回家!!! Python实现12306查票以及自动购票 [代码来源]: 青灯教育-自游老师 [环境使用]: Python 3.8Pycha…

构造函数和原型

1、概述 在典型的 OOP 的语言中(如 Java),都存在类的概念,类就是对象的模板,对象就是类的实例,但在 ES6之前, JS 中并没用引入类的概念。ES6, 全称 ECMAScript 6.0 ,201…

计算机组成原理实验——三、存储器实验

一、实验目的 1.掌握存储器的工作原理和接口。 2.掌握存储器的实现方法和初始化方法。 3.掌握RISC-V中存储器的存取方式。 二、实验内容 1.利用vivado IP核创建6432的ROM,并在 系数文件中设置数据为123489ab; 2.利用vivado IP核创建6432的RAM&#xf…

猿如意---初学者的一盏明灯---程序员的宝藏app

🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​ 📣系列专栏:我的CSDN活动之旅 💬总结:希望你看完…

Rabbit客户端操作不同交换机[包含延迟类型]

文章目录一:direct-直投交换机0.0: 说明 --- 只有队列和交换机绑定,且routing key路由键一致才会收到消息1.1: 先后创建两个队列1.2: 队列绑定Direct交换机,和routing key1.3: 未指明路由键:1.4: 指明路由键1.5: 两个队列绑定一个…

Python中基本输入和输出

文章目录前言一、使用input()函数输入二、使用print()函数输出前言 从我们接触第一个Python程序开始,就一直在使用 print() 函数向屏幕上输出一些字符,如下图代码所示: print() 函数就是Python的基本输出函数。那既然有输出,肯定…

[牛客复盘] 牛客2022跨年场 20221212

[牛客复盘] 牛客2022跨年场 20221212 一、本周周赛总结二、 A 猜群名1. 题目描述2. 思路分析3. 代码实现三、B 分赃1. 题目描述2. 思路分析3. 代码实现四、C 翻卡牌1. 题目描述2. 思路分析3. 代码实现五、D ygg的分数运算1. 题目描述2. 思路分析3. 代码实现六、E 摇色子1. 题目…

多线程生产者消费者——分别使用条件变量、信号量实现

生产者消费者 概念 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不…

超好用!win10安装Eiseg标注软件及使用(CPU版本)

写在前面的话 众所周知,标注分割掩膜的软件一般使用labelme,但是一个一个点太麻烦了,工作量太大,,之前,我的思路就是先标少量的数据然后训练个初始模型,再用初始模型对剩下的图像预测掩膜&…

【闲聊杂谈】深入理解Spring Security设计原理

1、什么是Spring Security 顾名思义,Security的意思是安全,本质上就是一个很纯粹的权限管理框架,提供认证和授权两大核心功能。在目前主流的Spring生态中的项目,说到安全框架,基本上SpringSecurity是首选。当然&#…

代码随想录算法训练营第四天|24. 两两交换链表中的节点 、19.删除链表的倒数第N个节点、160.链表相交、142.环形链表II

24. 两两交换链表中的节点 力扣题目链接(opens new window) 解析: 基础题,主要是要把握边界条件:由题可得,交换的节点两两一组,每交换完成一对,问题规模减2,也就是只剩一个或不剩节点时交换便结…

ArcGIS基础实验操作100例--实验28地形图配准

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验28 地形图配准 目录 一、实验背景 二、实验数据 三、实验步骤 (1&#x…

python中类的使用详解

目录 一.类的定义和使用方法 成员变量和成员方法 成员方法的定义语法和self关键字 小结 二.类和对象 小结 三.属性(成员变量)的赋值 构造方法:_ _init_ _() 小结 一.类的定义和使用方法 可以使用类去封装属性,并基于类创建…

一文弄懂Pytorch的DataLoader,Dataset,Sampler之间的关系

很多文章都是从DatasetDatasetDataset等对象自下网上进行介绍的,但是对于初学者而言,其实这并不好理解,因为有时候,会不自觉的陷入到一些细枝末节中去,而不能把握重点,所以本文将自上而下的对PytorchPytorc…

HCIP第四天

HCIP实验配置一,实验要求二,172.16.0.0/16地址的划分三,搭建拓扑图四,配置IP地址和环回地址五,宣告并配置缺省路由下放,使用NAT技术六,R5中心站点配置隧道和静态IP七,R6分支站点的配…

canvas在小程序里写小游戏

最近接了个小需求需要写个小游戏,由简单的帧动画加上碰撞相关的处理,组成。具体页面信息如下图 具体的游戏步骤,是通过长按按钮蓄力,松开时卡通人物跳起,卡通人物跳起碰撞到上面的元宝等元素的得分,这里我们…

笔试题之编写SQL分析门店销售情况

销售员、客户、产品 文章目录前言一、SQL题目二、解答方法(一)建表插入测试数据(二)第一题解答(三)第二题解答(四)第三题解答总结前言 分享本人遇到的笔试真题与解法,并…

MATLAB算法实战应用案例精讲-【人工智能】语义分割(附实战应用案例及代码)

前言 语义分割是一种典型的计算机视觉问题,其涉及将一些原始数据(例如,平面图像)作为输入并将它们转换为具有突出显示的感兴趣区域的掩模。许多人使用术语全像素语义分割(full-pixel semantic segmentation),其中图像中的每个像素根据其所属的感兴趣对象被分配类别ID。…