PyTorch 1.0 中文官方教程:混合前端的 seq2seq 模型部署

译者:cangyunye

作者: Matthew Inkawhich

本教程将介绍如何是seq2seq模型转换为PyTorch可用的前端混合Torch脚本。 我们要转换的模型是来自于聊天机器人教程 Chatbot tutorial. 你可以把这个教程当做Chatbot tutorial的第二篇章,并且部署你的预训练模型,或者你也可以依据本文使用我们采取的预训练模型。就后者而言,你可以从原始的Chatbot tutorial参考更详细的数据预处理,模型理论和定义以及模型训练。

什么是混合前端(Hybrid Frontend)?

在一个基于深度学习项目的研发阶段, 使用像PyTorch这样即时eager、命令式的界面进行交互能带来很大便利。 这使用户能够在使用Python数据结构、控制流操作、打印语句和调试实用程序时通过熟悉的、惯用的Python脚本编写。尽管即时性界面对于研究和试验应用程序是一个有用的工具,但是对于生产环境中部署模型时,使用基于图形graph-based的模型表示将更加适用的。 一个延迟的图型展示意味着可以优化,比如无序执行操作,以及针对高度优化的硬件架构的能力。 此外,基于图形的表示支持框架无关的模型导出。PyTorch提供了将即时模式的代码增量转换为Torch脚本的机制,Torch脚本是一个在Python中的静态可分析和可优化的子集,Torch使用它来在Python运行时独立进行深度学习。

在Torch中的torch.jit模块可以找到将即时模式的PyTorch程序转换为Torch脚本的API。 这个模块有两个核心模式用于将即时模式模型转换为Torch脚本图形表示: 跟踪tracing 以及 脚本化scriptingtorch.jit.trace 函数接受一个模块或者一个函数和一组示例的输入,然后通过函数或模块运行输入示例,同时跟跟踪遇到的计算步骤,然后输出一个可以展示跟踪流程的基于图形的函数。跟踪Tracing对于不涉及依赖于数据的控制流的直接的模块和函数非常有用,就比如标准的卷积神经网络。然而,如果一个有数据依赖的if语句和循环的函数被跟踪,则只记录示例输入沿执行路径调用的操作。换句话说,控制流本身并没有被捕获。要将带有数据依赖控制流的模块和函数进行转化,已提供了一个脚本化机制。脚本显式地将模块或函数代码转换为Torch脚本,包括所有可能的控制流路径。 如需使用脚本模式script mode, 要确定继承了 torch.jit.ScriptModule基本类 (取代torch.nn.Module) 并且增加 torch.jit.script 装饰器到你的Python函数或者 torch.jit.script_method 装饰器到你的模块方法。使用脚本化的一个警告是,它只支持Python的一个受限子集。要获取与支持的特性相关的所有详细信息,请参考 Torch Script language reference。为了达到最大的灵活性,可以组合Torch脚本的模式来表示整个程序,并且可以增量地应用这些技术。

致谢

本篇教程灵感来自如下资源:

  1. Yuan-Kuei Wu’s pytorch-chatbot implementation: https://github.com/ywk991112/pytorch-chatbot
  2. Sean Robertson’s practical-pytorch seq2seq-translation example: https://github.com/spro/practical-pytorch/tree/master/seq2seq-translation
  3. FloydHub’s Cornell Movie Corpus preprocessing code: https://github.com/floydhub/textutil-preprocess-cornell-movie-corpus

阅读全文/改进本文

原文地址:https://www.cnblogs.com/wizardforcel/p/10350418.html

时间: 2024-08-01 20:57:02

PyTorch 1.0 中文官方教程:混合前端的 seq2seq 模型部署的相关文章

PyTorch 1.0 中文官方教程:使用ONNX将模型从PyTorch传输到Caffe2和移动端

译者:冯宝宝 在本教程中,我们将介绍如何使用ONNX将PyTorch中定义的模型转换为ONNX格式,然后将其加载到Caffe2中.一旦进入Caffe2,我们就可以运行模型来仔细检查它是否正确导出,然后我们展示了如何使用Caffe2功能(如移动导出器)在移动设备上执行模型. 在本教程中,你需要安装onnx和Caffe2.您可以使用pip install onnx获取onnx的二进制版本. 注意: 本教程需要PyTorch master分支,可以按照 这里说明进行安装. # 一些包的导入 impor

PyTorch 1.0 中文官方教程:使用 Amazon AWS 进行分布式训练

