32
32
33
33
## 前端API
34
34
35
- ### \[ BETA \ ] NumPy 兼容 torch.fft模块
35
+ ### [ Beta ] NumPy 兼容 torch.fft模块
36
36
37
37
FFT相关功能通常用于各种科学领域,如信号处理。虽然PyTorch历来支持一些与FFT相关的功能,但1.7版本增加了一个新的torch.fft模块,该模块使用与NumPy相同的API实现FFT相关功能。
38
38
@@ -56,13 +56,13 @@ tensor([12.+16.j, -8.+0.j, -4.-4.j, 0.-8.j])
56
56
57
57
* [ 文稿] ( https://pytorch.org/docs/stable/fft.html#torch-fft )
58
58
59
- ### \[ BETA \ ] C++支持变压器NN模块
59
+ ### [ Beta ] C++支持变压器NN模块
60
60
61
61
自[ PyTorch 1.5以来] ( https://pytorch.org/blog/pytorch-1-dot-5-released-with-new-and-updated-apis/ ) ,我们继续保持python和C++前端API之间的奇偶校验。此更新允许开发人员使用来自C++前端的nn.transformer模块抽象。此外,开发人员不再需要从python/JIT中保存模块并加载到C++中,因为它现在可以直接在C++中使用。
62
62
63
63
* [ 文稿] ( https://pytorch.org/cppdocs/api/classtorch_1_1nn_1_1_transformer_impl.html#_CPPv4N5torch2nn15TransformerImplE )
64
64
65
- ### \[ BETA \ ] torch.set_deterministic
65
+ ### [ Beta ] torch.set_deterministic
66
66
67
67
可重现性(位对位确定性)可能有助于在调试或测试程序时识别错误。为了促进可重现性,PyTorch 1.7添加了` torch.set_deterministic(bool) ` 函数,该函数可以指导PyTorch操作员在可用时选择确定性算法,并在操作可能导致非确定性行为时抛出运行时错误。默认情况下,此函数控制的标志为假,行为没有变化,这意味着默认情况下,PyTorch可以非确定性地实现其操作。
68
68
@@ -81,7 +81,7 @@ tensor([12.+16.j, -8.+0.j, -4.-4.j, 0.-8.j])
81
81
82
82
## 性能评测
83
83
84
- ### \[ BETA \ ] 堆栈跟踪已添加到分析器
84
+ ### [ Beta ] 堆栈跟踪已添加到分析器
85
85
86
86
用户现在不仅可以在分析器输出表中看到运算符名称/输入,还可以看到运算符在代码中的位置。工作流程几乎不需要改变就能利用这种能力。用户像以前一样使用[ autograd分析器] ( https://pytorch.org/docs/stable/autograd.html#profiler ) ,但具有可选的新参数:` with_stack ` 和` group_by_stack_n ` 。注意:定期分析运行不应使用此功能,因为它增加了大量开销。
87
87
@@ -90,36 +90,36 @@ tensor([12.+16.j, -8.+0.j, -4.-4.j, 0.-8.j])
90
90
91
91
## 分布式训练和RPC
92
92
93
- ### \[ STABLE \ ] torchelastic 现在捆绑到 pytorch docker 图像中
93
+ ### [ Stable ] torchelastic 现在捆绑到 pytorch docker 图像中
94
94
95
95
Torchelastic 提供了当前 ` torch.distributed.launch ` CLI 的严格超集,并添加了容错和弹性功能。 如果用户对容错不感兴趣,他们可以通过设置 ` max_restarts=0 ` 来获得准确的功能/行为奇偶校验,并增加自动分配的 ` RANK ` 和 ` MASTER_ADDR|PORT ` 的便利(与在 ` torch.distributed.launch ` 中手动指定相比)。
96
96
97
97
通过将` torchelastic ` 捆绑在与PyTorch相同的docker图像中,用户可以立即开始尝试TorchElastic,而无需单独安装` torchelastic ` 。除了方便之外,在现有的Kubeflow分布式PyTorch运算符中添加对弹性参数的支持时,这项工作也不错。
98
98
99
99
* [ 用法示例以及如何开始] ( https://pytorch.org/elastic/0.2.0/examples.html )
100
100
101
- ### \[ BETA \ ] 支持DDP中不均匀的数据集输入
101
+ ### [ Beta ] 支持DDP中不均匀的数据集输入
102
102
103
103
PyTorch 1.7引入了一个新的上下文管理器,与使用` torch.nn.parallel.DistributedDataParallel ` 训练的模型一起使用,以便在不同进程中进行数据集大小不均匀的训练。此功能在使用DDP时具有更大的灵活性,并防止用户必须手动确保数据集大小在不同过程中相同。使用此上下文管理器,DDP将自动处理不均匀的数据集大小,这可以防止在训练结束时出现错误或挂起。
104
104
105
105
* [ RFC] ( https://github.com/pytorch/pytorch/issues/38174 )
106
106
* [ 文稿] ( https://pytorch.org/docs/stable/generated/torch.nn.parallel.DistributedDataParallel.html#torch.nn.parallel.DistributedDataParallel.join )
107
107
108
- ### \[ BETA \ ] NCCL可靠性-异步错误/超时处理
108
+ ### [ Beta ] NCCL可靠性-异步错误/超时处理
109
109
110
110
过去,由于集体陷入困境,NCCL的训练运行会无限期地挂起,给用户带来非常不愉快的体验。如果检测到潜在的挂起,此功能将中止卡住的集体,并抛出异常/崩溃过程。当与torchelastic(可以从最后一个检查点恢复训练过程)一起使用时,用户可以在分布式训练中具有更大的可靠性。此功能完全选择加入,位于需要显式设置的环境变量后面,以启用此功能(否则用户将看到与以前相同的行为)。
111
111
112
112
* [ RFC] ( https://github.com/pytorch/pytorch/issues/46874 )
113
113
* [ 文稿] ( https://pytorch.org/docs/stable/distributed.html?highlight=init_process_group#torch.distributed.init_process_group )
114
114
115
- ### \[ BETA \ ] torchscript ` RPC_REMOTE ` 和` RPC_SYNC `
115
+ ### [ Beta ] torchscript ` RPC_REMOTE ` 和` RPC_SYNC `
116
116
117
117
` torch.distributed.rpc.rpc_async ` 在之前的版本中已在torchscript中可用。对于PyTorch 1.7,此功能将扩展到其余两个核心RPC API,` torch.distributed.rpc.rpc_sync ` 和` torch.distributed.rpc.remote ` 。这将完成torchscript中支持的主要RPC API,它允许用户在torchscript中使用现有的python RPC API(在脚本函数或脚本方法中,它释放了python全局解释器锁),并可能提高多线程环境中的应用程序性能。
118
118
119
119
* [ 文稿] ( https://pytorch.org/docs/stable/rpc.html#rpc )
120
120
* [ 例句] ( https://github.com/pytorch/pytorch/blob/58ed60c259834e324e86f3e3118e4fcbbfea8dd1/torch/testing/_internal/distributed/rpc/jit/rpc_test.py#L505-L525 )
121
121
122
- ### \[ BETA \ ] 支持 torchscript 的分布式优化器
122
+ ### [ Beta ] 支持 torchscript 的分布式优化器
123
123
124
124
PyTorch为训练算法提供了广泛的优化器,这些优化器已作为python API的一部分被反复使用。然而,用户通常希望使用多线程训练而不是多进程训练,因为它在大规模分布式训练中提供了更好的资源利用率和效率(例如分布式模型并行)或任何基于RPC的训练应用程序)。用户以前无法使用分布式优化器执行此操作,因为我们需要摆脱python全局解释器锁(GIL)限制来实现这一目标。
125
125
@@ -155,7 +155,7 @@ with dist_autograd.context() as context_id:
155
155
* [ RFC] ( https://github.com/pytorch/pytorch/issues/46883 )
156
156
* [ 文稿] ( https://pytorch.org/docs/stable/rpc.html#module-torch.distributed.optim )
157
157
158
- ### \[ BETA \ ] 基于RPC的剖析增强
158
+ ### [ Beta ] 基于RPC的剖析增强
159
159
160
160
PyTorch 1.6中首次引入了将PyTorch分析器与RPC框架结合使用的支持。在PyTorch 1.7中,进行了以下增强:
161
161
@@ -168,7 +168,7 @@ PyTorch 1.6中首次引入了将PyTorch分析器与RPC框架结合使用的支
168
168
* [ 设计文档] ( https://github.com/pytorch/pytorch/issues/39675 )
169
169
* [ 例句] ( https://pytorch.org/tutorials/recipes/distributed_rpc_profiling.html )
170
170
171
- ### \ [ Prototype\ ] WINDOWS支持分布式训练
171
+ ### [ Prototype] WINDOWS支持分布式训练
172
172
173
173
PyTorch 1.7为Windows平台上的` DistributedDataParallel ` 和集体通信提供了原型支持。在此版本中,支持仅涵盖基于Gloo的` ProcessGroup ` 和` FileStore ` 。
174
174
@@ -196,7 +196,7 @@ model = DistributedDataParallel(local_model, device_ids=[rank])
196
196
197
197
PyTorch Mobile支持[ iOS] ( https://pytorch.org/mobile/ios ) 和[ Android] ( https://pytorch.org/mobile/android/ ) ,[ Cocoapods] ( https://cocoapods.org/ ) 和[ JCenter] ( https://mvnrepository.com/repos/jcenter ) 分别提供二进制包。您可以在[ 此处] ( https://pytorch.org/mobile/home/ ) 了解有关PyTorch Mobile的更多信息。
198
198
199
- ### \[ BETA \ ] PYTORCH移动缓存分配器用于性能改进
199
+ ### [ Beta ] PYTORCH移动缓存分配器用于性能改进
200
200
201
201
在一些移动平台上,如Pixel,我们观察到内存被更积极地返回到系统中。这导致频繁的页面故障,因为PyTorch是一个功能框架,无法为运营商保持状态。因此,对于大多数操作,每次执行时都会动态分配输出。为了改善由此导致的性能惩罚,PyTorch 1.7为CPU提供了一个简单的缓存分配器。分配器按tensor大小缓存分配,目前只能通过PyTorch C++ API使用。缓存分配器本身由客户端拥有,因此分配器的生命周期也由客户端代码维护。然后,这种客户端拥有的缓存分配器可以与作用域保护` c10::WithCPUCachingAllocatorGuard ` 一起使用,以便在该范围内使用缓存分配。** 示例用法:**
202
202
@@ -225,7 +225,7 @@ c10::CPUCachingAllocator caching_allocator;
225
225
226
226
## torchvision
227
227
228
- ### \[ STABLE \ ] 变换现在支持 Tensor 输入、批处理计算、GPU和torchscript
228
+ ### [ Stable ] 变换现在支持 Tensor 输入、批处理计算、GPU和torchscript
229
229
230
230
torchvision变换现在从` nn.Module ` 继承,可以进行火炬脚本并应用于火炬tensor输入以及PIL图像。它们还支持具有批处理尺寸的Tensors,并在CPU/GPU设备上无缝工作:
231
231
@@ -267,7 +267,7 @@ out_image2 = scripted_transforms(tensor_image)
267
267
* 转换多波段火炬tensor图像(超过3-4个通道)
268
268
* torchscript与您的模型一起转换,用于部署** 注意:** torchscript支持的例外情况包括` Compose ` 、` RandomChoice ` 、` RandomOrder ` 、` Lambda ` 以及应用于PIL图像(如` ToPILImage ` )。
269
269
270
- ### \[ STABLE \ ] 用于JPEG和PNG格式的原生图像IO
270
+ ### [ Stable ] 用于JPEG和PNG格式的原生图像IO
271
271
272
272
torchvision 0.8.0引入了JPEG和PNG格式的原生图像读写操作。这些运算符支持torchscript,并以` uint8 ` 格式返回` CxHxW ` tensor,因此现在可以成为您在C++环境中部署模型的一部分。
273
273
@@ -288,11 +288,11 @@ tensor_image = decode_image(raw_data)
288
288
scripted_read_image = torch.jit.script(read_image)
289
289
```
290
290
291
- ### \[ STABLE \ ] 视网膜检测模型
291
+ ### [ Stable ] 视网膜检测模型
292
292
293
293
此版本为视网膜网添加了预训练的模型,该模型具有来自[ 密集物体检测] ( https://arxiv.org/abs/1708.02002 ) 的[ 焦距损失] ( https://arxiv.org/abs/1708.02002 ) 的ResNet50主干。
294
294
295
- ### \[ BETA \ ] 新视频阅读器API
295
+ ### [ Beta ] 新视频阅读器API
296
296
297
297
此版本引入了新的视频阅读抽象,可以对视频的迭代进行更精细的控制。它支持图像和音频,并实现了迭代器接口,以便与迭代工具等其他python库互操作。
298
298
@@ -330,15 +330,15 @@ for frame in takewhile(lambda x: x["pts"] < 5, reader):
330
330
331
331
随着这个版本,torchaudio正在扩大对模型和[ 端到端应用程序] ( https://github.com/pytorch/audio/tree/master/examples ) 的支持,增加了wav2letter训练管道和端到端文本到语音和源分离管道。请在[ github] ( https://github.com/pytorch/audio/issues/new?template=questions-help-support.md ) 上提交问题,以提供有关他们的反馈。
332
332
333
- ### \[ STABLE \ ] 语音识别
333
+ ### [ Stable ] 语音识别
334
334
335
335
在上一个版本中添加了用于语音识别的wav2letter模型的基础上,我们现在添加了一个带有LibriSpeech数据集的[ wav2letter训练管道示例] ( https://github.com/pytorch/audio/tree/master/examples/pipeline_wav2letter ) 。
336
336
337
- ### \[ STABLE \ ] 文本到语音
337
+ ### [ Stable ] 文本到语音
338
338
339
339
为了支持文本到语音应用程序,我们根据[ 该存储库] ( https://github.com/fatchord/WaveRNN ) 的实现,添加了一个基于WaveRNN模型的声码器。最初的实现是在“高效的神经音频合成”中引入的。我们还提供了一个[ WaveRNN训练管道示例] ( https://github.com/pytorch/audio/tree/master/examples/pipeline_wavernn ) ,该[ 管道] ( https://github.com/pytorch/audio/tree/master/examples/pipeline_wavernn ) 使用本版本中添加到torchaudio的LibriTTS数据集。
340
340
341
- ### \[ STABLE \ ] 源头分离
341
+ ### [ Stable ] 源头分离
342
342
343
343
随着ConvTasNet模型的加入,基于论文“Conv-TasNet:超越语音分离的理想时间频率大小屏蔽”,torchiaudio现在也支持源分离。wsj-mix数据集提供了[ ConvTasNet训练管道示例] ( https://github.com/pytorch/audio/tree/master/examples/source_separation ) 。
344
344
0 commit comments