诞生

1.2017年1月,Facebook人工智能研究院(FAIR)团队在GitHub上开源了pyTorch,并迅速占领GitHub热度榜榜首。

常见深度学习框架简介

Theano

1、Theano最初诞生于蒙特利尔大学LISA实验室,于2008年开始开发,是第一个有较大影响力的Python深度学习框架;Theano是一个Python库,可用于定义、优化和计算数学表达式,特别是多维数组(numpy.ndarray),在解决包含大量数据的问题时,使用Theano编程可实现比手写C语句更快的速度,二通过GPU加速,Theano甚至比基于CPU计算的C语言快上好几个数量级;
2、不足:调试困难,构建图慢;
3、奠定:2017年9月28日发布"Theano is Dead",退出历史舞台,但是奠定了深度学习框架的设计方向——以计算图为框架的核心,采用GPU加速计算。

TensorFlow

1、2015年11月10日,Google宣布退出全新的机器学习开源工具TensorFlow,TensorFlow最初是由Google机器智能研究部门的Google Brain团队开发,基于Google 2011年开发的深度学习基础架构DistBelief构建起来的;
2、应用:机器学习和深度神经网络,是一个非常基础的系统,因此可以应用于众多领域;
3、不足:
过于复杂的系统设计,TensorFlow在GitHub代码仓库的总代码量超过100万行;
频繁变动的接口;
接口设计过于晦涩难懂;
文档混乱脱节;
4、点评:不完美但最流行的深度学习框架,社区强大,适合生产环境。

Caffe/Caffe2

1、Caffe的全称Convolutional Architecture for Fast Feature Embedding,他是一个清晰、高效的深度学习框架,核心语言是C++,支持命令行、Python和MATLAB接口,可以在CPU上运行也可以在GPU上运行;
2、Caffe的优点是简介快捷,缺点是缺少灵活性,不同于Keras由于太多封装导致灵活性丧失,Caffe灵活性的缺失主要是因为它的设计;
3、Caffe的作者从加州伯克利分校毕业后加入了Google,参与过TensorFlow的开发,后来离开Google加入FAIR,担任工程主管,并开发了Caffe2;Caffe2是一个兼具表现力、速度和模块性的开源深度学习框架;设计追求轻量级,强调便携性;
4、点评:文档不够完善,但性能优异,几乎全平台支持(Caffe2),适合生产环境。

CNTK

1、2015年8月,微软公司在CodePlex上宣布由微软研究院开发的计算网络工具集CNTK将开源,5个月后,2016年1月25日,微软公司在他们的GitHub仓库上正式开源了CNTK;
2、CNTK性能比Caffe、Theano、TensorFlow等主流工具要强,CNTK支持CPU和GPU模式,和TensorFlow/Theano一样,它把神经网络描述成一个计算图的结构,叶子结点代表输入或者网络参数,其他结点代表计算步骤;
3、社区不够活跃,但是性能突出,擅长语音方面的相关研究。

pytorch

简洁:pytorch的设计追求最少的封装,尽量避免重复造轮子,pytorch的设计遵循tensor->variable(autograd)->nn.Module三个由低到高的抽象层次,分别代表高维数组(张量)、自动求导(变量)和神经网络(层/模块),这三个抽象之间联系紧密,可以同时进行修改和操作;
速度:pytorch的灵活性不以速度为代价;
易用:pytorch是所有框架中面向对象设计的最优雅的一个;
活跃的社区:pytorch提供了完成的文档,循序渐进的指南,作者亲自维护的论坛(https://discuss.pytorch.org/)供用户交流和求。

2018-10-04 21:59:38

pytorch简介的更多相关文章

  1. [PyTorch 学习笔记] 1.1 PyTorch 简介与安装

    PyTorch 的诞生 2017 年 1 月,FAIR(Facebook AI Research)发布了 PyTorch.PyTorch 是在 Torch 基础上用 python 语言重新打造的一款深 ...

  2. Pytorch快速入门及在线体验

    本文搭配了Pytorch在线环境,可以直接在线体验. Pytorch是Facebook 的 AI 研究团队发布了一个基于 Python的科学计算包,旨在服务两类场合: 1.替代numpy发挥GPU潜能 ...

  3. pytorch 入门指南

    两类深度学习框架的优缺点 动态图(PyTorch) 计算图的进行与代码的运行时同时进行的. 静态图(Tensorflow <2.0) 自建命名体系 自建时序控制 难以介入 使用深度学习框架的优点 ...

  4. PyTorch专栏(八):微调基于torchvision 0.3的目标检测模型

    专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60分钟入门 PyTorch入门 PyTorch自动微分 PyTorch神经网络 P ...

  5. PyTorch专栏(六): 混合前端的seq2seq模型部署

    欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/ 欢迎关注PyTorch官方中文教程站: http://pytorch.panchuang.net/ 专栏目录: 第一 ...

  6. PyTorch专栏(五):迁移学习

    专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60分钟入门 PyTorch入门 PyTorch自动微分 PyTorch神经网络 P ...

  7. PyTorch专栏(二)

    专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60min入门 PyTorch 入门 PyTorch 自动微分 PyTorch 神经 ...

  8. PyTorch专栏(一)

    专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60min入门 PyTorch 入门 PyTorch 自动微分 PyTorch 神经 ...

  9. PyTorch专栏开篇

    目前研究人员正在使用的深度学习框架不尽相同,有 TensorFlow .PyTorch.Keras等.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领域,并获取了极好的效果. ...

随机推荐

  1. JDBC Template

    JDBC Template 1. Spring JDBC Spring框架对JDBC的简单封装,提供了一个JDBCTemplate对象用来简化JDBC的开发 步骤: 导入jar包 创建JDBCTemp ...

  2. 四十三、Linux 线程——线程同步之线程信号量

    43.1 信号量 43.1.1 信号量介绍 信号量从本质上是一个非负整数计数器,是共享资源的数目,通常被用来控制对共享资源的访问 信号量可以实现线程的同步和互斥 通过 sem_post() 和 sem ...

  3. C#利用VUDP.cs开发网络通讯应用例程

    VClassLib-CS项目Github地址:https://github.com/velscode/VClassLib-CS VUDP文档地址:https://github.com/velscode ...

  4. windows连接oracle数据库

    本以为很简单,结果发现还是有些坑啊 1. 安装cx_oracle pip install cx_oracle 或者用whi文件,这样你能知道版本号那些https://www.lfd.uci.edu/~ ...

  5. Django之AJAX

    一.预备知识JSON python中的json: json.dumps( )      json.loads( ) JavaScript中的json:JSON.stringify( )       J ...

  6. linux下堆溢出unlink的一个简单例子及利用

    最近认真学习了下linux下堆的管理及堆溢出利用,做下笔记:作者作为初学者,如果有什么写的不对的地方而您又碰巧看到,欢迎指正. 本文用到的例子下载链接https://github.com/ctfs/w ...

  7. 我的pwn笔记

    0.64位程序参数一次保存在RDI,RSI,RDX,RCX,R8和 R9,具体见图 windows64位调用约定 1.<_libc_csu_init>有一些万能gadget,汇编如下 #! ...

  8. 【原创】大数据基础之Azkaban(1)简介、源代码解析

    Azkaban3.45 一 简介 1 官网 https://azkaban.github.io/ Azkaban was implemented at LinkedIn to solve the pr ...

  9. SSH和SSM对比总结

    当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界 ...

  10. Solidity属性和方法的访问权限

    属性:默认是internal的类型,外部是不可以访问调用的,如果加上public的话,那么是会自动为这个属性加上一个get的方法的,比如uint   public _age; => functi ...