PyTorch 1.0 正式版已经发布了

PyTorch 1.0 同时面向产品化 AI 和突破性研究的发展,「我们在 PyTorch1.0 发布前解决了几大问题,包括可重用、性能、编程语言和可扩展性。」Facebook 人工智能副总裁 Jerome Pesenti 曾在PyTorch 开发者大会上表示。

随着 PyTorch 生态系统及社区中有趣新项目及面向开发者的教育资源不断增加,今天 Facebook 在 NeurIPS 大会上发布了 PyTorch 1.0 稳定版。该版本具备生产导向的功能,同时还可以获得主流云平台的支持。

现在,研究人员及工程师可以轻松利用这一开源深度学习框架的新功能,包括可在 eager execution 和 graph execution 模式之间无缝转换的混合前端、改进的分布式训练、用于高性能研究的纯 C++ 前端,以及与云平台的深度集成。

PyTorch 1.0 将加速 AI 从原型到生产部署的工作流程,并使这一进程更加容易开始。仅仅在过去的几个月里,就不断有人通过广泛普及的新教学课程上手 PyTorch,一些专家还构建了创新型项目,将这一框架扩展到从自然语言处理到概率编程的多个领域。

不断壮大的 PyTorch 社区

PyTorch 于 2017 年初首发,之后迅速成为 AI 研究者广泛使用的框架。PyTorch 灵活、动态的编程环境及对用户友好的界面使其非常适用于快速实验。其社区的迅速壮大有目共睹。如今,PyTorch 已经成为 GitHub 上增长第二快的开源项目,在过去的 12 个月里贡献者增加了 1.8 倍。

为对社区做出回馈,Facebook 将继续提供简单易学的教育课程,通过这些课程帮助开发者掌握用 PyTorch 创建、训练及部署机器学习模型的技巧。

教育课程将 AI 开发者凝聚在一起

去年,Udacity 和 Facebook 上线了一门新课程《Introduction to Deep Learning with PyTorch》和 PyTorch 挑战赛(PyTorch Challenge Program),它为持续 AI 教育提供奖学金。在课程发布后的短短几周内,数万学生积极参与该在线项目。此外,该教育课程开始通过现实世界的会面(meet-up)使开发者社区变得更有凝聚力,这种 meet-up 在全世界展开,从英国到印度尼西亚都有这样的开发者聚会。

完整课程可在 Udacity 网站上免费获取,之后开发者可以在更高级的 AI 纳米学位项目中继续 PyTorch 学习。

除了在线教育课程,fast.ai 等组织还提供过软件库,支持开发者学习如何使用 PyTorch 构建神经网络。fastai 库(简化了训练快速、准确的神经网络的流程)在发布两个月后即在 GitHub 获得 10000 星。

新项目拓展 PyTorch

PyTorch 已被应用到从图像识别到机器翻译的多个用例中。因此可以看到开发者社区各种项目对 PyTorch 开发的拓展和支持。其中一些项目有:

  • Horovod:分布式训练框架,让开发人员可以轻松地使用单个 GPU 程序,并快速在多个 GPU 上训练。
  • PyTorch Geometry:PyTorch 的几何计算机视觉库,提供一组路径和可区分的模块。
  • TensorBoardX:一个将 PyTorch 模型记录到 TensorBoard 的模块,允许开发者使用可视化工具训练模型。

此外,Facebook 内部团队还构建并开源了多个 PyTorch 项目,如 Translate(用于训练基于 Facebook 机器翻译系统的序列到序列模型的库)。对于想要快速启动特定领域研究的 AI 开发者来说,PyTorch 支持项目的生态系统使他们能够轻松了解行业前沿研究。希望随着 PyTorch 不断发展,社区能够出现更多新的项目。

从云端启动

为了使 PyTorch 更加易于获取且对用户友好,PyTorch 团队继续深化与云平台和云服务的合作,如 AWS、谷歌云平台、微软 Azure。最近,AWS 上线了 Amazon SageMaker Neo,支持 PyTorch,允许开发者使用 PyTorch 构建机器学习模型,训练模型,然后将它们部署在云端或边缘设备,且性能提升高达 2 倍。开发者现在可以在谷歌云平台上创建一个新的深度学习虚拟机实例来尝试使用。

此外,微软 Azure 机器学习服务现在也可以广泛使用了,它允许数据科学家在 Azure 上无缝训练、管理和部署 PyTorch 模型。使用 Azure 服务的 Python SDK,Python 开发者可以利用所需的分布式计算能力,使用 PyTorch 1.0 规模化训练模型,并加速从训练到生产的过程。

