跟我一起学PyTorch-03:PyTorch基础知识

PyTorch的许多函数在使用上和Numpy几乎一样,能够平滑地结合使用,Numpy的绝大多数操作同样可以用在PyTorch中。PyTorch的特色之一是提供构建动态计算图的框架,这样网络结构不再是一成不变的了,甚至可以在运行时修正它们。在神经网络方面,PyTorch的优点还在于使用了多GPU的强大加速能力、自定义数据加载器和极简的预处理过程等。尽管PyTorch与其他框架相比还算是新秀,仍然需要完善和改进,但不否认它一出现就得到了广泛的认同和运用。

1.Tensor简介

Tensor是PyTorch中的基本对象,意思为张量,表示多维的矩阵,是PyTorch中的基本操作对象之一。与Numpy中的多维数组ndarray类似。Tensor的声明和获取大小:

>>> import torch
>>> x = torch.Tensor(5,3)
>>> x.size()
torch.Size([5, 3])

Tensor的算术运算和选取操作与Numpy一样,因此Numpy相似的运算操作都可以迁移过来:

>>> x = torch.rand(5,3)
>>> y = torch.rand(5,3)
>>> x+y
tensor([[0.9579, 1.0589, 1.3667],
        [0.1667, 0.2882, 1.4379],
        [0.5773, 1.1986, 0.6230],
        [1.0630, 1.3136, 0.6978],
        [1.3252, 1.4158, 0.3060]])
>>> x[:,1]
tensor([0.3851, 0.1678, 0.8133, 0.6530, 0.8389])

Tensor与Numpy的array还可以进行相互转换,有专门的转换函数:

>>> x = torch.rand(5,3)
>>> y = x.numpy()
>>> z = torch.from_numpy(y)

2.Variable简介

Variable是PyTorch的另一个基本对象,可以把它理解为是对Tensor的一个封装。Variable用于放入计算图中进行前向传播、反向传播和自动求导,如下图所示。在一个Variable中有三个重要属性:data、grad和creator。其中,data表示包含的Tensor数据部分;grad表示传播方向的梯度,这个属性是延迟分配的,而且仅允许进行一次;creator表示创建这个Variable的Function的引用,该引用用户回溯整个创建链路。如果是用户创建的Variable,其creator为None,同时这种Variable称为Leaf Variable,autograd只会给Leaf Variable分配梯度。
image.png

>>> from torch.autograd import variable
>>> x = tor
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值