一、tensor是啥:
tensor是PyTorch中重要的数据结构,可认为是一个高维数组。
Tensor
和Numpy中的ndarrays
类似,但Tensor
可以使用GPU进行加速计算
二、如何使用:
1. 在创立一个tensor数据类型的对象前,先明确一个事情:
用 torch.tensor 来建立 tensor 数据结构 和 用 torch.Tensor 来建立 tensor 数据结构 有什么区别:
torch.Tensor和torch.tensor有什么区别?_EdisonLeejt的博客-CSDN博客
简言之就是,推荐使用:torch.tensor()来建立tensor数据,
如果要建立空的tensor数据类型那么使用下述语句:
tensor_without_data = torch.empty([]) # tensor(0.)
【把人家博客的内容再自己复述一遍写在这thx】
2. 建立一个tensor数据类型的对象:
语句: torch.Tensor(*sizes) 含义是:随机创建指定形状的Tensor
【注意】使用该方法创建Tensor时,系统不会马上分配空间,只是会计算剩余的内存是否足够使用,使用到Tensor时才会分配。而其它操作都是在创建完Tensor之后马上进行空间分配。
我不知道上述这个tensor分配内存空间的这种方式的意义是啥?知道了的话我会补充在这
(1)朴素的建立tensor方式汇总:
import torch
tmp = torch.Tensor() # 建立一个空的tensor类型对象tmp
print(tmp) # tensor([])
tmp1 = torch.Tensor(2,3) # 此时tensor中数值随机
print(tmp1) # tensor([[0., 0., 0.], [0., 0., 0.]]) (这个例子就只是随机到了0值 ?)
tmp2 = torch.ones(2,3) # 建立一个维度为(2, 3) 的数值全为 1 的tensor
print(tmp2) # tensor([[1., 1., 1.], [1., 1., 1.]])
tmp3 = torch.zeros(2,3) # 建立一个维度为(2, 3) 的数值全为 0 的tensor
print(tmp3) # tensor([[0., 0., 0.], [0., 0., 0.]])
(2)类似list的range()那种 给定 步长 和 起始点 生成一维的tensor :
tmp = torch.arange(1, 10, 2)
print(tmp)
3. tensor数据类型的转换:
(1)tensor的数据类型有哪些:
(2)可以在tensor建立时就指定:
他们之间也可以相互转换:
没写完:然后把上述的代码换成torch.tensor()
[我是根据这个写的:]PyTorch学习笔记(二):Tensor操作 - 简书 (jianshu.com)
https://blog.csdn.net/qq_34769162/article/details/109260638
s
Pytorch张量(Tensor)基本介绍与使用_张_哈哈的博客-CSDN博客_pytorch生成随机矩阵
torch.cat() :tensor的append方法 - TR_Goldfish - 博客园 (cnblogs.com)
pytorch 如何拼接 迭代的 tensor_Who is abc的博客-CSDN博客
pytorch: 给tensor删除或者添加维度为1的维度(squeeze和unsqueeze)_Caesar6666的博客-CSDN博客_pytorch 删除维度
写的特别好:
torch.stack()的官方解释,详解以及例子_模糊包的博客-CSDN博客_torch.stack()
torch.cat()函数的官方解释,详解以及例子_模糊包的博客-CSDN博客_torch.cat