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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值