pytorch简介
诞生
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简介的更多相关文章
- [PyTorch 学习笔记] 1.1 PyTorch 简介与安装
PyTorch 的诞生 2017 年 1 月,FAIR(Facebook AI Research)发布了 PyTorch.PyTorch 是在 Torch 基础上用 python 语言重新打造的一款深 ...
- Pytorch快速入门及在线体验
本文搭配了Pytorch在线环境,可以直接在线体验. Pytorch是Facebook 的 AI 研究团队发布了一个基于 Python的科学计算包,旨在服务两类场合: 1.替代numpy发挥GPU潜能 ...
- pytorch 入门指南
两类深度学习框架的优缺点 动态图(PyTorch) 计算图的进行与代码的运行时同时进行的. 静态图(Tensorflow <2.0) 自建命名体系 自建时序控制 难以介入 使用深度学习框架的优点 ...
- PyTorch专栏(八):微调基于torchvision 0.3的目标检测模型
专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60分钟入门 PyTorch入门 PyTorch自动微分 PyTorch神经网络 P ...
- PyTorch专栏(六): 混合前端的seq2seq模型部署
欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/ 欢迎关注PyTorch官方中文教程站: http://pytorch.panchuang.net/ 专栏目录: 第一 ...
- PyTorch专栏(五):迁移学习
专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60分钟入门 PyTorch入门 PyTorch自动微分 PyTorch神经网络 P ...
- PyTorch专栏(二)
专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60min入门 PyTorch 入门 PyTorch 自动微分 PyTorch 神经 ...
- PyTorch专栏(一)
专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60min入门 PyTorch 入门 PyTorch 自动微分 PyTorch 神经 ...
- PyTorch专栏开篇
目前研究人员正在使用的深度学习框架不尽相同,有 TensorFlow .PyTorch.Keras等.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领域,并获取了极好的效果. ...
随机推荐
- usb驱动程序小结(六)
title: usb驱动程序小结 tags: linux date: 2018/12/20/ 17:59:51 toc: true --- usb驱动程序小结 linux中为usb驱动也提供了一套总线 ...
- linux,pthread(转)
互斥量.条件变量与pthread_cond_wait()函数的使用,详解(二) 1.Linux“线程” 进程与线程之间是有区别的,不过linux内核只提供了轻量进程的支持,未实现线程模型.Linu ...
- 携程apollo系列-客户端集成
本文讲解如何在 Java 程序中集成 Apollo 配置, 主要涉及到一些基础用法. 对于一些高级用法, 比如如何加密/解密配置项 (可用于数据库密码配置), 如何动态切换数据源地址,如何动态切换日志 ...
- Mysql漏洞修复方法思路及注意事项
[系统环境] 系统环境:Red Hat Enterprise Linux Server release 5.4 (Tikanga) + 5.7.16 MySQL Community Server ...
- jQuery UI弹出新窗体
借助jqueryUI 的Dialog 在隐藏的div中嵌入Iframe 改变iframe的路径 如果项目经常用到弹出新窗体,则利用模板,把此代码和html 放入父页面中,实现父级调用, <in ...
- Trie树的二三事QWQ
写在前面 Trie,又称字典树,是一种用于实现字符串快速检索的多叉树结构.Trie的每个结点都拥有若干字符指针,若在插入或检索字符串时扫描到一个字符c,就沿着当前节点的c这个字符指针,走向该指针指向的 ...
- Centos 05 系统目录讲解
本节内容 1.linux目录结构 2.主目录功能简介 3.重要子目录 linux目录结构 在linux里面,逻辑上所有目录只有一个顶点,根是所有目录的起点. 根下面是类似一个倒挂的树一样的层次结构 可 ...
- 410 for 循环 运算 改变循环的控制流 死循环 遍历数组 定义方法 有名函数匿名函数 定义函数的方法取值 date math 局部变量 函数 局部与全局变量 次幂/随机数/取绝对值/向上取整/平方根
for(1.表达式1;2.表达式2;3.表达式3){ 4.循环体语句; } 先执行1 ,在执行2, 表达式, 如果2结果为false,退出循环 如果2是true 执行4 在执行3 执行2 举例打印1- ...
- webpack4之踩坑总结
一.先放上项目目录结构 二.问题总结 1.关于process.env.NODE_ENV问题 刚开始的时候,我想在配置文件中使用到这个环境变量,却发现一直获取不到值,晕晕晕,查了资料才知道,这个环境变量 ...
- Synchronized 和 Volatile
Synchronized : 称为重量级锁,经过优化后,也没那么重了 一.CAS 1.CAS:Compare and Swap, 翻译成比较并交换. 2.java.util.concurrent包中借 ...