译者:yportne13 作者: Nathan Inkawhich 编辑: Teng Li 在这篇教程中我们会展示如何使用 Amazon AWS 的两个多路GPU节点来设置,编写和运行 PyTorch 1.0 分布式训练程序.首先我们会介绍 AWS 设置, 然后是 PyTorch 环境配置, 最后是分布式训练的代码.你会发现想改成分布式应用你只需要对你目前写的训练程序做很少的代码改动, 绝大多数工作都只是一次性的环境配置. Amazon AWS 设置 在这篇教程中我们会在两个多路 GPU 节点上

PyTorch 1.0 中文官方教程:使用 PyTorch 进行图像风格转换

译者:bdqfork 作者: Alexis Jacq 简介 本教程主要讲解如何实现由Leon A. Gatys,Alexander S. Ecker和Matthias Bethge提出的 Neural-Style 算法.Neural-Style或者叫Neural-Transfer,可以让你使用一种新的风格将指定的图片进行重构.这个算法使用三张图片,一张输入图片,一张内容图片和一张风格图片,并将输入的图片变得与内容图片相似,且拥有风格图片的优美风格. 基本原理 原理很简单:我们定义两个间距,一个用

PyTorch 1.0 中文官方教程:对抗性示例生成

译者:cangyunye 作者: Nathan Inkawhich 如果你正在阅读这篇文章,希望你能理解一些机器学习模型是多么有效.现在的研究正在不断推动ML模型变得更快.更准确和更高效.然而,在设计和训练模型中经常会忽视的是安全性和健壮性方面,特别是在面对欺骗模型的对手时. 本教程将提高您对ML模型安全漏洞的认识,并将深入探讨对抗性机器学习这一热门话题.您可能会惊讶地发现,在图像中添加细微的干扰会导致模型性能的巨大差异.鉴于这是一个教程,我们将通过一个图像分类器上的示例来探索这个主题.具体来说

PyTorch 1.0 中文官方教程:空间变换器网络教程

译者:冯宝宝 作者: Ghassen HAMROUNI 在本教程中,您将学习如何使用称为空间变换器网络的视觉注意机制来扩充您的网络.你可以在 DeepMind paper阅读有关空间变换器网络的更多内容. 空间变换器网络是对任何空间变换的差异化关注的概括.空间变换器网络(简称STN)允许神经网络学习如何在输入图像上执行空间变换,以增强模型的几何不变性.例如,它可以裁剪感兴趣的区域,缩放并校正图像的方向.它可能是一种有用的机制,因为CNN对于旋转和缩放以及更一般的仿射变换并不是不变的. 关于STN

PyTorch 1.0 中文官方教程:序列模型和LSTM网络

译者:ETCartman 之前我们已经学过了许多的前馈网络. 所谓前馈网络, 就是网络中不会保存状态. 然而有时 这并不是我们想要的效果. 在自然语言处理 (NLP, Natural Language Processing) 中, 序列模型是一个核心的概念. 所谓序列模型, 即输入依赖于时间信息的模型. 一个典型的序列模型是隐马尔科夫模型 (HMM, Hidden Markov Model). 另一个序列模型的例子是条件随机场 (CRF, Conditional Random Field). 循

Varnish3.0中文官方翻译教程

本教程为官方教程的完整翻译.并做了一定总结.整理.整个Varnish的学习需要分成两个部分,PART1:部署篇,PART2:应用篇  第一部分:部署篇作为一个Server Service,部署是最基本的,同时也没有太多需要说明的.按照官方的教程,一运行便可了.但是需要注意的是,–perfix什么的,具体怎么设置的,可要好好的记住,否则,以后要查起来,可就没有头绪了.另外,装了什么样的插件也要清楚的.下面介绍下,安装方法.针对CentOS系统,有两种方法安装,一种是通过rpm,另一种是通过源码安装

ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布

原文:ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 本篇文章将阐述首次使用 ActiveReports 报表控件 的方法,包括添加报表文件.绑定数据源以及如何发布报表等内容. ActiveReports 报表控件官方中文入门教程 (1)-安装.激活以及产品资源 ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表 主要内容包括: 新建工程 在工程中添加ActiveReports报表文件 添加报表数据源 浏览报表 发布

ActiveReports 报表控件官方中文新手教程 (1)-安装、激活以及产品资源

?? 本系列文章主要是面向初次接触 ActiveReports 产品的用户,能够帮助您在三天之内轻松的掌握ActiveReports控件的基本用法,包含安装.激活.创建报表.绑定数据源以及公布等内容.本篇文章我们就从安装产品開始带您开启轻松的 ActiveReports 体验之旅. 系列文章列表: ActiveReports 报表控件官方中文新手教程 (2)-创建.数据源.浏览以及公布 ActiveReports 报表控件官方中文新手教程 (3)-怎样选择页面报表和区域报表 本文内容包含: 安装