TensorFlow的前世和今生

TensorFlow是一个开放源码的软件库,用于跨一系列任务的数据流处理编程。TensorFlow是一个符号化的数学应用库,广泛用于机器学习,例如神经网络。在谷歌公司内部,TensorFlow大量应用于基础研究和产品研发,几乎要取代了它的前身DistBelief(非开源项目)。

TensorFlow是由谷歌大脑团队开发,最初在谷歌内部使用。2015年11月9日,在Apache 2.0开源许可证下,TensorFlow正式发布。

DistBelief

从2011开始,谷歌大脑建立了一个基于深度学习神经网络的专用机器学习系统。在谷歌母公司AlphaBet的研究和商业应用中,DistBelief的使用迅速增长。谷歌公司指派了多位计算机科学家,包括Jeff Dean,来简化和重构DistBelief的代码库,使之成为一个更快、更健壮的应用库,从而成就了TensorFlow。在2009年,由Geoffrey Hinton领导的团队已经实施了广义反向传播和其他改进,使得能够以相当高的精度生成神经网络,例如能将传统语音识别中的错误减少了25%。

TensorFlow

TensorFlow是谷歌大脑的第二代系统,版本1.0于2017年2月11日发布,虽然发行版只在单个设备上运行,但是TensorFlow实际上可以运行在多个CPU和GPU上(带有可选的CUDA和SYCL扩展,用于图形处理单元GPU上的通用计算)。如今,TensorFlow在64位Linux、MacOS、Windows上可用,在移动计算平台包括Android和iOS上也有相应的版本。

灵活的体系结构使得TensorFlow能方便地跨平台部署(CPUs,GPUs,TPUs),从桌面电脑、大规模服务器集群,到移动终端和边缘设备。

TensorFlow计算表达为有状态的数据流图。TensorFlow的名称来源于基于被称作Tensor张量的多维数组上的神经网络运算。在2016年6月,Github上的1500个存储库(开源项目)引用了TensorFlow,其中只有5个来自谷歌,说明TensorFlow已经被广泛地接受。

张量处理单元(TPU)

在2016年5月,谷歌发布了张量处理单元(TPU),这是一种专用集成电路(硬件芯片),专门为机器学习而构建,并为TensorFlow量身定制。TPU是一种可编程人工智能加速器,设计用于提供低精度算术(例如8位)的高吞吐量运算,并且是面向使用或运行模型,而不是用于训练模型。谷歌宣布,他们在内部数据中心内运行TPU已经超过一年了,并且发现使用TPU进行机器学习性能更好、能耗更优。

在2017年5月,谷歌发布了第二代TPU,可以应用到谷歌计算引擎。第二代TPU提供高达180万亿次的性能,并且当被组织成64个TPU集群时,提供高达1.15亿亿次运算能力。

2018年2月,谷歌宣布他们在谷歌云平台上开发了beta版的TPU。

轻量级TensorFlow

在2017年5月,谷歌发布了一个专门用于Android开发的软件栈TensorFlow Lite,从智能手机操作系统Android Oreo版本开始可用。

应用

谷歌于2015年10月26日正式发布RankBrain,由TensorFlow提供后端支持。

机器学习速成课程(MLCC)

2018年3月1日,谷歌发布了其机器学习速成课程(MLCC)。最初设计用来帮助谷歌员工掌握实用的人工智能和机器学习基本原理,在最终向公众发布课程之前,谷歌在全球几个城市推出了免费的TensorFlow研讨会。

特性

TensorFlow 提供稳定版本的Python API和C API,也提供C++、 Go、Java、JavaScript和Swift (早期版本)等开发语言的API,但是不保证后向兼容。第三方提供了C#、Haskell、Julia、R、Scala、Rust和 OCaml等语言包。

TensorFlow应用

在以TensorFlow为基础的应用程序中,有自动图像字幕软件DeepDream。现在,RankBrain 能处理大量的搜索和查询,逐渐取代和补充传统的基于静态算法的搜索结果。

清如许 编译

原文网址:

https://en.wikipedia.org/wiki/TensorFlow

