Pytorch Tutorial学习笔记(1)
作者:互联网
一、Tensor 张量
Tensor张量类似于数组和矩阵,用来表示模型的输入、输出和模型参数,即用来表示模型中的数据。Tensor可以在GPU上加速计算。
二、Tensor Initialization 张量初始化
有以下几种方式初始化一个张量:
- 直接通过数据
data = [[1, 2], [3, 4]]
x_data = torch.tensor(data)
- 从Numpy array数组
np_array = np.array(data)
x_np = torch.from_numpy(np_array)
- 从另外一个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")
- 产生随机数或者常数的张量
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函数的官方说明
- 如果有安装GPU版本的pytorch,可以把张量转移到GPU上面计算
if torch.cuda.is_available():
tensor = tensor.to('cuda')
print(f"Device tensor is stored on: {tensor.device}")
- 跟numpy类似,对tensor索引和切片
tensor = torch.ones(4, 4)
tensor[:,1] = 0
print(tensor)
- 张量的乘法
# 元素对应相乘
tensor.mul(tensor)
# 另一种同样的写法
tensor * tensor
# 矩阵乘法
tentor.matmul(tensor.T) # tensor 乘以 tensor的转置
# 另一种相同的写法
tensor @ tensor.T
- 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