Pytorch深度学习—Tensor讲解
目录1.Tensor的类型2.Tensor的创建方式(初始化)3.Tensor的定义过程代码演示4.Tensor的属性5.稀疏的张量5.1 简介5.2 代码实现1.Tensor的类型2.Tensor的创建方式(初始化)3.Tensor的定义过程代码演示import torch# 直接定义并赋值Tensora = torch.Tensor([[1, 2], [3, 4]])print(a)print
·
目录
1.Tensor的类型

2.Tensor的创建方式(初始化)

3.Tensor的定义过程代码演示
import torch
# 直接定义并赋值Tensor
a = torch.Tensor([[1, 2], [3, 4]])
print(a)
print(type(a))
# 只定义Tensor的shape,系统将自动随机赋初值
a = torch.Tensor(2, 3)
print(a)
print(type(a))
# 全是1的Tensor
a = torch.ones(2, 3)
print(a)
print(type(a))
# 对角线是1的Tensor
a = torch.eye(3, 3)
print(a)
print(type(a))
# 定义一个shape与参数相同但是全是0的Tensor
b = torch.zeros_like(a)
print(b)
print(type(b))
# 定义一个shape与参数相同但是全是1的Tensor
b = torch.ones_like(b)
print(b)
print(type(b))
# 全是0的Tensor
a = torch.zeros(2, 3)
print(a)
print(type(a))
# 生成随机的指定shape的Tensor
a = torch.rand((3, 2))
print(a)
print(type(a))
# 正态分布
# 第一个参数是均值(也可以是Tensor形) 第二个参数是标准差(也是Tensor形) 有几个标准差将返回几个a中的随机正态值
a = torch.normal(mean=0.0, std=torch.ones(5))
print(a)
print(type(a))
# 均匀分布
a = torch.Tensor(3, 3).uniform_(-2, 2) # 注意uniform后面的下划线
print(a)
print(type(a))
# 生成序列Tensor
a = torch.arange(0, 11, 5) # first,end+1,step
print(a)
print(type(a))
a = torch.linspace(2, 10, 5) # first,end,生成的个数
print(a)
print(type(a))
# 生成0-n-1的n个数的Tensor,并打乱顺序
a = torch.randperm(5)
print(a)
print(type(a))
4.Tensor的属性

5.稀疏的张量
5.1 简介

5.2 代码实现
import torch
dev = torch.device("cpu")
dev = torch.device("cuda:0")
# !!!!!只有小写tensor才能编进GPU运行!!!!
# pytorch官方给的回答是,Tensor类是tensor的子类,不能给其device传参。而使用tensor类进行构建就不存在问题。
a = torch.tensor([2, 2], dtype=torch.float32, device=dev)
print(a)
print(type(a))
# 定义稀疏张量
# i表示张量中非0元素的坐标 (0,0)(1,1)(2,2)
i = torch.tensor([[0, 1, 2], [0, 1, 2]])
# v表示非0元素的值(一一对应)
v = torch.tensor([1, 2, 3])
# 三个参数为: 坐标,值,shape
a = torch.sparse_coo_tensor(i, v, (4, 4))
print(a)
# 将a转成稠密tensor
a = a.to_dense()
print(a)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)