TensorFlow的前世和今生的更多相关文章

  1. OpenGL的前世和今生

    这并不是一个恰当的题目,因为我主要想说的是OpenGL的今生,基于OpenGL3.x一种更现代化的方式.但是把前世和今生放在一起在语言上更加连贯,而且适当的了解过去,会帮助理解现在的OpenGL,以一 ...

  2. tensorflow 模型前向传播 保存ckpt tensorbard查看 ckpt转pb pb 转snpe dlc 实例

    参考: TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式 TensorFlow 模型保存与恢复 snpe tensorflow 模型前向传播 保存ckpt  tensor ...

  3. 利用tensorflow实现前向传播

    import tensorflow as tf w1 = tf.Variable(tf.random_normal((2, 3), stddev=1, seed=1))w2 = tf.Variable ...

  4. 云计算与 OpenStack - 每天5分钟玩转 OpenStack(14)

    “云计算” 算是近年来最热的词了.现在 IT 行业见面不说这三个字您都不好意思跟人家打招呼. 对于云计算,学术界有各种定义,大家有兴趣可以百度一下. CloudMan 这里主要想从技术的角度谈谈对云计 ...

  5. Dynamics AX Hostory

    现在谈起Dynamics AX,在微软Dynamics系列产品当中,作为最受瞩目和最有前景的Dynamics套装产品线,很多人也许只知道它曾经由于资本市场的上市和并购,前后经历了三个“东家”.对于它长 ...

  6. 云计算openstack介绍

    一.云计算的前世今生 所有的新事物都不是突然冒出来的,都有前世和今生.云计算也是IT技术不断发展的产物. 要理解云计算,需要对IT系统架构的发展过程有所认识. 请看下 IT系统架构的发展到目前为止大致 ...

  7. Ironic , Openstack Baremetal Hypervisor

    Ironic , Openstack Baremetal Hypervisor,首发于UnitedStack Inc.. 转自: http://ju.outofmemory.cn/entry/4876 ...

  8. 云计算与 OpenStack

    “云计算” 算是近年来最热的词了.现在 IT 行业见面不说这三个字您都不好意思跟人家打招呼. 对于云计算,学术界有各种定义,大家有兴趣可以百度一下. CloudMan 这里主要想从技术的角度谈谈对云计 ...

  9. onenstack 简介

    一.云计算的前世今生 所有的新事物都不是突然冒出来的,都有前世和今生.云计算也是IT技术不断发展的产物. 要理解云计算,需要对IT系统架构的发展过程有所认识. 请看下 IT系统架构的发展到目前为止大致 ...

随机推荐

  1. 从零开始安装、编译、部署 Docker

    简介 主要介绍如何从基础系统debian部署docker关于docker基础知识在 相关资料 里有链接 安装docker 1.使用root用户身份添加apt源添加public key使docker的安 ...

  2. maven配置以及在eclipse Mars2中的使用

    通过1.maven的作用 maven也是一种项目管理工具,主要能够将项目中的jar包移除,通过索引的方式调动本地或者远程仓库中的包,从而实现项目的构建.另一个作用能够应用于大型项目的分模块开发. 2. ...

  3. 通过注解实现Spring 声明式事务管理

    小Alan接着上一篇Spring事务管理入门与进阶做一些补充,如果对Spring事务管理还不了解的可以看看上一篇文章. 实例 在我们开始之前,至少有两个数据库表是至关重要的,在事务的帮助下,我们可以实 ...

  4. linux fack 文件系统修复命令

    [简介] fsck命令被用于检查并且试图修复文件系统中的错误.当文件系统发生错误四化,可用fsck指令尝试加以修复. [选项]必要参数 -a 非互交模式,自动修复 -c 检查是否存在有损坏的区块. - ...

  5. SQL查询语句执行的逻辑顺序

    一.简介 大家都知道SELECT语句是用来查询数据表中的数据的,构成SELECT语句的还有各种元素(where.from.group by等),不同元素又代表了不同的处理逻辑,那么这些元素在执行查询时 ...

  6. Tomcat的HTTPS配置及HTTP自动跳转配置

    1.生成证书 (1)在jdk的安装目录\bin\keytool.exe下打开keytool.exe 在命令行中输入以下命令: keytool -genkeypair -alias 以上命令将生产一对非 ...

  7. 在 Deepin 中搭建 GitLab

    入职半个月了,一直在接受业务知识以及企业文化知识的培训,下周终于要开始上岗入手项目了.由于公司使用自己搭建的 GitLab 服务作为项目版本控制器,所以我决定学习一下 GitLab,由于这货跟 Git ...

  8. bzoj4037 [HAOI2015]数字串拆分

    Description 你有一个长度为n的数字串.定义f(S)为将S拆分成若干个1~m的数的和的方案数,比如m=2时,f(4)=5,分别为4=1+1+1+1你可以将这个数字串分割成若干个数字(允许前导 ...

  9. 2、Sublime Text 3 快捷键(实用,快速换行等)

    选择类 Ctrl+D :选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3:选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函 ...

  10. 2018-2019-2 网络对抗技术 20165322 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165322 Exp3 免杀原理与实践 目录 实验内容与步骤 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...