Python 张量与动态神经网络 PyTorch 1.0 发布了。

此版本的主要亮点包括 JIT 编译、全新并且更快的分布式库与 C++ 前端等。

JIT 编译器

JIT(Just-In-Time)是一组编译工具,用于弥合 PyTorch 研究与生产之间的差距。

它允许创建可以在不依赖 Python 解释器的情况下运行的模型,并且可以更积极地进行优化。使用程序注解可以将现有模型转换为 PyTorch 可以直接运行的 Python 子集 Torch Script。模型代码仍然是有效的 Python 代码,可以使用标准的 Python 工具链进行调试。

PyTorch 1.0 提供了 torch.jit.trace 和 torch.jit.script 两种方式使现有代码与 JIT 兼容。一经注解,Torch Script 代码便可以被积极地优化,并且可以被序列化以在新的 C++ API 中使用,并且 C++ API 不依赖于 Python。

# Write in Python, run anywhere!@torch.jit.scriptdef RNN(x, h, W_h, U_h, b_h): y = [] for t in range(x.size(0)): h = torch.tanh(x[t] @ W_h + h @ U_h + b_h) y += [h] return torch.stack(y), h

全新并且更快的分布式库

torch.distributed 软件包和 torch.nn.parallel.DistributedDataParallel 模块采用了重新设计的全新分布式库,亮点包括:

  • 新的 torch.distributed 是性能驱动的,并且对所有后端完全异步操作,包括:Gloo、NCCL 和 MPI。
  • 显着的分布式数据并行性能改进,尤其适用于网络较慢的主机,如基于以太网的主机。
  • 为 torch.distributed 包中的所有分布式集合操作添加异步支持。
  • 在 Gloo 后端添加了一些 CPU 操作:send、recv、reduce、all_gather、gather 与 scatter。
  • 在 NCCL 后端添加 barrier 操作。
  • 在 NCCL 后端添加 new_group 支持。

C++ 前端

C++ 前端是 PyTorch 后端的纯 C++ 接口,它遵循已建立的 Python 前端的 API 和体系结构,旨在实现高性能、低延迟和裸机 C++ 应用的研究。它提供了 torch.nn、torch.optim、torch.data 和 Python 前端的其它组件的等价物。下边是两种语言前端的简单比较:

PythonC++import torchmodel = torch.nn.Linear(5, 1)optimizer = torch.optim.SGD(model.parameters(), lr=0.1)prediction = model.forward(torch.randn(3, 5))loss = torch.nn.functional.mse_loss(prediction, torch.ones(3, 1))loss.backward()optimizer.step()#include <torch/torch.h>torch::nn::Linear model(5, 1);torch::optim::SGD optimizer(model->parameters(), /*lr=*/0.1);torch::Tensor prediction = model->forward(torch::randn({3, 5}));auto loss = torch::mse_loss(prediction, torch::ones({3, 1}));loss.backward();optimizer.step();

注意,目前 C++ API 还处于 unstable 阶段。

