基于Pytorch的深度学习教程-PyTorch简介

PyTorch是一个基于python的科学计算包,主要针对两类人群:

  • 作为NumPy的替代品,可以利用GPU的性能进行计算
  • 作为一个高灵活性、速度快的深度学习平台

先使用anaconda安装pytorch,最好使用命令行方式,安装pytorch-gpu版本;

入门

张量

Tensor(张量)类似于NumPyndarray,但还可以在GPU上使用来加速计算。

创建一个没有初始化的5*3矩阵:

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

输出:

tensor([[2.2391e-19, 4.5869e-41, 1.4191e-17],
        [4.5869e-41, 0.0000e+00, 0.0000e+00],
        [0.0000e+00, 0.0000e+00, 0.0000e+00],
        [0.0000e+00, 0.0000e+00, 0.0000e+00],
        [0.0000e+00, 0.0000e+00, 0.0000e+00]])

直接从数据构造张量:

x = torch.tensor([5.5, 3])
print(x)

或者根据已有的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一致

获取张量的形状:

print(x.size())

输出:

torch.Size([5, 3])

运算

一种运算有多种语法。在下面的示例中,我们将研究加法运算。

加法:形式一

x = torch.tensor([5.5, 3])
x = x.new_ones(5, 3, dtype=torch.double)      # new_* methods take in sizes
y = torch.rand(5, 3)
# print(x + y)

加法:形式二

print(torch.add(x, y))

加法:给定一个输出张量作为参数

result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)

加法:原位/原地操作(in-place)

# adds x to y
y.add_(x)
print(y)

桥接 NumPy

将一个Torch张量转换为一个NumPy数组是轻而易举的事情,反之亦然。

Torch张量和NumPy数组将共享它们的底层内存位置,因此当一个改变时,另外也会改变。

将torch的Tensor转化为NumPy数组

a = torch.ones(5)
print(a)

将NumPy数组转化为Torch张量

import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)

CUDA上的张量

张量可以使用.to方法移动到任何设备(device)上:

# 当GPU可用时,我们可以运行以下代码
# 我们将使用`torch.device`来将tensor移入和移出GPU
if torch.cuda.is_available():
    device = torch.device("cuda")          # a CUDA device object
    y = torch.ones_like(x, device=device)  # 直接在GPU上创建tensor
    x = x.to(device)                       # 或者使用`.to("cuda")`方法
    z = x + y
    print(z)
    print(z.to("cpu", torch.double))       # `.to`也能在移动时改变dtype

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值