张量(Tensor)是 PyTorch 中的核心数据结构,用于存储和操作多维数组。相当于NumPy的ndarray(NumPy是python的一种开源的数据计算扩展,支持大量的维度数组和矩阵运算)。但是 PyTorch 的张量可以运行在不同的设备上,比如 CPU 和 GPU,这使得它们非常适合于进行大规模并行计算,特别是在深度学习领域。
张量定义
创建一个没有初始化的4*4的矩阵:
import torch
x = torch.empty(4,4)
print(x)
输出:
tensor([[8.9634e-33, 7.1345e+31, 7.1118e-04, 1.7444e+28],
[7.3909e+22, 1.8727e+31, 1.3179e+25, 7.7783e+31],
[1.7743e+28, 2.0535e-19, 3.0478e+32, 2.7518e+12],
[7.5338e+28, 1.8750e-19, 1.4609e-19, 7.5630e+28]])
创建一个随机初始化矩阵:
x = torch.rand(4,4)
print(x)
输出:
tensor([[0.3797, 0.2606, 0.0746, 0.6160],
[0.1047, 0.2759, 0.8398, 0.1143],
[0.9185, 0.8361, 0.6365, 0.2880],
[0.3197, 0.3014, 0.0335, 0.3864]])
构造一个填满 0 且数据类型为 long 的矩阵:
x = torch.zeros(4,4, dtype=torch.long)
print(x)
输出:
tensor([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
直接从数据构造张量:
x = torch.tensor([4.5, 4])
print(x)
输出:
tensor([4.5000, 4.0000])
根据现有的 tensor 建立新的 tensor 。除非用户提供新的值,否则这些方法将重用输入张量的属性,例如 dtype 等:
x = x.new_ones(5, 3, dtype=torch.double) # new_* methods take in sizes
print(x)
x = torch.randn_like(x, dtype=torch.float) # 重载 dtype!
print(x) # 结果size一致
输出:
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=torch.float64)
tensor([[ 0.7024, 0.1605, 0.8259],
[-2.1536, -0.0927, -0.2898],
[-0.2952, 1.0901, -0.6976],
[-0.6405, 1.9940, 0.1737],
[-0.6792, 1.0138, 0.9789]])
获取张量的形状:
print(x.size())
输出:
torch.Size([4,4])
运算--加法
y = torch.rand(4, 4)
print(x + y) #形式一
print(torch.add(x, y)) #形式二
输出一样:
tensor([[ 1.5010, -2.5263, -1.4662],
[-0.0296, -2.1736, 1.2592],
[ 0.6494, -0.0946, -0.7947],
[ 0.0141, -0.2633, 1.7664],
[ 0.4713, -0.7551, 0.8110]])
加法:给定一个输出张量作为参数:
result = torch.empty(4, 4)
torch.add(x, y, out=result)
print(result)
输出同上哦!
加法:原位/原地操作(in-place):
# adds x to y
y.add_(x)
print(y)
今日
标签:输出,tensor,--,dtype,torch,张量,Pytorch,print From: https://blog.csdn.net/2302_80795993/article/details/145242012