PyTorch 1.0 发布,JIT、全新的分布式库、C++ 前端的更多相关文章

  1. eoLinker上线两周年+ AMS V4.0 发布:全新UI界面,带来领先的API开发管理解决方案!

    2018年7月,eoLinker 发布了<eoLinker AMS 2018年年中用户调研问卷>,前后经历一周的时间,共收集到超过1000份有效调查问卷.超过300个有效改进意见. eoL ...

  2. AgileConfig - 轻量级配置中心1.2.0发布,全新的UI✨✨✨

    AgileConfig自发布以来有个"大问题"-UI太丑.因为当初这个项目是给自己用的,连UI界面都没有,全靠手动在数据库里改配置.后来匆匆忙忙使用bootstrap3简单的码了一 ...

  3. lib-qqwry v1.0 发布 nodejs解析纯真IP库(qqwry.dat)

    lib-qqwry是当初学习node时用来练手的一个模块,用来解析纯真IP库的 现在发一个v1.0版本弥补我当时稚嫩的代码. 意外收获是,整理代码后发现,相比v0.x版本 急速模式下的效率提升大概20 ...

  4. Pytorch 1.0升级到Pytorch 1.1.0

    Pytorch 1.0Pytorch 1.0于2018-12-8发布,详见https://github.com/pytorch/pytorch/releases/tag/v1.0.0 主要更新JIT全 ...

  5. 基于Java图片数据库Neo4j 3.0.0发布 全新的内部架构

    基于Java图片数据库Neo4j 3.0.0发布 全新的内部架构 Neo4j 3.0.0 正式发布,这是 Neo4j 3.0 系列的第一个版本.此版本对内部架构进行了全新的设计;提供给开发者更强大的生 ...

  6. 官宣,PyTorch 1.0 稳定版本现已推出

    简评:快来一起快乐地学习吧. 随着 PyTorch 生态系统和社区继续为开发人员提供有趣的新项目和教育资源,今天(12 月 7日)在 NeurIPS 会议上发布了 PyTorch 1.0 稳定版.研究 ...

  7. Apache Flume 1.7.0 发布,日志服务器

    Apache Flume 1.7.0 发布了,Flume 是一个分布式.可靠和高可用的服务,用于收集.聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型.这是一个可靠.容错的服务. 本次更 ...

  8. Redisson-Parent 2.5.0 和 3.0.0 发布

    Redisson-Parent 2.5.0 和 3.0.0 发布了,Redisson 是基于 Redis 服务之上构建的分布式.可伸缩的 Java 数据结构,高级的 Redis 客户端. Rediss ...

  9. EasyCriteria 3.0 发布

    EasyCriteria 3.0 发布了,这是一个全新的版本,进行了大量的重构.官方发行说明请看:http://uaihebert.com/?p=1898 EasyCriteria 是一个轻量级的框架 ...

随机推荐

  1. InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [2048,38] rhs shape= [2048,2]

    做tensorflow object detection 中,清空下checkpoint就可以啦

  2. 电脑cpu100%的原因

    这个本地系统占很高的cpu,主要原因是我关机之后,没有关透又重启了,就是管了机之后等10几秒再开机会好

  3. 同时启动多个Tomcat 和 Linux部署多个tomcat

    a.减压2份tomcat文件 b.修改其中一个tomcat 的http访问端口(默认为8080端口,这里改为8091) c.修改其中一个tomcat 的Shutdown端口(默认为8005端口,这里改 ...

  4. jms版本

    Java消息服务是一个在 Java标准化组织(JCP)内开发的标准(代号JSR 914). 2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1 ...

  5. wamp 安装redis扩展

    phpredis扩展下载地址  http://windows.php.net/downloads/pecl/snaps/redis/ 1.选择redis DLL文件扩展 phpinfo 查看VC版本 ...

  6. uWSGI和WSGI区别

    uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换.WSGI是一种Web服务器网关接口.它是一 ...

  7. MyLineNumberReader

    package com.itheima; import java.io.FileReader; import java.io.IOException; import java.io.Reader; p ...

  8. xshell 5 书写汉字乱码

    使用win10安装xshell5后发现使用xshell连接虚拟机后,能识别中文但是无法输入中文了   控制面板--语言   删除除中文输入法之外的所有输入法和美式键盘 然后就可以正常输入中文了,为了英 ...

  9. Js笔记(对象,构造函数,原型,原型链,继承)及一些不熟悉的语法

    对象的特性: 1.唯一标识性,即使完全不一样的对象,内存地址也不同,所以他们不相等 2.对象具有状态,同一个对象可能处在不同状态下 3.对象具有行为,即对象的状态可能因为他的行为产生变迁 Js直到es ...

  10. 树形DP(记忆化搜索) HYSBZ - 1509

    题目链接:https://vjudge.net/problem/HYSBZ-1509 我参考的证明的论文:8.陈瑜希<多角度思考 创造性思维>_百度文库  https://wenku.ba ...