pytorch基础一:张量

简单记录以便查阅

张量

一、创建张量

x = torch.empty(5,3)                       # 创建未初始化矩阵张量
x = torch.rand(5,3)                        # 创建初始化随机矩阵张量
x = torch.zeros(5,3,dtype=torch.long)      # 创建0填充矩阵张量
x = torch.tensor([5.5,3])                  # 使用现有数据初始化张量
x = x.new_ones(5,3, dtype=torch.double)    # 使用new_*来创建对象
x = torch.randn_like(x, dtype=torch.float) # 根据现有张量创建张量torch.arange(start, end, step=1, dtype=torch.int32)
torch.full(size, fill_value)               # 张量填充
torch.normal(mean, std, out=None)          # 正态分布

二、张量尺寸

x.size()
x.shape

三、张量维度

x = torch.squeeze(x)         # 去掉大小为1的维度
x = torch.unsqueeze(x,3)     # 在第三维增加1个维度
x = torch.transpose(x, 1, 2) # 交换维度1和维度2
x = torch.permute(1,2,3,0)   # 交换多个维度/维度重组

四、张量操作

x + y   /  torch.add(x, y)   /  y.add_(x)   # 四则运算
x[:, 1]                                     # 切片操作
x = x.view(-1, 8)                           # 改变维度(-1维度自动推断)
x = x.reshape(8,-1)                         # 改变维度
x.item()                                    # 取张量的数值(前提:张量只有一个元素)
torch.cat((x,y), dim=0)                     # 张量拼接(在原有的某一维度上进行连接)
torch.stack((x,y), dim=0)                   # 张量拼接(创建一个新的维度,将原有维度在这个维度上进行顺序排列)[详细](https://blog.csdn.net/TH_NUM/article/details/83088915)
torch.chunk(a, chunk_num, dim=0)            # 张量拆分(在指定维度上将a变成chunk_num个大小相等的chunk,返回一个tuple。如果最后一个不够chunk_num,就返回剩下的)
torch.split(a, chunk_size, dim=0)           # 张量拆分(同上)

五、张量类型转换

1.Torch Tensor与NumPy数组共享底层内存地址
b = a.numpy()             # tensor 转 numpy
b = torch.from_numpy(a)   # numpy 转 tensorb = a.long()       # torch.int64
c = a.half()       # torch.float16
d = a.int()        # torch.int32
e = a.double()     # torch.float64
f = a.float()      # torch.float32
g = a.char()       # torch.int8
h = a.byte()       # torch.uint8
j = a.short()      # torch.int16
c = a.type_as(c)   # 转化 a 的数据格式与 c 相同

六、CUDA 张量

# is_available 函数判断是否有cuda可以使用
# ``torch.device``将张量移动到指定的设备中
if torch.cuda.is_available():device = torch.device("cuda")          # a CUDA 设备对象y = torch.ones_like(x, device=device)  # 直接从GPU创建张量x = x.to(device)                       # 或者直接使用``.to("cuda")``将张量移动到cuda中z = x + yprint(z)print(z.to("cpu", torch.double))       # ``.to`` 也会对变量的类型做更改

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

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

相关文章

消息中间件系列(九):详解RocketMQ的架构设计、关键特性、与应用场景

内容大纲: RocketMQ的简介与演进 RocketMQ的架构设计 RocketMQ的关键特性 RocketMQ的应用场景 RocketMQ的简介 RocketMQ一个纯java、分布式、队列模型的开源消息中间件,前身是MetaQ,是阿里研发的一个队列模型的消息中间件,后开…

LeetCode 151. 翻转字符串里的单词(栈)

文章目录1. 题目信息2. 解题1. 题目信息 给定一个字符串,逐个翻转字符串中的每个单词。 示例 1:输入: "the sky is blue" 输出: "blue is sky the" 示例 2:输入: " hello world! " 输出: "world! hel…

推荐系统架构与算法流程详解

文 | yijiapan腾讯 WXG 数据分析师推荐算法的理解如果说互联网的目标就是连接一切,那么推荐系统的作用就是建立更加有效率的连接,推荐系统可以更有效率的连接用户与内容和服务,节约了大量的时间和成本。如果把推荐系统简单拆开来看&#xff0…

Python 文件操作中的读写模式:open(path, ‘-模式-‘,encoding=‘UTF-8‘)+python读写文件txt +文本数据预处理

python读写txt文件 文件的打开的两种方式f open("data.txt","r") #设置文件对象 f.close() #关闭文件#为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代 with open(data.txt,"r") as f: #设置文件对象…

Pytorch 中 matmul 广播

Pytorch 中 matmul 广播方式 一、两个 1 维,向量内积 a torch.ones(3) b torch.ones(3) print(torch.matmul(a,b)) # tensor(3.) 二、两个 2 维,矩阵相乘 a torch.ones(3,4) b torch.ones(4,3) print(torch.matmul(a,b)) # tensor([[4., 4., 4…

