|
|
51CTO旗下网站
|
|
移动端

1.10 使用PyTorch 的RNN 动态计算图

《Python深度学习实战:75个有关神经网络建模、强化学习与迁移学习的解决方案》第1章编程环境、GPU 计算、云解决方案和深度学习框架,本章重点介绍构建深度学习框架用到的一些流行技术方案。本节为大家介绍使用PyTorch 的RNN 动态计算图。

作者:程国建/周冠武 译来源:机械工业出版社|2018-08-30 18:17

1.10 使用PyTorch 的RNN 动态计算图

PyTorch 是Python 深度学习框架,近来获得了很多的关注。PyTorch 是使用Lua 的Torch 的Python 实现。它由Facebook 公司支持,并且由于GPU 加速张量计算,其速度很快。使用PyTorch 优于其他框架的一个巨大好处是,图形是动态创建的,而不是静态创建的。这意味着网络是动态的,可以调整网络,而不必重新开始。因此,对于每个示例而言,即时创建的图形可能会有所不同。PyTorch 支持多个GPU,可以手动设置在哪个设备(CPU或GPU)上执行哪些运算。

如何去做…

1)首先,在Anaconda 环境中安装PyTorch,如下所示:

如果想在另一个平台上安装PyTorch,可以查看一下PyTorch 的网站以获取清晰的指导:http ://pytorch.org/。

2)将PyTorch 导入到Python 环境中:

3)虽然Keras 为构建神经网络提供了更高层次的抽象,但是PyTorch 也内置了这个特性。这意味着可以使用更高级别的构建块构建,甚至可以手动构建前向和后向过程。在本例中,将使用更高层次的抽象。首先,需要设定随机训练数据的大小:

4)为了启动GPU,将使用如下张量:

这确保所有的计算将使用附加的GPU。

5)可以用它来生成随机训练数据:

6)使用一个简单的神经网络,其中一个有32 个神经元的隐层和一个神经元的输出层:

使用.cuda() 扩展来确保模型在GPU 上运行。

7)接下来,定义MSE 损失函数:

8)现在准备开始使用下面的代码来训练模型,共迭代10 次:

PyTorch 框架为实现简单的神经网络和更复杂的深度学习模型提供了很大的自由度。在这个介绍中没有演示的是在PyTorch 中使用动态图。这是一个非常强大的功能,本书将在其他内容中进行展示。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

非常网管——网络工程案例

本书面向企业网络应用需求,详细介绍了Windows网络互联解决方案、中小企业共享上网解决方案、基于ISA Server 2006的代理服务器与防火墙解决...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
博聚网