首页 > 其他分享 >张量维度改变总结

张量维度改变总结

时间:2024-03-12 18:34:12浏览次数:20  
标签:总结 unsqueeze randn torch 张量 形状 维度

文章目录


一、view() 或 reshape()

  view() 或 reshape(): 这两个函数可以用于改变张量的形状,但保持元素总数不变。它们可以接受一个新的形状作为参数,并返回一个新的张量。例如:

import torch

x = torch.randn(2, 3, 4)  # 创建一个形状为 [2, 3, 4] 的张量

x_viewed = x.view(2, 12)  # 改变形状为 [2, 12]
x_reshaped = x.reshape(6, 4)  # 改变形状为 [6, 4]

二、unsqueeze()

  unsqueeze(): 这个函数可以在指定位置插入一个新的维度。它接受一个整数作为参数,表示要插入的位置。例如:

import torch

x = torch.randn(3, 4)  # 创建一个形状为 [3, 4] 的张量

x.unsqueeze(0)  # 在第 0 个位置插入一个新的维度,形状变为 [1, 3, 4]
x.unsqueeze(1)  # 在第 1 个位置插入一个新的维度,形状变为 [3, 1, 4]
import torch

x = torch.randn(2, 3)  # 创建一个形状为 [2, 3] 的张量

x_unsqueezed = torch.unsqueeze(x, dim=0)  # 在第 0 个位置插入一个新的维度,形状变为 [1, 2, 3]

三、squeeze()

  squeeze(): 这个函数可以删除维度为 1 的维度。它会返回一个新的张量,其中已删除了所有维度为 1 的维度。例如:

import torch

x = torch.randn(1, 3, 1, 4)  # 创建一个形状为 [1, 3, 1, 4] 的张量

x.squeeze()  # 删除所有维度为 1 的维度,形状变为 [3, 4]

四、transpose()

  transpose(): 这个函数可以交换张量的维度顺序。它接受两个整数作为参数,表示要交换的维度的位置。例如:

import torch

x = torch.randn(2, 3)  # 创建一个形状为 [2, 3] 的张量

x.transpose(0, 1)  # 交换维度 0 和维度 1 的位置,形状变为 [3, 2]

五、torch.expand_dims

  torch.expand_dims(input, dim): 这个函数接受一个张量 input 和一个整数 dim,表示要在 dim 位置插入一个新的维度。它会返回一个新的张量,其中插入了一个维度。例如:

import torch

x = torch.randn(2, 3)  # 创建一个形状为 [2, 3] 的张量

x_expanded = torch.expand_dims(x, dim=1)  # 在第 1 个位置插入一个新的维度,形状变为 [2, 1, 3]

标签:总结,unsqueeze,randn,torch,张量,形状,维度
From: https://blog.csdn.net/qq_44815135/article/details/136659442

相关文章

  • HashSet保证元素唯一性原理的探索、总结
    HashSet存储自定义类型的元素发现没有对相同的对象进行去重,没有保证元素的唯一性HashSet保证元素唯一性原理的探索对自定义类型的元素没有去重成功,考虑没有重写equals方法,去重时候,使用的是地址值来比较多个元素是否重复,考虑重写equals方法重写equals方法之后,发现没有去重成功,在eq......
  • 输入输出问题总结
    1.nextInt()与nextLine()参考文章:几句话直观理解java中Scanner类的next()、nextLine()、nextInt()nextInt()和nextLine()连用 (1)Scanner是一个扫描器,对于键盘输入或者文件中的数据,先存到缓存区等待读取,它判断读取结束的标示是:空格,回车,tab等;(2)next()和nextInt()方法读取到任......
  • MindSpore自定义算子中的张量维度问题
    技术背景在前面的几篇博客中,我们介绍了MindSpore框架下使用CUDA来定义本地算子的基本方法,以及配合反向传播函数的使用,这里主要探讨一下MindSpore框架对于CUDA本地算子的输入输出的规范化形式。测试思路MindSpore使用的CUDA算子规范化接口形式为:extern"C"intCustomOps(intn......
  • 省选联考2024回顾+总结
    回顾由于之前重庆联考考得很差,赛前几天很紧张。Day1比赛开始,看第一题,列出一个带绝对值的神奇式子,发现很难处理。冷静下来后发现可以直接拆绝对值,之后简单讨论一下就行了。过了大样例就没管了。此时时间过去了1.5个小时。接着看第二题,感觉很难,冥思苦想后想出了40分,之后再无进展......
  • 英语 时态 大总结
    最近在准备英语口语,发现了本人作为伟大的Chinese说英语不喜欢带时态的问题,于是总结一下英语中的时和态。说不同语言的人在思维方式和思考方有着差异,而这些差异主要体现在对事物的概念化方式和信息分类上。比如说英语的人在对动作和事件的思考中,需要对时间信息进行分类、我们常常......
  • ipdb常用命令总结
    在Python中,ipdb是一个基于pdb的增强型交互式调试器,它结合了IPython的强大功能。以下是ipdb常用的调试命令:启动调试会话:在代码中插入importipdb;ipdb.set_trace()来启动调试器。执行控制命令:n(ext)或Enter:执行下一行代码。s(tep):进入函数或方法内部。c(o......
  • 考试总结
    额,集训考试模板忘了,T1就13分,考试的时候模板调了好久,最后还是有一个地方错了点击查看代码intQuery(intrt,intl,intr)//查询区间和{if(l<=tree[rt].l&&tree[rt].r<=r) returntree[rt].max;intmid=(tree[rt].l+tree[rt].r)>>1;if(r<=......
  • Ingress 注释常用功能总结
    ingress注释常用功能总结--annotations-prefix #特定于NGINX控制器的入口注释的前缀。(默认“nginx.ingress.kubernetes.io”)1、域名重定向这个配置会把www.kailinhr.com跳转到www.zhuoliehr.com。#主要配置nginx.ingress/permanent-redirect-code:"301"nginx.ingres......
  • STM32 LwIP学习过程问题总结(一):LwIP ping不通,抓包发现ICMP校验和为0x0000
    一、问题今天在将之前的STM32LwIP1.4.1版本程序移植到2.1.2版本上时,发现ping不同,但是开发板有ICMP回复包,黄颜色警告checksum为0x0000。说明LwIP移植应该是没问题,数据处理这一块出错了。 在网上找了下相关的错误,ST论坛有个问题和我这个一样。HardwareIPv4checksumonanST......
  • EOL 总结:CMakeLists 与 shell
    一、CMakeLists1、AUX_SOURCE_DIRECTORY定义:aux_source_directory查找在某个路径下的所有源文件###Demo1#查找当前目录下的所有源文件#并将名称保存到SRC_LIST变量aux_source_directory(.SRC_LIST)add_executable(main${SRC_LIST})###Demo2AUX_SOURCE_DIRECT......