论文浅尝 | 将字面含义嵌入知识图谱表示学习

论文笔记整理:吴桐桐,东南大学博士生,研究方向为知识图谱,自然语言处理。链接:https://arxiv.org/pdf/1802.00934.pdf本文主要关注知识图谱中的链接预测问题,在既有的知识图谱表示学习模型的基础上提出了一…

优知学院创始人陈睿:怎样做好一个创业公司CTO?

CTO 是企业内技术最高负责人,对企业的发展起到至关重要的作用。但随着公司的不断发展,CTO 的工作重心也会不断变化。只有在正确的阶段做正确的事,才能更好地为公司做出贡献。 本文作者:陈睿 优知学院创始人,10年产品技…

2020年深度学习调参技巧合集

文 | 山竹小果源 | NewBeeNLP编 | 夕小瑶的卖萌屋重点说明:本文主要为整理总结,大部分参考文末资料,感谢分享。寻找合适的学习率学习率是一个非常非常重要的超参数,这个参数呢,面对不同规模、不同batch-size、不同优化…

LeetCode 226. 翻转二叉树(DFS BFS)

文章目录1. 题目信息2. 解题2.1 DFS2.2 BFS1. 题目信息 翻转一棵二叉树。 示例:输入:4/ \2 7/ \ / \ 1 3 6 9输出:4/ \7 2/ \ / \ 9 6 3 1来源:力扣(LeetCode) 链接:…

论文浅尝 | GraphIE:基于图的信息抽取框架

笔记整理:吕欣泽,南京大学计算机科学与技术系,硕士研究生。论文连接:https://arxiv.org/pdf/1810.13083.pdf发表会议:NAACL 2019摘要大多数现代信息提取(IE)系统都是作为顺序标记器实现的&#…

lambda函数+map函数的结合使用 list(map(lambda x: list(x)[0], X))

Q1:什么是lambda函数?怎么定义?有什么作用? 知识点:lambda 解析:lambda叫做匿名函数,是一种不需要提前对函数进行定义再使用的情况下就可以使用的函数 1 定义规则:冒号的左边是原函数…

好产品,懂人性

好的产品无一例外,懂人性 张小龙曾经说过,产品经理要懂得抓住用户的贪、嗔、痴,培养用户对产品的粘性,就是要让用户对你的产品产生贪、嗔、痴。 贪是贪婪,嗔是嫉妒,痴是执着。 人类的贪婪、嫉妒和执著培…

Pytorch 实现 MLP

torch.nn是专门为神经网络设计的模块化接口。nn构建于 Autograd之上,可用来定义和运行神经网络。 nn.functional,这个包中包含了神经网络中使用的一些常用函数,这些函数的特点是,不具有可学习的参数(如ReLU,pool&#…

LeetCode 104. 二叉树的最大深度

文章目录1. 题目信息2. 解题2.1 递归法2.2 按层遍历1. 题目信息 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7]&…

谷歌重磅:可以优化自己的优化器!手动调参或将成为历史!?

文 | 小轶编 | 夕小瑶背景Google Brain团队发布的一篇最新论文在外网引发热议,或将成为Deep Learning发展历程上里程碑式的工作。它所讨论的,是所有AI行业者都要面对的——Deep Learning中的优化问题。也就是,如何更好地训练一个模型。深度模…

最全目标检测相关资料整理 (目标检测+数据增强+卷价神经网络+类别不均衡...)

1 小目标检测:综述:综述论文Augmentation for small object detection深度学习笔记(十)Augmentation for small object detection(翻译) 吴建明wujianning:小目标检测的增强算法 机器之心&#…

论文浅尝 | 基于未知谓词与实体类型知识图谱的 Zero-Shot 问题生成

论文笔记整理:谭亦鸣,东南大学博士生,研究方向为跨语言知识图谱问答。来源:NAACL 2018链接:https://www.aclweb.org/anthology/N18-1020问题背景与动机问题生成的目标是将知识图谱三元组作为输入,生成自然语…

阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别

内容大纲: 1.介绍Restful、SOAP、RPC、SOA以及微服务 2.重点谈谈SOA与微服务的区别 3.以及为什么要使用微服务架构 什么是Restful Restful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的…

RuntimeError: Expected object of device type cuda but got device type cpu for argument #2 'target'

RuntimeError: Expected object of device type cuda but got device type cpu for argument #2 ‘target’ in call to _thnn_binary_cross_entropy_forward 出错误背景:Pytorch 中想使用 CUDA 对程序计算进行加速 错误的意思:object 的 device 类型期…

微服务系列:Dubbo与SpringCloud的Ribbon、Hystrix、Feign的优劣势比较

在微服务架构中,分布式通信、分布式事务、分布式锁等问题是亟待解决的几个重要问题。 Spring Cloud是一套完整的微服务解决方案,基于 Spring Boot 框架。确切的说,Spring Cloud是一个大容器(而不是一个框架)&#xff…