Deep Learning of Trading(4)

本文介绍了如何使用PyTorch 1.4构建神经网络,包括数据加载、张量操作、模型定义、训练流程、评估和GPU支持。重点讲解了急切执行和autograd自动微分机制,适合研究者和开发者深入理解并实践深度学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

How to use PyTorch1.4

PyTorch是由Yann LeCunn领导的Facebook AI Research (FAIR)小组开发的,第一个lpha版本于2016年9月发布。它提供与Python库的深度集成,如NumPy,可以用来扩展其功能,强大的GPU加速,并使用autograd系统自动差异化。它通过一个较低层次的API提供了比Keras更细粒度的控制,主要用作深度学习研究平台,但也可以取代NumPy,同时支持GPU计算

与诸如Theano或TensorFlow等使用的静态计算图相比,它采用了急切执行。而不是最初定义和编译一个网络快速但静态执行,它依赖于它的autograd包自动微分张量操作;也就是说,它“动态地”计算梯度,这样网络结构可以更容易地部分修改。这称为definition -byrun,这意味着反向传播是由代码的运行方式定义的,这反过来意味着每个迭代可以是不同的。PyTorch文档提供了这方面的详细教程。

由此产生的灵活性,加上直观的python优先接口和执行速度,促成了它的迅速流行,并导致开发了许多支持库来扩展它的功能。

让我们通过实现简单的网络架构来了解PyTorch和autograd是如何工作的(详情请参阅how_to_use_pytorch笔记本)。

如何创建一个PyTorch数据加载器

我们首先将Numpy或pandas输入数据转换为torch张量从它们到Numpy的转换非常简单。

我们可以使用pytorch张量首先实例化一个TensortDataset,然后在第二步实例化一个包含batch-size信息的dataloader

如何定义神经网络的结构

PyTorch使用Net()类定义了NN体系结构。中心元素是前向函数。

Autograd自动定义相应的反向函数来计算梯度。

任何合法的张量运算都是前向函数的公平博弈,提供了设计灵活性的日志。在

在我们简单的例子中,我们只需要在初始化张量的输入输出关系之后,将张量和属性联系起来

然后我们实例化一个Net()对象,并可以检查体系结构如下:

为了说明快速执行,我们还可以检查第一个张量中的初始化参数;

如果需要启用GPU处理,可以使用net。cuda()。请参阅PyTorch文档,了解如何在CPU和/或一个或多个GPU单元上放置张量。

我们还需要定义一个损失函数和优化器,使用一些内置选项:

如何训练模型

模型训练由每个阶段的外部循环组成,即每次传递训练数据,以及一个对DataLoader生成的批进行内部循环。执行向前和向后的操作通过学习算法完成。需要注意根据需求调整数据类型不同的对象和功能;例如,标签需要是整数,特性应该是类型的浮动:

该笔记本还包含一个示例,使用livelossplot包绘制整个培训过程中的损失,这是由Keras开箱即用提供的。

如何评估模型预测

为了从我们训练的模型中获得预测,我们将特征数据传递给它,并将预测转换为NumPy数组。我们得到了两个类的softmax概率:

从这里开始,我们可以像以前一样继续计算损失指标或可视化结果,再次重现我们之前发现的决策边界的一个版本。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值