PyTorch概述

1.为什么我们会使用PyTorch来构建深度学习模型?
易于使用API——它就像python一样简单。
支持Python——就像上面所介绍的,Pytorch与python数据科学堆栈平滑集成。它跟numpy非常相似,你可能都没有注意到它们的区别。
动态计算图形——Pytorch不是使用特定功能的预定义图形,而是为我们提供了构建计算图形的框架,甚至可以在运行的时候更改它们。这对于我们不知道创建神经网络需要多少内存的情况非常有用。
2. Pytorch的主要元素:
Pytorch 张量
数学运算
Autograd 模块
Optim 模块
nn 模块
2.1 Pytorch 张量
张量是多维数组。Pytorch中的张量类似于numpy的ndarray,另外张量也可以在GPU上使用。Pytorch支持各种类型的张量。
(1) 定义一个简单的一位矩阵:
import torch # import pytorch
torch.FloatTensor([2]) # define a tensor

2
[torch.FloatTensor of size 1]
(2) 数学运算
与numpy一样,科学计算库能够有效得实现数学函数是非常有效的。Pytorch为你提供了类似的交互界面,你可以在这里使用200多个数学运算。

下面是Pytorch中的一个简单加法操作的例子:

a = torch.FloatTensor([2])
b = torch.FloatTensor([3])

a + b

5
[torch.FloatTensor of size 1]

(3) 我们还可以在我们定义的Pytorch张量上执行各种矩阵运算。
例如:我们来转置二维矩阵:

matrix = torch.randn(3, 3)
matrix

0.7162 1.0152 1.1525
-0.3503 -0.9452 -1.0861
-0.1093 -0.0927 -0.0476
[torch.FloatTensor of size 3x3]

matrix.t()

0.7162 -0.3503 -0.1093
1.0152 -0.9452 -0.0927
1.1525 -1.0861 -0.0476
[torch.FloatTensor of size 3x3]
3. Autograd 模块
Pytorch使用了一种自动微分的技术。也就是说,我们有一个记录器记录我们执行过的操作,然后它会将操作往后执行以计算梯度。这种技术在构建神经网络时非常有用,因为我们通过计算前向传播本身的参数差异来节省一个周期的时间。
在这里插入图片描述

from torch.autograd import Variable

x = Variable(train_x)
y = Variable(train_y, requires_grad=False)
4. Optim 模块
torch.optim是一个实现用于构建神经网络的各种优化算法的模块。已经支持了大多数的常用算法,所以我们可以免去从头开始构建它们的麻烦。

下面是使用Adam optimizer 的代码:

optimizer = torch.optim.Adam(model.parameters(),lr=learning_rate)
5. nn模块
Pytorch中的autograd可以很容易定义图形并计算梯度,但原始的autograd对于定义复杂的神经网络来说可能有点过于低级了。这就是nn模块可以提供帮助的地方。

nn扩展包定义了一组模块,我们可以把它看做成一个能从输入产生输出并且包含一些可训练的权重的神经网络层。

你其实可以把nn模块视作Pytorch的keras!

import torch # define model
model = torch.nn.Sequential(
torch.nn.Linear(input_num_units, hidden_num_units),
torch.nn.ReLU(),
torch.nn.Linear(hidden_num_units, output_num_units),
)
loss_fn = torch.nn.CrossEntropyLoss()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值