IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> torch学习笔记(2)——tensor常见11种操作方式 -> 正文阅读

[人工智能]torch学习笔记(2)——tensor常见11种操作方式

import torch
import numpy as np

tensor = torch.ones((3, 3))
print(tensor)

# tensor拼接
# cat()将tensor按照维度dim进行拼接。tensors=张量序列。dim=要拼接的维度
t_cat_0 = torch.cat([tensor, tensor], dim=0)  # tensor在第0维度自拼接,第0维度相当于在(x,y)的x处拼接,因此输出为(6,3)
print(t_cat_0, t_cat_0.shape)
t_cat_1 = torch.cat([tensor, tensor], dim=1)  # tensor在第1维度自拼接,第1维度相当于在(x,y)的y处拼接,因此输出为(3,6)
print(t_cat_1, t_cat_1.shape)
# stack()在创建的维度dim上进行拼接。tensors=张量序列。dim=要拼接的维度
t_stack_2 = torch.stack([tensor, tensor, tensor], dim=2)  # tensor在创建的第2维度自拼接,如果选定的为已存在的维度,则现有维度向+1方向后延
print(t_stack_2, t_stack_2.shape)

# tensor切分
# chunk()将tensor在指定dim上平均切分 input = tensor ; chunks = 切割份数 ; dim = 待切割维度,return tensor_list
# war:如果不能整除,最后一份tensor小于其他tensor
t_chunk_1_2 = torch.chunk(tensor, dim=1, chunks=2)  # 对二维3*3tensor第一维度进行切分,切2
for i, t in enumerate(t_chunk_1_2):
    print(i, t, t.shape)
# split()将tensor按维度dim切分,tensor待切割张量,split_szie_or_sections:int表示每份长度,list表示按list切分。dim = 待切割维度,return tensor_list
t_split_1_2 = torch.split(tensor, 2, dim=1)  # 对二维3*3tensor第一维度进行切分,长度为2,此时split_szie_or_sections为整型
for i, t in enumerate(t_split_1_2):
    print(i, t, t.shape)
t_split_1_2 = torch.split(tensor, [1, 2],
                          dim=1)  # 对二维3*3tensor第一维度进行切分,长度为2,此时split_szie_or_sections为列表,list_sum = tensor_dim
for i, t in enumerate(t_split_1_2):
    print(i, t, t.shape)

# tensor索引
# index_select()在维度dim上,按index索引数据,return:index对饮数据拼接的tensor,input=要索引tensor,dim=要索引维度,index=要索引序列号
tensor = torch.randint(0, 6, size=(3, 3))
t_select = torch.select(tensor, dim=0, index=1)
print(tensor, '\n', t_select)
# masked_select()按mask中的True进行索引,return:一维符合条件的位置tensor,input=要索引的tensor,mask=与input形状相同的bool_tensor #常用于筛选数据
mask = tensor.ge(5)  # ge表示大于等于的bool,le表示小于等于,lt表示小于
t_maks = torch.masked_select(tensor, mask)
print(t_maks)

# tensor变换
# reshape()变换tensor形状  input表示输入tensor  shape表示tensor形状
# 注意:当tensor在内存中连续时,新的tensor与input共享id
t_reshape = torch.reshape(tensor, shape=(9, 1))
print(t_reshape)
# transpose()交换tensor的两个维度 input:要交换的tensor  dim0,dim1
t_transpose = torch.transpose(tensor, dim0=0, dim1=1)
print(t_transpose)
# t()二维tensor转置,等价于transpose(input,0,1)
t_t = torch.t(tensor)
print(t_t)
# squeeze()压缩长度为1的维度 dim =None表示移除所有长度为1的轴,如果指定dim,则当且仅当该轴长度为1时,可以被移除
tensor = torch.rand((1, 2, 3, 1))
print(tensor.shape)
t_squeeze = torch.squeeze(tensor)
print(t_squeeze.shape)
# unsqueeze()依据dim扩展维度,dim = 扩展的维度
t_unsqueeze = torch.unsqueeze(tensor,dim=1)
print(tensor.shape)
print(t_unsqueeze.shape)
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 01:58:30  更:2022-01-14 01:59:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 22:25:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码