Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_49771401
apachecn-dl-zh
提交
1064c7ec
A
apachecn-dl-zh
项目概览
weixin_49771401
/
apachecn-dl-zh
与 Fork 源项目一致
Fork自
OpenDocCN / apachecn-dl-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apachecn-dl-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1064c7ec
编写于
1月 20, 2021
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2021-01-20 21:07:33
上级
649b2f09
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
32 addition
and
32 deletion
+32
-32
new/pt-tut-17/31.md
new/pt-tut-17/31.md
+6
-6
new/pt-tut-17/32.md
new/pt-tut-17/32.md
+3
-3
new/pt-tut-17/34.md
new/pt-tut-17/34.md
+1
-1
new/pt-tut-17/35.md
new/pt-tut-17/35.md
+3
-3
new/pt-tut-17/37.md
new/pt-tut-17/37.md
+6
-6
new/pt-tut-17/38.md
new/pt-tut-17/38.md
+4
-4
new/pt-tut-17/39.md
new/pt-tut-17/39.md
+3
-3
new/pt-tut-17/40.md
new/pt-tut-17/40.md
+6
-6
未找到文件。
new/pt-tut-17/31.md
浏览文件 @
1064c7ec
...
...
@@ -48,7 +48,7 @@ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
## 定义模型
该模型由
[
EmbeddingBag
](
https://pytorch.org/docs/stable/nn.html?highlight=embeddingbag#torch.nn.EmbeddingBag
)
层和线性层组成(请参见下图)。
`nn.EmbeddingBag`
计算嵌入“袋”的平均值。 此处的文本条目具有不同的长度。
`nn.EmbeddingBag`
此处不需要填充,因为文本长度以偏移量保存。
该模型由
[
`EmbeddingBag`
](
https://pytorch.org/docs/stable/nn.html?highlight=embeddingbag#torch.nn.EmbeddingBag
)
层和线性层组成(请参见下图)。
`nn.EmbeddingBag`
计算嵌入“袋”的平均值。 此处的文本条目具有不同的长度。
`nn.EmbeddingBag`
此处不需要填充,因为文本长度以偏移量保存。
另外,由于
`nn.EmbeddingBag`
会动态累积嵌入中的平均值,因此
`nn.EmbeddingBag`
可以提高性能和存储效率,以处理张量序列。
...
...
@@ -121,7 +121,7 @@ def generate_batch(batch):
## 定义函数以训练模型并评估结果。
建议 PyTorch 用户使用
[
`torch.utils.data.DataLoader`
](
https://pytorch.org/docs/stable/data.html?highlight=dataloader#torch.utils.data.DataLoader
)
,它可以轻松地并行加载数据(
教程为
[
,此处为
](
https://pytorch.org/tutorials/beginner/data_loading_tutorial.html
)
)。 我们在此处使用
`DataLoader`
加载
`AG_NEWS`
数据集,并将其发送到模型以进行训练/验证。
建议 PyTorch 用户使用
[
`torch.utils.data.DataLoader`
](
https://pytorch.org/docs/stable/data.html?highlight=dataloader#torch.utils.data.DataLoader
)
,它可以轻松地并行加载数据(
[
教程在这里
](
https://pytorch.org/tutorials/beginner/data_loading_tutorial.html
)
)。 我们在此处使用
`DataLoader`
加载
`AG_NEWS`
数据集,并将其发送到模型以进行训练/验证。
```
py
from
torch.utils.data
import
DataLoader
...
...
@@ -166,9 +166,9 @@ def test(data_):
## 分割数据集并运行模型
由于原始的
`AG_NEWS`
没有有效的数据集,因此我们将训练数据集分为训练/有效集,其分割比率为 0.95(训练)和 0.05(有效)。 在这里,我们在 PyTorch 核心库中使用
[
torch.utils.data.dataset.random_split
](
https://pytorch.org/docs/stable/data.html?highlight=random_split#torch.utils.data.random_split
)
函数。
由于原始的
`AG_NEWS`
没有有效的数据集,因此我们将训练数据集分为训练/有效集,其分割比率为 0.95(训练)和 0.05(有效)。 在这里,我们在 PyTorch 核心库中使用
[
`torch.utils.data.dataset.random_split`
](
https://pytorch.org/docs/stable/data.html?highlight=random_split#torch.utils.data.random_split
)
函数。
[
CrossEntropyLoss
](
https://pytorch.org/docs/stable/nn.html?highlight=crossentropyloss#torch.nn.CrossEntropyLoss
)
标准将
`nn.LogSoftmax()`
和
`nn.NLLLoss()`
合并到一个类中。 在训练带有
`C`
类的分类问题时很有用。
[
`SGD`
](
https://pytorch.org/docs/stable/_modules/torch/optim/sgd.html
)
实现了随机梯度下降方法作为优化程序。 初始学习率设置为 4.0。
[
`StepLR`
](
https://pytorch.org/docs/master/_modules/torch/optim/lr_scheduler.html#StepLR
)
在此处用于通过历时调整学习率。
[
`CrossEntropyLoss`
](
https://pytorch.org/docs/stable/nn.html?highlight=crossentropyloss#torch.nn.CrossEntropyLoss
)
标准将
`nn.LogSoftmax()`
和
`nn.NLLLoss()`
合并到一个类中。 在训练带有
`C`
类的分类问题时很有用。
[
`SGD`
](
https://pytorch.org/docs/stable/_modules/torch/optim/sgd.html
)
实现了随机梯度下降方法作为优化程序。 初始学习率设置为 4.0。
[
`StepLR`
](
https://pytorch.org/docs/master/_modules/torch/optim/lr_scheduler.html#StepLR
)
在此处用于通过历时调整学习率。
```
py
import
time
...
...
@@ -289,7 +289,7 @@ Loss: 0.0237(test) | Acc: 90.5%(test)
## 测试随机新闻
使用到目前为止最好的模型并测试高尔夫新闻。 标签信息在
中可用
[
。
](
https://pytorch.org/text/datasets.html?highlight=ag_news#torchtext.datasets.AG_NEWS
)
使用到目前为止最好的模型并测试高尔夫新闻。 标签信息在
[
这里
](
https://pytorch.org/text/datasets.html?highlight=ag_news#torchtext.datasets.AG_NEWS
)
。
```
py
import
re
...
...
@@ -337,7 +337,7 @@ This is a Sports news
这是体育新闻
您可以在此处找到本说明
[
中显示的代码示例。
](
https://github.com/pytorch/text/tree/master/examples/text_classification
)
[
您可以在此处找到本说明中显示的代码示例
](
https://github.com/pytorch/text/tree/master/examples/text_classification
)
。
**脚本的总运行时间**
:(1 分 38.483 秒)
...
...
new/pt-tut-17/32.md
浏览文件 @
1064c7ec
...
...
@@ -6,13 +6,13 @@
它基于 PyTorch 社区成员
[
Ben Trevett
](
https://github.com/bentrevett
)
的本教程,并获得 Ben 的许可。 我们通过删除一些旧代码来更新教程。
在本教程结束时,您将可以将句子预处理为张量以用于 NLP 建模,并可以使用
[
torch.utils.data.DataLoader
](
https://pytorch.org/docs/stable/data.html?highlight=dataloader#torch.utils.data.DataLoader
)
来训练和验证模型。
在本教程结束时,您将可以将句子预处理为张量以用于 NLP 建模,并可以使用
[
`torch.utils.data.DataLoader`
](
https://pytorch.org/docs/stable/data.html?highlight=dataloader#torch.utils.data.DataLoader
)
来训练和验证模型。
## 数据处理
`torchtext`
具有实用程序,可用于创建可以轻松迭代的数据集,以创建语言翻译模型。 在此示例中,我们展示了如何对原始文本句子进行标记,构建词汇表以及将标记数字化为张量。
注意:本教程中的标记化需要
[
Spacy
](
https://spacy.io
)
我们使用 Spacy 是因为它为英语以外的其他语言的标记化提供了强大的支持。
`torchtext`
提供了
`basic_english`
标记器,并支持其他英语标记器(例如
[
摩西
](
https://bitbucket.org/luismsgomes/mosestokenizer/src/default/
)
),但对于语言翻译(需要多种语言),Spacy 是您的最佳选择。
注意:本教程中的标记化需要
[
Spacy
](
https://spacy.io
)
我们使用 Spacy 是因为它为英语以外的其他语言的标记化提供了强大的支持。
`torchtext`
提供了
`basic_english`
标记器,并支持其他英语标记器(例如
[
Moses
](
https://bitbucket.org/luismsgomes/mosestokenizer/src/default/
)
),但对于语言翻译(需要多种语言),Spacy 是您的最佳选择。
要运行本教程,请先使用
`pip`
或
`conda`
安装
`spacy`
。 接下来,下载英语和德语 Spacy 分词器的原始数据:
...
...
@@ -112,7 +112,7 @@ test_iter = DataLoader(test_data, batch_size=BATCH_SIZE,
这大部分是从
`torchtext`
角度出发的:构建了数据集并定义了迭代器,本教程的其余部分仅将模型定义为
`nn.Module`
以及
`Optimizer`
,然后对其进行训练。
具体来说,我们的模型遵循
此处中描述的
[
架构(您可以在
](
https://arxiv.org/abs/1409.0473
)
中找到注释更多的版本
[
)。
](
https://github.com/SethHWeidman/pytorch-seq2seq/blob/master/3%20-%20Neural%20Machine%20Translation%20by%20Jointly%20Learning%20to%20Align%20and%20Translate.ipynb
)
具体来说,我们的模型遵循
[
此处描述的架构
](
https://arxiv.org/abs/1409.0473
)
(您可以在
[
这里
](
https://github.com/SethHWeidman/pytorch-seq2seq/blob/master/3%20-%20Neural%20Machine%20Translation%20by%20Jointly%20Learning%20to%20Align%20and%20Translate.ipynb
)
找到注释更多的版本。
注意:此模型只是可用于语言翻译的示例模型; 我们选择它是因为它是任务的标准模型,而不是因为它是用于翻译的推荐模型。 如您所知,目前最先进的模型基于“变形金刚”; 您可以在上看到 PyTorch 的实现
[
`Transformer`
](
https://pytorch.org/docs/stable/nn.html#transformer-layers
)
层的功能; 特别是,以下模型中使用的“注意”与转换器模型中存在的多头自我注意不同。
...
...
new/pt-tut-17/34.md
浏览文件 @
1064c7ec
...
...
@@ -22,7 +22,7 @@
**软件包**
首先,让我们导入所需的软件包。 首先,我们需要针对环境的
[
体育馆
](
https://gym.openai.com/docs
)
(使用
`pip install Gym`
进行安装)。 我们还将使用 PyTorch 中的以下内容:
首先,让我们导入所需的软件包。 首先,我们需要针对环境的
[
Gym
](
https://gym.openai.com/docs
)
(使用
`pip install Gym`
进行安装)。 我们还将使用 PyTorch 中的以下内容:
*
神经网络(
`torch.nn`
)
*
优化(
`torch.optim`
)
...
...
new/pt-tut-17/35.md
浏览文件 @
1064c7ec
...
...
@@ -4,9 +4,9 @@
Authors:
[
Yuansong Feng
](
https://github.com/YuansongFeng
)
,
[
Suraj Subramanian
](
https://github.com/suraj813
)
,
[
Howard Wang
](
https://github.com/hw26
)
,
[
Steven Guo
](
https://github.com/GuoYuzhang
)
.
本教程将向您介绍深度强化学习的基础知识。 最后,您将实现一个 AI 驱动的马里奥(使用
[
Double Deep Q-Networks
](
https://arxiv.org/pdf/1509.06461.pdf
)
),它可以自己玩游戏。
本教程将向您介绍深度强化学习的基础知识。 最后,您将实现一个 AI 驱动的马里奥(使用
[
双重深度 Q 网络
](
https://arxiv.org/pdf/1509.06461.pdf
)
),它可以自己玩游戏。
尽管本教程不需要任何有关 RL 的先验知识,但是您可以熟悉这些 RL
[
概念
](
https://spinningup.openai.com/en/latest/spinningup/rl_intro.html
)
,并将此方便的
[
备忘单
](
https://colab.research.google.com/drive/1eN33dPVtdPViiS1njTW_-r-IYCDTFU7N
)
作为您的伴侣。
完整代码可在此处
[
获得。
](
https://github.com/yuansongFeng/MadMario/
)
尽管本教程不需要任何有关 RL 的先验知识,但是您可以熟悉这些 RL
[
概念
](
https://spinningup.openai.com/en/latest/spinningup/rl_intro.html
)
,并将此方便的
[
备忘单
](
https://colab.research.google.com/drive/1eN33dPVtdPViiS1njTW_-r-IYCDTFU7N
)
作为您的伴侣。
[
完整代码可在此处获得
](
https://github.com/yuansongFeng/MadMario/
)
。
![
mario
](
img/e46d7dbb0cc58ac0895589bf255444be.png
)
...
...
@@ -660,7 +660,7 @@ Episode 0 - Step 40 - Epsilon 0.9999900000487484 - Mean Reward 231.0 - Mean Leng
## 结论
在本教程中,我们看到了如何使用 PyTorch 来训练玩游戏的 AI。 您可以使用相同的方法训练 AI 在
[
OpenAI 体育馆
](
https://gym.openai.com/
)
上玩任何游戏。 希望您喜欢本教程,请随时通过
[
和我们的 g
ithub
](
https://github.com/yuansongFeng/MadMario/
)
与我们联系!
在本教程中,我们看到了如何使用 PyTorch 来训练玩游戏的 AI。 您可以使用相同的方法训练 AI 在
[
OpenAI 体育馆
](
https://gym.openai.com/
)
上玩任何游戏。 希望您喜欢本教程,请随时通过
[
我们的 G
ithub
](
https://github.com/yuansongFeng/MadMario/
)
与我们联系!
**脚本的总运行时间**
:(0 分钟 21.485 秒)
...
...
new/pt-tut-17/37.md
浏览文件 @
1064c7ec
...
...
@@ -12,8 +12,8 @@
这是在生产中部署 PyTorch 模型的系列教程中的第一篇。 到目前为止,以这种方式使用 Flask 是开始为 PyTorch 模型提供服务的最简单方法,但不适用于具有高性能要求的用例。 为了那个原因:
> * 如果您已经熟悉 TorchScript,则可以直接进入我们的
[C++ 加载 TorchScript 模型](https://pytorch.org/tutorials/advanced/cpp_export.html)
教程。
> * 如果您首先需要在 TorchScript 上进行复习,请查看我们的 [TorchScript 入门](https://pytorch.org/tutorials/beginner/Intro_to_TorchScript_tutorial.html)
教程。
> * 如果您已经熟悉 TorchScript,则可以直接进入我们的
[通过 C++ 加载 TorchScript 模型](https://pytorch.org/tutorials/advanced/cpp_export.html)的
教程。
> * 如果您首先需要在 TorchScript 上进行复习,请查看我们的 [TorchScript 入门](https://pytorch.org/tutorials/beginner/Intro_to_TorchScript_tutorial.html)教程。
## API 定义
...
...
@@ -85,7 +85,7 @@ def predict():
DenseNet 模型要求图像为尺寸为
`224 x 224`
的 3 通道 RGB 图像。我们还将使用所需的均值和标准差值对图像张量进行归一化。 您可以在上阅读有关它的更多信息。
我们将使用
`torchvision`
库中的
`transforms`
并建立一个转换管道,该转换管道可根据需要转换图像。
您可以在上阅读有关变换
[
的更多信息。
](
https://pytorch.org/docs/stable/torchvision/transforms.html
)
我们将使用
`torchvision`
库中的
`transforms`
并建立一个转换管道,该转换管道可根据需要转换图像。
[
您可以这里阅读有关转换的更多信息
](
https://pytorch.org/docs/stable/torchvision/transforms.html
)
。
```
py
import
io
...
...
@@ -281,7 +281,7 @@ $ FLASK_ENV=development FLASK_APP=app.py flask run
```
我们可以使用
[
请求
](
https://pypi.org/project/requests/
)
库向我们的应用发送 POST 请求:
我们可以使用
[
`requests`
](
https://pypi.org/project/requests/
)
库向我们的应用发送 POST 请求:
```
py
import
requests
...
...
@@ -305,9 +305,9 @@ resp = requests.post("http://localhost:5000/predict",
*
端点
`/predict`
假定请求中始终会有一个图像文件。 这可能并不适用于所有请求。 我们的用户可能发送带有其他参数的图像,或者根本不发送任何图像。
*
用户也可以发送非图像类型的文件。 由于我们没有处理错误,因此这将破坏我们的服务器。 添加显式的错误处理路径将引发异常,这将使我们能够更好地处理错误的输入
*
即使模型可以识别大量类别的图像,也可能无法识别所有图像。 增强实现以处理模型无法识别图像中的任何情况的情况。
*
我们在开发模式下运行 Flask 服务器,该服务器不适合在生产中进行部署。 您可以查看
本教程的
[
,以在生产环境中部署 Flask 服务器。
](
https://flask.palletsprojects.com/en/1.1.x/tutorial/deploy/
)
*
我们在开发模式下运行 Flask 服务器,该服务器不适合在生产中进行部署。 您可以查看
[
本教程
](
https://flask.palletsprojects.com/en/1.1.x/tutorial/deploy/
)
,以便在生产环境中部署 Flask 服务器。
*
您还可以通过创建一个带有表单的页面来添加 UI,该表单可以拍摄图像并显示预测。 查看类似项目的
[
演示
](
https://pytorch-imagenet.herokuapp.com/
)
及其
[
源代码
](
https://github.com/avinassh/pytorch-flask-api-heroku
)
。
*
在本教程中,我们仅展示了如何构建可以一次返回单个图像预测的服务。 我们可以修改服务以能够一次返回多个图像的预测。 此外,
[
服务流媒体
](
https://github.com/ShannonAI/service-streamer
)
库自动将对服务的请求排队,并将请求采样到微型批量中,这些微型批量可输入模型中。 您可以查看
[
本教程
](
https://github.com/ShannonAI/service-streamer/wiki/Vision-Recognition-Service-with-Flask-and-service-streamer
)
。
*
在本教程中,我们仅展示了如何构建可以一次返回单个图像预测的服务。 我们可以修改服务以能够一次返回多个图像的预测。 此外,
[
service-streamer
](
https://github.com/ShannonAI/service-streamer
)
库自动将对服务的请求排队,并将请求采样到微型批量中,这些微型批量可输入模型中。 您可以查看
[
本教程
](
https://github.com/ShannonAI/service-streamer/wiki/Vision-Recognition-Service-with-Flask-and-service-streamer
)
。
*
最后,我们鼓励您在页面顶部查看链接到的其他 PyTorch 模型部署教程。
**脚本的总运行时间**
:(0 分钟 1.232 秒)
...
...
new/pt-tut-17/38.md
浏览文件 @
1064c7ec
...
...
@@ -21,7 +21,7 @@
*
如何组合两种方法
*
保存和加载 TorchScript 模块
我们希望在完成本教程之后,您将继续学习
[
和
后续教程
](
https://pytorch.org/tutorials/advanced/cpp_export.html
)
,该教程将引导您完成一个从 C++ 实际调用 TorchScript 模型的示例。
我们希望在完成本教程之后,您将继续学习
[
后续教程
](
https://pytorch.org/tutorials/advanced/cpp_export.html
)
,该教程将引导您完成一个从 C++ 实际调用 TorchScript 模型的示例。
```
py
import
torch
# This is all you need to use both PyTorch and TorchScript!
...
...
@@ -77,7 +77,7 @@ print(my_cell(x, h))
1.
创建了一个子类
`torch.nn.Module`
的类。
2.
定义一个构造函数。 构造函数没有做很多事情,只是调用
`super`
的构造函数。
3.
定义了
`forward`
函数,该函数具有两个输入并返回两个输出。
`forward`
函数的实际内容并不是很重要,但它是一种伪造的
[
RNN 单元
格
](
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
)
,即,该函数应用于循环。
3.
定义了
`forward`
函数,该函数具有两个输入并返回两个输出。
`forward`
函数的实际内容并不是很重要,但它是一种伪造的
[
RNN 单元
](
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
)
,即,该函数应用于循环。
我们实例化了该模块,并制作了
`x`
和
`y`
,它们只是
`3x4`
随机值矩阵。 然后,我们使用
`my_cell(x, h)`
调用该单元格。 这依次调用我们的
`forward`
函数。
...
...
@@ -465,11 +465,11 @@ def forward(self,
```
如您所见,序列化保留了模块层次结构和我们一直在研究的代码。
也可以将模型加载到
[
中,例如
](
https://pytorch.org/tutorials/advanced/cpp_export.html
)[
到 C++
]
(https://pytorch.org/tutorials/advanced/cpp_export.html) 中
,以实现不依赖 Python 的执行。
如您所见,序列化保留了模块层次结构和我们一直在研究的代码。
[
也可以将模型加载到 C++ 中
](
https://pytorch.org/tutorials/advanced/cpp_export.html
)
,以实现不依赖 Python 的执行。
### 进一步阅读
我们已经完成了教程! 有关更多涉及的演示,
[
请查看 NeurIPS 演示
以
使用 TorchScript 转换机器翻译模型
](
https://colab.research.google.com/drive/1HiICg6jRkBnr5hvK2-VnMi88Vi9pUzEJ
)
。
我们已经完成了教程! 有关更多涉及的演示,
[
请查看 NeurIPS 演示
来
使用 TorchScript 转换机器翻译模型
](
https://colab.research.google.com/drive/1HiICg6jRkBnr5hvK2-VnMi88Vi9pUzEJ
)
。
**脚本的总运行时间**
:(0 分钟 0.269 秒)
...
...
new/pt-tut-17/39.md
浏览文件 @
1064c7ec
...
...
@@ -12,7 +12,7 @@ PyTorch 模型从 Python 到 C++ 的旅程由 [Torch 脚本](https://pytorch.org
小费
您可以在官方
[
火炬
脚本参考
](
https://pytorch.org/docs/master/jit.html
)
中找到这两种方法的完整文档以及使用方法的进一步指导。
您可以在官方
[
Torch
脚本参考
](
https://pytorch.org/docs/master/jit.html
)
中找到这两种方法的完整文档以及使用方法的进一步指导。
### 通过跟踪转换为 Torch 脚本
...
...
@@ -89,7 +89,7 @@ sm = torch.jit.script(my_module)
## 第 2 步:将脚本模块序列化为文件
跟踪或注释 PyTorch 模型后,一旦有了
`ScriptModule`
,就可以将其序列化为文件了。 稍后,您将能够使用 C++ 从此文件加载模块并执行它,而无需依赖 Python。 假设我们要序列化先前在跟踪示例中显示的
`ResNet18`
模型。 要执行此序列化,只需在模块上调用
[
保存
](
https://pytorch.org/docs/master/jit.html#torch.jit.ScriptModule.save
)
并为其传递文件名:
跟踪或注释 PyTorch 模型后,一旦有了
`ScriptModule`
,就可以将其序列化为文件了。 稍后,您将能够使用 C++ 从此文件加载模块并执行它,而无需依赖 Python。 假设我们要序列化先前在跟踪示例中显示的
`ResNet18`
模型。 要执行此序列化,只需在模块上调用
[
`save`
](
https://pytorch.org/docs/master/jit.html#torch.jit.ScriptModule.save
)
并为其传递文件名:
```
py
traced_script_module
.
save
(
"traced_resnet_model.pt"
)
...
...
@@ -295,4 +295,4 @@ tensor([-0.2698, -0.0381, 0.4023, -0.3010, -0.0448], grad_fn=<SliceBackward>)
*
[
PyTorch C++ API 文档
](
https://pytorch.org/cppdocs/
)
*
[
PyTorch Python API 文档
](
https://pytorch.org/docs/
)
与往常一样,如果您遇到任何问题或疑问,可以使用我们的
[
论坛
](
https://discuss.pytorch.org/
)
或
[
GitHub 问题
](
https://github.com/pytorch/pytorch/issues
)
进行联系。
\ No newline at end of file
与往常一样,如果您遇到任何问题或疑问,可以使用我们的
[
论坛
](
https://discuss.pytorch.org/
)
或
[
GitHub ISSUE
](
https://github.com/pytorch/pytorch/issues
)
进行联系。
\ No newline at end of file
new/pt-tut-17/40.md
浏览文件 @
1064c7ec
...
...
@@ -4,11 +4,11 @@
在本教程中,我们描述了如何将 PyTorch 中定义的模型转换为 ONNX 格式,然后在 ONNX 运行时中运行它。
ONNX 运行时是针对 ONNX 模型的以性能为中心的引擎,可在多个平台和硬件(Windows,Linux 和 Mac 以及 CPU 和 GPU 上)高效地进行推理。 事实证明,如
[
在
此处
](
https://cloudblogs.microsoft.com/opensource/2019/05/22/onnx-runtime-machine-learning-inferencing-0-4-release
)
所述,ONNX 运行时大大提高了多个模型的性能。
ONNX 运行时是针对 ONNX 模型的以性能为中心的引擎,可在多个平台和硬件(Windows,Linux 和 Mac 以及 CPU 和 GPU 上)高效地进行推理。 事实证明,如
[
此处
](
https://cloudblogs.microsoft.com/opensource/2019/05/22/onnx-runtime-machine-learning-inferencing-0-4-release
)
所述,ONNX 运行时大大提高了多个模型的性能。
对于本教程,您将需要安装
[
ONNX
](
https://github.com/onnx/onnx
)
和
[
ONNX 运行时
](
https://github.com/microsoft/onnxruntime
)
。 您可以使用
`pip install onnx onnxruntime`
获得 ONNX 和 ONNX 运行时的二进制版本。 请注意,ONNX 运行时与 Python 3.5 至 3.7 版本兼容。
`NOTE`
:本教程需要 PyTorch
`master`
分支,
可以按照
[
此处的说明进行安装
](
https://github.com/pytorch/pytorch#from-source
)
`NOTE`
:本教程需要 PyTorch
`master`
分支,
[
可以按照
此处的说明进行安装
](
https://github.com/pytorch/pytorch#from-source
)
```
py
# Some standard imports
...
...
@@ -182,7 +182,7 @@ img_out_y = ort_outs[0]
```
此时,模型的输出为张量。 现在,我们将处理模型的输出,以根据输出张量构造最终的输出图像,并保存图像。
从此处的超分辨率模型
[
的 PyTorch 实现中采用了后处理步骤。
](
https://github.com/pytorch/examples/blob/master/super_resolution/super_resolve.py
)
此时,模型的输出为张量。 现在,我们将处理模型的输出,以根据输出张量构造最终的输出图像,并保存图像。
采用了来自此处的
[
超分辨率模型的 PyTorch 实现
](
https://github.com/pytorch/examples/blob/master/super_resolution/super_resolve.py
)
的后处理步骤。
```
py
img_out_y
=
Image
.
fromarray
(
np
.
uint8
((
img_out_y
[
0
]
*
255.0
).
clip
(
0
,
255
)[
0
]),
mode
=
'L'
)
...
...
@@ -204,11 +204,11 @@ final_img.save("./_static/img/cat_superres_with_ort.jpg")
ONNX 运行时是跨平台引擎,您可以在多个平台上以及在 CPU 和 GPU 上运行它。
还可以使用 Azure 机器学习服务将 ONNX 运行时部署到云中以进行模型推断。 更多信息
[
此处
](
https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-onnx
)
。
还可以使用 Azure 机器学习服务将 ONNX 运行时部署到云中以进行模型推断。 更多信息
在
[
此处
](
https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-onnx
)
。
在上了解有关 ONNX 运行时性能
[
的更多信息。
](
https://github.com/microsoft/onnxruntime#high-performance
)
[
在这里了解有关 ONNX 运行时性能的更多信息
](
https://github.com/microsoft/onnxruntime#high-performance
)
。
有关 ONNX 运行时
[
的更多信息,请点击
](
https://github.com/microsoft/onnxruntime
)
。
有关 ONNX 运行时
的更多信息,
[
请点击这里
](
https://github.com/microsoft/onnxruntime
)
。
**脚本的总运行时间**
:(0 分钟 0.000 秒)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录