其他分享
首页 > 其他分享> > Pytorch Tutorial学习笔记(1)

Pytorch Tutorial学习笔记(1)

作者:互联网

一、Tensor 张量

Tensor张量类似于数组和矩阵,用来表示模型的输入、输出和模型参数,即用来表示模型中的数据。Tensor可以在GPU上加速计算。

二、Tensor Initialization 张量初始化

有以下几种方式初始化一个张量:

  1. 直接通过数据
data = [[1, 2], [3, 4]]
x_data = torch.tensor(data)
  1. 从Numpy array数组
np_array = np.array(data)
x_np = torch.from_numpy(np_array)
  1. 从另外一个Tensor
x_ones = torch.ones_like(x_data) # 产生和x_data大小和类型一样的全为1的张量
print(f"Ones Tensor: \n {x_ones} \n")

x_rand = torch.rand_like(x_data, dtype=torch.float) # 产生大小和x_data一样,数据类型为float的每个元素随机的张量
print(f"Random Tensor: \n {x_rand} \n")
  1. 产生随机数或者常数的张量
shape = (2, 3,)
rand_tensor = torch.rand(shape)
ones_tensor = torch.ones(shape)
zeros_tensor = torch.zeros(shape)

print(f"Random Tensor: \n {rand_tensor} \n")
print(f"Ones Tensor: \n {ones_tensor} \n")
print(f"Zeros Tensor: \n {zeros_tensor}")

三、Tensor Attributes张量属性

tensor = torch.rand(3, 4)

print(f"Shape of tensor: {tensor.shape}") # 张量的大小
print(f"Datatype of tensor: {tensor.dtype}") # 张量的数据类型
print(f"Device tensor is stored on: {tensor.device}") # 张量所在设备(GPU或者CPU)

四、Tensor Operations张量的操作

可以操作Tensor的函数(数学运算、随机取样等)参考官网网址:操作tensor函数的官方说明

  1. 如果有安装GPU版本的pytorch,可以把张量转移到GPU上面计算
if torch.cuda.is_available():
  tensor = tensor.to('cuda')
  print(f"Device tensor is stored on: {tensor.device}")
  1. 跟numpy类似,对tensor索引和切片
tensor = torch.ones(4, 4)
tensor[:,1] = 0
print(tensor)
  1. 张量的乘法
# 元素对应相乘
tensor.mul(tensor)
# 另一种同样的写法
tensor * tensor
# 矩阵乘法
tentor.matmul(tensor.T) # tensor 乘以 tensor的转置
# 另一种相同的写法
tensor @ tensor.T
  1. In-place operations 就地操作:意思是操作完之后该张量会被替换
tensor.add_(5) # tensor自加5
# tensor.copy_(y) # tensor变成y
tensor.t_() # tensor变成其转置

五、Bridge with Numpy 与Numpy连接

在CPU上的Tensor可以跟Numpy array共用内存位置,两者会一起改变。

# 用torch产生t 用t产生n
t = torch.ones(5)
print(f"t: {t}")
n = t.numpy()
print(f"n: {n}")

# 两者会一起改变
t.add_(1)
print(f"t: {t}")
print(f"n: {n}")

# 用numpy产生n,用n产生t
n = np.ones(5)
t = torch.from_numpy(n)

# 两者会一起改变
np.add(n, 1, out=n)
print(f"t: {t}")
print(f"n: {n}")

参考网址:Pytorch Tutorial

标签:tensor,torch,张量,笔记,Pytorch,ones,print,Tutorial,Tensor
来源: https://blog.csdn.net/king_ham/article/details/121057770