PyTorch简介

初识PyTorch

张量计算

  1. 定义张量
    定义张量

  2. 张量的运算
    两个张量的矩阵乘法,需要调用PyTorch的 mm (即matrix multiply的意思)命令,它的作用就是矩阵相乘。
    矩阵乘法
    其中,y.t 表示矩阵y的转置。
    张量的基本运算还有很多,包括相加(与numpy相同)、换位、索引、切片、数学运算、线性算法和随机数等,详见PyTorch官方文档。

  3. 张量与NumPy数组之间的转换
    从numpy到张量的转换可以使用 from_numpy(a),其中 a 为一个numpy数组。反过来,从张量到numpy的转换可以使用 a.numpy(),其中 a 为一个PyTorch张量。
    张量与numpy数组之间的转换
    除了这种直接转换,大多数时候还需要按照类型进行转换。例如,可以用torch.FloatTensor(a)将numpy类型的数组a转化为一个float类型的张量。与此类似,可以用torch.LongTensor(a)将numpy类型的数组a转化为一个整数类型的张量。

  4. GPU上的张量运算
    PyTorch 中的很多张量运算与NumPy 中的数组运算一样,那么 PyTorch 为什么还要发明张量而不直接用NumPy 的数组呢?答案是,PyTorch中的张量可以在 GPU 中计算,这大大提高了运算速度,而 NumPy数组却不能。
    首先,要完成GPU上的运算,需要确认你的计算机已经安装了GPU并且可以正常操作。可以用如下方法进行验证:

torch.cuda.is_available()

如果返回True就表明GPU已经正常安装,否则将无法使用GPU。当确认可以使用之后,你只需要将定义的张量放置到GPU上即可。例如,将 x、y放到GPU上,你只需要输入如下代码即可:

if torch.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    print(x+y)

返回如下:

tensor([[-0.5796, -0.2013,  0.8858],
        [ 2.3588,  0.0218, -0.2338]], device='cuda:0')

注意,最后一行多出来的 cuda:0表明当前这个输出结果 x+y是存储在GPU上的。
当然,你的计算机版本设置可能不支持GPU,如果你希望获得GPU 资源,可以考虑在云服务器平台上运行。
我们也可以将已存储在 GPU上的变量再 “卸载”到CPU上,只需要输人以下命令即可:

x = x.cpu()

如果你的计算机本来就没有GPU,那么执行上述语句就会报错,所以最好是在前面加上 if torch.cuda.is_available() 进行判断。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值