什么是pytorch?

什么是pytorch?

pytorch是一个基于python的科学计算工具

  • 这个一个可以最大化利用GPU能力的NumPy的替代品
  • 这是一个深度学习的平台,可以提供最大的自由度已经计算速度

张量(Tensors)

Pytorch 的一大作用就是可以代替 Numpy 库,所以首先介绍 Tensors ,也就是张量,它相当于 Numpy 的多维数组(ndarrays)。两者的区别就是 Tensors 可以应用到 GPU 上加快计算速度。

首先导入必须的库,主要是 torch

from __future__ import print_function
import torch

声明和定义

首先是对 Tensors 的声明和定义方法,分别有以下几种:

torch.empty(): 声明一个未初始化的矩阵。

x = torch.empty(5, 3)
print(x)

output:

tensor([[5.0850e+31, 7.5338e+28, 1.3556e-19],
        [1.8530e+22, 7.0976e+22, 2.2087e+03],
        [2.9386e+29, 7.1104e-04, 1.3556e-19],
        [1.8567e-01, 1.9069e-19, 7.5553e+28],
        [5.2839e-11, 1.7589e+22, 2.5176e-12]])

torch.rand():随机初始化一个矩阵

# 创建一个随机初始化的 5*3 矩阵
rand_x = torch.rand(5, 3)
print(rand_x)

output:

tensor([[0.3365, 0.0456, 0.0225],
        [0.7974, 0.3510, 0.6405],
        [0.3835, 0.1519, 0.3030],
        [0.9807, 0.1991, 0.5750],
        [0.1904, 0.7029, 0.0582]])

torch.zeros():创建数值皆为 0 的矩阵

# 创建一个数值皆是 0,类型为 long 的矩阵
zero_x = torch.zeros(5, 3, dtype=torch.long)
print(zero_x)

output:

tensor([[0, 0, 0],
        [0, 0, 0],
        [0, 0, 0],
        [0, 0, 0],
        [0, 0, 0]])

类似的也可以创建数值都是 1 的矩阵,调用 torch.ones

# tensor 数值是 [5.5, 3]
tensor1 = torch.tensor([5.5, 3])
print(tensor1)

output

tensor([5.5000, 3.0000])

除了上述几种方法,还可以根据已有的 tensor 变量创建新的 tensor 变量,这种做法的好处就是可以保留已有 tensor 的一些属性,包括尺寸大小、数值属性,除非是重新定义这些属性。相应的实现方法如下:

tensor.new_ones():news() 方法需要输入尺寸大小

# 显示定义新的尺寸是 5*3,数值类型是 torch.double
tensor2 = tensor1.new_ones(5, 3, dtype=torch.double)  # new_* 方法需要输入 tensor 大小
print(tensor2)

torch.randn_like(old_tensor):保留相同的尺寸大小

# 修改数值类型
tensor3 = torch.randn_like(tensor2, dtype=torch.float)
print('tensor3: ', tensor3)

output

tensor3:  tensor([[-1.0626,  0.1383, -0.3280],
        [ 0.3559,  0.4541, -1.7084],
        [-0.2861, -1.8699,  0.4762],
        [ 1.1873,  0.4596,  0.0524],
        [ 0.5862, -0.9958, -1.6368]])

最后,对 tensors 的尺寸大小获取可以采用 tensor.size() 方法:

print(tensor3.size())  
# 输出: torch.Size([5, 3])

注意: torch.Size 实际上是元组(tuple)类型,所以支持所有的元组操作。

原文

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值