AI 开发者可通过云服务或本地安装来轻松使用 PyTorch 1.0,并遵循 PyTorch 官网上更新版分步教程执行任务,比如使用混合前端部署序列到序列模型,训练简单的 chatbot 等等。PyTorch 1.0 版本说明参见 PyTorch GitHub:https://github.com/pytorch/pytorch/releases

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • pytorch + visdom CNN处理自建图片数据集的方法

    环境 系统:win10 cpu:i7-6700HQ gpu:gtx965m python : 3.6 pytorch :0.3 数据下载 来源自Sasank Chilamkurthy 的教程: 数据:下载链接. 下载后解压放到项目根目录: 数据集为用来分类 蚂蚁和蜜蜂.有大约120个训练图像,每个类有75个验证图像. 数据导入 可以使用 torchvision.datasets.ImageFolder(root,transforms) 模块 可以将 图片转换为 tensor. 先定义transf

  • 对PyTorch torch.stack的实例讲解

    不是concat的意思 import torch a = torch.ones([1,2]) b = torch.ones([1,2]) torch.stack([a,b],1) (0 ,.,.) = 1 1 1 1 [torch.FloatTensor of size 1x2x2] 以上这篇对PyTorch torch.stack的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • pytorch 转换矩阵的维数位置方法

    例如: preds = to_numpy(preds)#preds是[2985x16x2] preds = preds.transpose(2, 1, 0)#preds[2x16x2985] 以上这篇pytorch 转换矩阵的维数位置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • PyTorch CNN实战之MNIST手写数字识别示例

    简介 卷积神经网络(Convolutional Neural Network, CNN)是深度学习技术中极具代表的网络结构之一,在图像处理领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于CNN的. 卷积神经网络CNN的结构一般包含这几个层: 输入层:用于数据的输入 卷积层:使用卷积核进行特征提取和特征映射 激励层:由于卷积也是一种线性运算,因此需要增加非线性映射 池化层:进行下采样,对特征图稀疏处理,减少数据运算量. 全连接层:通常在CNN的尾部进行重新拟合,减

  • mac安装pytorch及系统的numpy更新方法

    安装Pytorch 在pytorch官网上选择相应选项,我的是OS X, pip, python2.7, none CUDA. (之所以用python2.7只是觉得现在还有好多代码用2.7写的,用3+版本经常会由于语法更新而报错.而且用3+的话sublime还要配下python3 的building system......) 打开terminal,输入: sudo pip install http://download.pytorch.org/whl/torch-0.3.0.post4-cp2

  • 使用pytorch进行图像的顺序读取方法

    产生此次实验的原因:当我使用pytorch进行神经网络的训练时,需要每次向CNN传入一组图像,并且这些图片的存放位置是在两个文件夹中: A文件夹:图片1a,图片2a,图片3a--图片1000a B文件夹:图片1b, 图片2b,图片3b--图片1000b 所以在每个循环里,我都希望能从A中取出图片Na,同时从B文件夹中取出对应的图片Nb. 测试一:通过pytorch官方文档中的dataloader搭配python中的迭代器iterator dataset = dset.ImageFolder( r

  • pytorch 调整某一维度数据顺序的方法

    在pytorch中,Tensor是以引用的形式存在的,故而并不能直接像python交换数据那样 a = torch.Tensor(3,4) a[0],a[1] = a[1],a[0] # 这会导致a的结果为a=(a[1],a[1],a[2]) # 而非预期的(a[1],a[0],a[2]) 这是因为引用赋值导致的,在交换过程,如下所示,当b的值赋值与a的时候,因为tmp指针与a是同一变量的不同名,故而tmp的内容也会变为b. # 交换a,b a,b = b,a # 等价于 tmp = a a =

  • pytorch对可变长度序列的处理方法详解

    主要是用函数torch.nn.utils.rnn.PackedSequence()和torch.nn.utils.rnn.pack_padded_sequence()以及torch.nn.utils.rnn.pad_packed_sequence()来进行的,分别来看看这三个函数的用法. 1.torch.nn.utils.rnn.PackedSequence() NOTE: 这个类的实例不能手动创建.它们只能被 pack_padded_sequence() 实例化. PackedSequence

  • 对pytorch网络层结构的数组化详解

    最近再写openpose,它的网络结构是多阶段的网络,所以写网络的时候很想用列表的方式,但是直接使用列表不能将网络中相应的部分放入到cuda中去. 其实这个问题很简单的,使用moduleList就好了. 1 我先是定义了一个函数,用来根据超参数,建立一个基础网络结构 stage = [[3, 3, 3, 1, 1], [7, 7, 7, 7, 7, 1, 1]] branches_cfg = [[[128, 128, 128, 512, 38], [128, 128, 128, 512, 19]

  • 浅谈pytorch和Numpy的区别以及相互转换方法

    如下所示: # -*- coding: utf-8 -*- # @Time : 2018/1/17 16:37 # @Author : Zhiwei Zhong # @Site : # @File : Numpy_Pytorch.py # @Software: PyCharm import torch import numpy as np np_data = np.arange(6).reshape((2, 3)) # numpy 转为 pytorch格式 torch_data = torch.

随机推荐