PyTorch学习进阶1

Pytorch主要特点是能够无缝和python语言整合,方便深度学习模型的构建和调试,以及使用动态计算图模型,灵活地实现各种需要的功能。Pytorch 的高性能和易用性使它拥有很多学术界用户的用户。目前Pytorch场景应用包含:计算机视觉和自然语言处理的应用、推荐系统、语音识别语音合成、以及强化学习的应用。本专栏主要记录PyTorch学习路径。

Tensor(张量)是PyTorch中重要的数据结构,可认为是一个高维数组。它可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)以及更高维的数组。

# 导入库

from __future__ import print_function
import torch as t
t.__version__

# 构建 3x3 矩阵,只是分配了空间
x = t.Tensor(3,3)

# 初始化

x = t.Tensor([[1,2,3,],[3,4,5],[1,4,6]])

# 使用[0,1]均匀分布随机初始化二维数组
x = t.rand(3, 3) 

print(x.size()) # 查看x的形状
x.size()[1], x.size(1) # 查看列的个数, 两种写法等价

#加法三种操作及对比

y = t.rand(3,3)

#第一种写法

x + y

#第二种写法

t.add(x, y)

#第三种写法

result = t.Tensor(3, 3) # 预先分配空间
t.add(x, y, out=result) # 输入到result

#对比函数名带下划线,会改变tensor内容

y.add(x) # 普通加法,不改变y的内容
y.add_(x) # inplace 加法,y变了

# Tensor的选取操作与Numpy类似
x[::,2]#取列
x[0,::]#取行

Tensor和Numpy的ndarrays类似,但Tensor可以使用GPU进行加速。

1.转换

# Tensor -> Numpy
a = t.ones(3)# 新建一个全1的Tensor
b = a.numpy() 
# Numpy->Tensor
import numpy as np
a = np.ones(3)
b = t.from_numpy(a) 

Tensor 和Numpy 对象共享内存,转换很快,但是改变是同时的。

备注:

1.如果你想获取某一个元素的值,可以使用scalar.item。 直接tensor[idx]得到的还是一个tensor: 一个0-dim 的tensor,一般称为scalar.

2.t.tensor()或者tensor.clone()总是会进行数据拷贝,新tensor和原来的数据不再共享内存。

3.使用torch.from_numpy()或者tensor.detach()来新建一个tensor, 二者共享内存。

4.Tensor可通过.cuda 方法转为GPU的Tensor,从而享受GPU带来的加速运算。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值