PyTorch大更新!谷歌出手帮助开发,正式支持TensorBoard | 附5大开源项目
大家又少了一个用TensorFlow的理由。
在一年一度的开发者大会F8上,Facebook放出PyTorch的1.1版本,直指TensorFlow“腹地”。
不仅宣布支持TensorFlow的可视化工具TensorBoard,还正式向工业界迈进,为生产环境改进了PyTorch处理分布式训练的方式。
而且,根据Facebook介绍,开发这一版本的过程中谷歌还帮了不少忙。
科技媒体TechCrunch评论称,虽然版本号只从1.0到1.1的变化,但依旧非常重要。
此外,围绕着打造“开发和协作的AI社区”的愿景,Facebook还介绍了5大开源工具。
同时,他们也分享了Facebook在自家程序中应用AI的情况,以及对AI研究的展望。
下面,我们一个个来看~
Pytorch大更新
与2018年12月正式发布的Pytorch1.0相比,这次发布的1.1版本提高了性能,并增加了新的模型理解和可视化工具,来提高可用性,还提供了新的API。
其中,最重要的功能是支持TensorBoard,它是谷歌为TensorFlow打造的可视化工具,能够帮助开发人员评估和调试模型。
根据Facebook介绍,在开发这一功能的时候,他们与谷歌有非常密切的合作。
现在,Pytorch使用一个简单的“from torch.utils.TensorBoard import SummaryWriter”命令来支持TensorBoard。
其他的更新还有:
Jit编译器:改进了Just-in-time(JIT)编译。包括各种错误的修复以及TorchScript中扩展的功能,例如对字典、用户类和属性的支持。
新API:支持布尔张量,更好地支持自定义循环神经网络。
分布式训练:改进了常见模型(如CNN)的性能,增加了对多设备模块的支持,包括在仍使用分布式数据并行(DDP)的情况下跨GPU分割模型的能力,以及对并非所有参数都用于每次迭代的模块的支持(如控制流,如自适应SoftMax等)。
关于本次更新,Pytorch在下面的GitHub文档中进行了详细的解释,请收好传送门:
https://github.com/pytorch/pytorch/releases/tag/v1.1.0
对于这次更新,PyTorch的产品经理Joe Spisa表示,他们并不是要将PyTorch变成金钱,而是希望PyTorch拥有一个社区。
他表示,现在这个社区正开始从一个以研究为中心的社区向生产型的社区转变,而且转变速度也在快速增长。
PyTorch路线图的下一步是,以更少的比特数运行神经网络,实现更快的CPU和GPU性能,并支持AI从业者创建命名张量维数。
5大开源工具
为了更好地建设AI社区,今年的F8大会上,Facebook还开源了5大工具:Ax、BoTorch、idb、Memscout、Mvfst。
Ax
Ax是一个可访问的通用自适应实验平台,用于管理、部署和自动化实验。
该平台利用BoTorch提供的最新进展,使开发人员更容易优化其产品和基础设施。Ax还降低了贝叶斯优化(Bayesian optimization)、多臂老虎机(multiarmed bandit)和其他复杂实验技术的门槛,帮助研究人员将想法从研究转向生产。
地址:https://ax.dev/
BoTorch
BoTorch是PyTorch上的贝叶斯优化软件库,为Ax优化模型参数提供支持。
BoTorch将模块化设计和PyTorch的自动微分特性基于蒙特卡罗的提取函数使用相结合,显著提高了开发人员的效率。
BoTorch具有与任何PyTorch模型集成的能力,在贝叶斯优化和深度学习中实现高度灵活性、便利的研究。
地址:https://botorch.org/
以上两种工具已经在Facebook内部大规模部署,Facebook用它们改善信息流推荐和视频播放。
idb
idb(iOS development bridge)是自动化iOS模拟器和设备的命令行界面。它提供的简单原始的API,轻松构建复杂的工作流。idb还有客户机-服务器架构,可以更容易地在一组机器之间分配工作。
地址:https://github.com/facebook/idb
Memscout
Memscout是一个分析工具,它是jemalloc内存分配器的伴侣。Memscout为正在运行的流程的解释jemalloc统计文件(JSON格式)原始数据,并突出显示相关指标。
它会发现分配器的低效率,并提供对流程内存分配模式的深入观察,然后提供可用于快速诊断与内存相关的性能问题的统计信息。
地址:https://github.com/facebookincubator/memscout
Mvfst
Mvfst是QUIC传输协议的实现。mvfst的目标是构建最灵活、高性能的传输协议,让应用程序可以适应互联网上和数据中心内的用例。
它的特性包括流多路复用、0-RTT连接的建立,更好的损失恢复、从头开始的安全性以及灵活的拥塞控制。
地址:https://github.com/facebookincubator/mvfst
用AI改善用户体验
Facebook信息流可以说是国外的“朋友圈”,里面有太多的假新闻和有害信息,扎克伯格也因此受到美国国会质询。
所以Facebook的AI工具一个重要的用途就是用来识别和处理社交网络上有害的言论、照片和视频。
一个具体例子是新的“最近邻”算法。Facebook用这种算法发现色情暴力图片比以前快8.5倍。
另一个例子是开源工具包LASER。Facebook用它来训练单一模型以理解大量不同语言,而不必为每一种语言使用不同的模型,它可以检测用户是否发布违反社交网络政策的言论。
在视频中发现有害信息的难度比照片高出几个数量级,Facebook的新技术能将其分解为短片段,去掉其中冗余和不相关的内容。这种更有针对性的分析和训练使得AI理解视频更快,更准确。
One More Thing
目前,Facebook正在大力发展自监督学习技术,将未标记数据与少量标记数据结合使用,以提高机器学习的准确性。
所谓的“自监督学习”就是我们说的“无监督学习”。
Facebook首席AI科学家Yann LeCun说,把“自监督”说成“无监督”是具有误导性的,因为自监督学习比监督学习使用更多的监督信号,并且远远超过强化学习。
自监督学习在自然语言处理方面取得了巨大成功。在LeCun看来,在图像和视频上使用这项技术未来几年ML和AI的最大挑战。
— 完 —
PyTorch大更新!谷歌出手帮助开发,正式支持TensorBoard | 附5大开源项目的更多相关文章
- .NET开发人员值得关注的七个开源项目 .
NET开发人员值得关注的七个开源项目 软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET开发阵营对开源工具的 ...
- iOS开发资源:推送通知相关开源项目--PushSharp、APNS-PHP以及Pyapns等
PushSharp (github) PushSharp是一个实现了由服务器端向移动客户端推送消息的开源C#库,支持 iOS (iPhone/iPad APNS). Android (C2DM/GC ...
- Android开发:为什么我们从来不去感谢开源项目维护者?
今天我想谈一谈,为什么我们很少去感谢开源项目维护者: 一.这样的项目我也可以做啊 “蛤?这项目对我来说也太简单了吧.” “我一周之内就能做一个更好的版本出来.” 确实,很多人都可以在 Hackatho ...
- 【C/C++开发】值得学习的C语言开源项目
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...
- 华为方舟编译器正式支持C语言:完全开源
投递人 itwriter 发布于 2020-10-14 19:08 评论(15) 有1938人阅读 原文链接 2019 年 8 月底,华为方舟编译器(OpenArkCompiler)正式开源,迈出了跨 ...
- jeecg智能开发平台参与-2013年度中国优秀开源项目评比
JEECG正在参与<2013年度中国十大优秀开源项目> 评比,如果大家觉得JEECG还不错, 请投出你宝贵的一票,给我们以支持吧!!! [目前排名第8位] https://code.csd ...
- 我发起了一个 .Net Core 平台上的 开源项目 ShadowDomain 用于 热更新
大家好, 我发起了一个 .Net Core 平台上的 开源项目 ShadowDomain 用于 热更新 . 简单的说, 原理就是 类似 Asp.net 那样 让 当前 WebApp 运行在一个 A ...
- 前端开发的使用服务器环境开源项目 D2Server 可替代Apache
推荐一个前端开发的使用服务器环境开源项目 D2Server 可替代Apache 攻欲善其事,必先利其器.前端开发,编辑器我们有了Sublime Text2,配置Server环境用……你可能会选择A ...
- 推荐前端开发使用的服务器环境开源项目 D2Server 可替代Apache
攻欲善其事,必先利其器.前端开发,编辑器我们有了Sublime Text2,配置Server环境用……你可能会选择Apache,为什么呢?因为能供选择的选项实在太少.而现在,我向大家推荐一个针对前端开 ...
随机推荐
- 01.JS块级作用域与let
1.块级作用域 什么是: 在一个代码块(括在一对花括号中的一组语句)中定义的所需变量(与let配合使用)并在代码块的外部是不可见的. 为什么: 在ES6之前,函 ...
- VM安装Linux Centos7.0虚拟机
一.准备工作 1.安装VMware 官网https://www.vmware.com/cn.html 2.准备centos7的镜像文件 官网下载链接:http://isoredirect.centos ...
- 分割文件和数据(linux)
在某些情况下,必须把文件分割成多个更小的片段.如今我们分割文件的目的比如:提高可读性.生成日志.通过Email发送文件等等. 假设我们有一个erro.log的测试文件,其大小为14M.你可以将该文件分 ...
- App崩溃监控
常见马虎导致崩溃 1 数组越界: 2 多线程问题,在子线程刷新UI: 3 主线程无响应,主线程超过系统规定的时间没有响应,就会被watchdog杀掉: 4 野指针: 崩溃信息的收集却并没有那么简单.因 ...
- 组件化思路:以selection为例子,使用prop-types实现组件化控制,重用
需求 书接上文,UI 积累之select section 这里又来两个需求了. 当我点击选择了option后,我应该看到的是我选择的option的内容 多例重用,即同样是个selection,我只是需 ...
- 【设计思想】MVC模式
MVC 模式 MVC 模式(三层架构模式) MVC模式(Model-View-Controller, MVC): 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图( ...
- mybatis深入之动态查询和连接池介绍
mybatis深入之动态查询和连接池介绍 一.mybatis条件查询 在mybatis前述案例中,我们的查询条件都是确定的.但在实际使用的时候,我们的查询条件有可能是动态变化的.例如,查询参数为一个u ...
- Python基础数据类型2
lst.extend([1,2,3]) # 扩展 --- 迭代添加 整型和布尔值不能迭代print(lst) lst1 = [1,2,3]lst2 = [4,5,6]lst3 = lst1 + lst ...
- 集群搭建_02_集群多机版安装 HDFS HA+Federation-YARN
1.配置hosts 至少四个节点(机器) 每个节点的hosts文件都要配置这些 10.10.64.226 SY-0217 10.10.64.234 SY-0225 10.10.64.235 SY-02 ...
- python迭代器、装饰器和生成器
装饰器 1.装饰器的作用 1. 装饰器作用:本质是函数(装饰其他函数)就是为其他函数添加其他功能 2. 装饰器必须准寻得原则: 1)不能修改被装饰函数的源代码 2)不能修改被装饰函数的调用方式 3.实 ...