PyTorch介绍

        PyTorch是一个年轻的框架。2017年1月28日,PyTorch 0.1版本正式发布,这是Facebook公司在机器学习和科学计算工具Torch的基础上,针对Python语言发布的全新的深度学习工具包。PyTorch类似NumPy,并且支持GPU,有着更高级而又易用的功能,可以用来快捷地构建和训练深度神经网络。一经发布,PyTorch便受到深度学习和开发者们广泛关注和讨论。经过一年多的发展,目前PyTorch已经成为机器学习和深度学习者重要的研究和开发工具之一。
        2017年7月,Facebook和微软宣布,推出开放的Open Neural Network Exchange(ONNX,开放神经网络交换) 格式,ONNX为深度学习模型提供了一种开源格式,模型可以在不同深度学习框架下进行转换。亚马逊的AWS接着加入进来,2017年10月,INTEL、NVIDIA、AMD、IBM、Qualcomm、ARM、联发科和华为等厂商纷纷加入ONNX阵营,ONNX生态圈正式形成。ONNX生态系统除了原本支持的开源软件框架Caffe2、PyTorch和CNTK也包含MXNet和TesorFlow。PyTorch是一套以研究为核心的框架,但是用PyTorch开发的算法模型可以通过ONNX转换,可用于其他主流深度学习框架。
        2017年8月,PyTorch 0.2版本发布,增加分布式训练、高阶导数、自动广播法则等众多新特性。
        2017年12月,PyTorch 0.3版本发布,性能改善,对计算速度进行优化,同时一个重大的更新是模型转换,支持DLPack、支持ONNX格式,可以把PyTorch模型转换到Caffe2、CoreML、CNTK、MXNet、TensorFlow中。
        2018年4月25日,PyTorch官方在github上发布了0.4.0版本,新版本做了非常多的改进,其中最重要的改进是官方支持Windows系统。
        2018年10月3日,首届PyTorch开发者大会上,FaceBook正式发布PyTorch 1.0预览版。PyTorch 1.0框架主要迎来了三大更新:第一,添加了一个新的混合前端,支持从Eager模式到图形模式的跟踪和脚本模型,以弥合研究和生产部署之间的差距;第二,增加了经过改进的torch.distributed库,使得开发者可以在Python和C++环境中实现更快的训练;第三,增加了针对关键性能研究的Eager模式C++接口。在PyTorch 1.0版本中,Facebook将现有PyTorch框架的灵活性与Caffe2(2018年5月宣布Caffe2并入PyTorch) 的生产能力结合,提供从研究到AI研究产品化的无缝对接。
        可以看到PyTorch更新频率是很快的,可见FaceBook对其支持力度。开源社区和机器学习从业者也对PyTorch响应热烈。面对众多的深度学习框架, 为什么要选择PyTorch?PyTorch有哪些鲜明的特点呢?

  1. PyTorch使用Python作为开发语言,使得开发者能接入广大的Python生态圈的库和软件。同时,在PyTorch开发中,数据处理类型类似数据计算包Numpy的矩阵类型,代码风格类型机器学习包scikit-learn,方便广大的机器学习者进入深度学习这个新的领域。
  2. 目前大多数开源框架(比如TensorFlow、Caffe2、CNTK、Theano等)采用静态计算图, 而PyTorch采用动态计算图。静态计算图要求对网络模型先定义再运行,一次定义多次运行。动态计算图可以在运行过程中定义,运行的时候构建,可以多次构建多次运行。静态图的实现代码冗长,不直观。动态图的实现简洁优雅,直观明了。动态计算图的另一个显著优点是调试方便,可随时查看变量的值。由于模型可能会比较复杂,如果能直观地看到变量的值,就能够快速构建好模型。
  3. PyTorch的API设计简洁优雅,方便易用。PyTorch的API设计思想来源于Torch,Torch的API设计以灵活易用而闻名,Keras作者就是受Torch的启发而开发了Keras。PyTorch有种使用Keras的快感,就是来源于此。相比而言,TensorFlow就臃肿难用多了。
  4. PyTorch支持ONNX格式,补齐了最后一块短板——生产环境的部署。生产环境包括有移动设备、嵌入式设备和云端设备。原本因PyTorch过于灵活,不太合适部署生产环境和大规模部署,但将深度学习应用部署到生产环境变得越来越重要,ONNX的横空出世解决了这一难题。可以用PyTorch做研究,然后用ONNX转换为Caffe2部署到生产环境。值得一提的是,Caffe2也是Facebook开发的,是Caffe的最新版本。

        PyTorch开发语言简洁优雅,方便快速构建模型,同时调试的功能便于发现和改进错误。可以说,PyTorch是入手深度学习的最佳利器。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3D感知巨头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值