首页 > 其他分享 >张量的集合操作

张量的集合操作

时间:2024-07-26 16:09:23浏览次数:14  
标签:维度 reshape torch storage 张量 print 集合 操作 ptr

点击查看代码
# -*- coding: utf-8 -*-
# @Author  : 钱力
# @Time    : 2024/7/26 14:24
import torch

# 合并操作
A = torch.arange(0, 16).view(2, 8)
B = 10 * A
C = torch.cat([A, B], dim=1)  # 将矩阵根据特定维度进行缝合
print(C)
D = torch.stack([A, B], dim=1)  # 通过增加维度来融合矩阵,这种融合方式一般是时间序列采用
print(D)

# 切分操作
print('=====================================================')
a = torch.arange(10).reshape(5, 2)
print(torch.chunk(a, 2))  # 根据索引进行切分
a = torch.arange(10).reshape(5, 2)
print(torch.split(a, 2))  # 根据长度进行切分
a = torch.arange(10).reshape(5, 2)
print(torch.split(a, [3, 1, 1]))  # 根据长度进行切分

# 现有张量沿着值为1的维度扩展到新的维度n,输出重复n次
a = torch.tensor([[[1, 2, 3], [4, 5, 6]]])
print(a.size())
print(a)
a = a.expand(2, 2, 3)  # 仅限于size=1的维度
print(a.size())
print(a)

# 改变张量的维度
a = torch.arange(9).reshape(3, 3)
print('a:', a)
b = a.permute(1, 0)  # 维度转换,但不改变索引方式
print('b:', b)
print(b.stride())  # 张量的索引方式
print(b.is_contiguous())  # 是否连续,视图索引和内存索引是否一致
c = b.contiguous()  # 强制转换为一致
print(c.stride())
print(c.is_contiguous())
# a 和 b共享内存,但c不是
print('ptr of storage of a', a.untyped_storage().data_ptr())
print('ptr of storage of b', b.untyped_storage().data_ptr())
print('ptr of storage of c', c.untyped_storage().data_ptr())

# reshape和view区别
a = torch.arange(9).reshape(3, 3)
b = a.permute(1, 0)
print(b.reshape(9))
# print(b.view(9))  # 如果视图索引和内存索引不一致,就会报错
print(b.contiguous().view(9))

标签:维度,reshape,torch,storage,张量,print,集合,操作,ptr
From: https://www.cnblogs.com/qian-li-xju/p/18325287

相关文章

  • Appium各种定位及操作
    前提设置:fromappiumimportwebdriver#模拟器/真机已经被电脑识别到(adbdevices)#字典#1、设置终端参数项desired_caps={"platformName":"Android","platformVersion":"6.1.1","appPackage":"com.ss.android.ar......
  • 软考-软件设计师(2)-操作系统概述:多级索引、PV操作、段页式存储、磁盘管理、进程管理
    场景软考-软件设计师-操作系统概述模块高频考点整理。以下为高频考点、知识点汇总,不代表该模块所有知识点覆盖,请以官方教程提纲为准。注:博客:霸道流氓气质-CSDN博客实现知识点文件系统多级索引求文件系统多级索引的最大长度二级索引=一级索引*一级索引*大小某文件系统......
  • 自定义Linux操作日志配置
    方案一:使用acct工具记录步骤1   通过设置日志文件可以对每个用户的每一条命令进行纪录,这一功能默认是不开放的,为了打开它,我们要确认已经安装了acct工具:#Debian、Ubuntu、SUSE下叫acctapt-getinstallacctzypperinstallacct#CentOS、RHEL、Fedora上叫psacctyu......
  • tensor对张量和矩阵的操作
    点击查看代码#-*-coding:utf-8-*-#@Author:钱力#@Time:2024/7/2610:36importtorcha=torch.arange(5)b=a[2:]#截取a的部分值print('a',a)print('b',b)#打印存储地址#可以发现他们共用存储区#b的索引比a偏移了2位print(a.untyped_storage......
  • C语言:操作符详解
    文章目录一、操作符(一)操作符的类型1.算术操作符2.移位操作符(1)左移操作符:(1)右移操作符:3.位操作符(二进制)(1)不使用第三个变量,将a和b的值交换。(2)统计整形中二进制中含1的数量(3)编写代码将13二进制序列的第5位修改为1,然后再改回04.赋值操作符5.单目操作符6.关系操作符7.逻辑......
  • hbase数据库连接池 未设置最大链接数导致数据库操作异常频发
    hbase数据库连接池未设置最大链接数导致数据库操作异常频发简介业务中将主要数据存储定位hbase存储,近期突然发现数据比对不上,发现实在创建环节发生异常导致逻辑执行终端(hbase存储或查询出现异常)。表现:供应商提供参考:供应商提供的解决方案:    关闭超过90s未使用......
  • python mysql操作
    pipinstallmysql-connector-pythonimportmysql.connector#配置数据库连接参数config={'user':'your_username','password':'your_password','host':'your_host','database'......
  • 山东大学数据结构与算法实验10堆及其应用(堆的操作/霍夫曼编码)
    A : 堆的操作题目描述创建 最小堆类。最小堆的存储结构使用 数组。提供操作:插入、删除、初始化。题目第一个操作是建堆操作,接下来是对堆的插入和删除操作,插入和删除都在建好的堆上操作。输入输出格式输入第一行一个数n(n<=5000),代表堆的大小。第二行n个数,代表堆的......
  • 【Python自动化办公】用Pandas库自动化操作Excel表格,从读取、写入到数据处理和分析
    文末免费赠送精品编程资料~~前言Python的第三方Pandas库是数据处理和分析中的利器,其强大的功能可以帮助我们轻松地对Excel表格进行自动化操作。接下来,我们将介绍九个用Pandas库操作Excel的编程例子,并且每个例子都会涉及不同的知识点,确保全面掌握这个主题。1.读取和写入E......
  • JavaScript操作BOM与DOM
    BOM操作window对象window对象是整个BOM的核心,表示浏览器打开的窗口。属性属性                              描述history     用户访问过的URL信息(历史记录)location        当前URL的信息。screen   ......