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. Angular之 Scope和 Directive

    ---------------------------Scope-------------------------------- https://docs.angularjs.org/guide/sc ...

  2. 【转】OmniGraffle (一)从工具栏开始

    原文链接:http://www.jianshu.com/p/52f3ecbe8f2d OmniGraffle的软件布局和大多数图形类软件类似,中间是编辑区,左边是页面和对象组织的管理,右边是参数设置和 ...

  3. jekyll开发静态网站

    一.Ruby环境安装配置 首先下载ruby安装ruby download ,安装完ruby后,再安装rubyGems:运行gem update --system即可. 然后下载DevKit-mingw ...

  4. 个人总结-9-session的使用,十天免登陆

    昨天查看bootstrap,实现了登录和注册页面的重写. 今天准备加入session实现,十天免登陆等内容. 使用bootstrap直接套用标签页,以实现.

  5. net 4.0+EF6+Sqlite 使用,安装,打包

    开发 1.因为EF不支持Codefirst,开始可以使用SQL来进行开发. 部署安装 2.然后可以找到SQL转Sqlite工具(http://www.cnblogs.com/walkingp/arch ...

  6. SQLServer2008或SQLServer2008 R2没有智能提示解决方法

    如果没有智能提示,需要安装SqlcompletefreeSQL Server智能提示

  7. layui实现checkbox的目录树tree

    layui.use([ 'tree' ], function() {$ = layui.jquery;form = layui.form;//获取节点数据getTreeData();}); funct ...

  8. Python学习---Python的框架基础学习

    框架基础 框架实质: 所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 B/S结构的响应: import socket def handle_requ ...

  9. SQL连接的分类

    连接的分类 内连接 等值连接(INNER JOIN) 自然连接(NATURAL JOIN) 交叉连接(CROSS JOIN) 不等连接 外连接 左外连接(LEFT OUTER) 右外连接(RIGHT ...

  10. 泛型和 Any 类型

    泛型和 Any 类型 这两个类型看起来很相似,但是一定要小心两者的区别.他们区别在于 Any 类型会避开类型的检查,所以尽量少用最好不用.泛型一方面很灵活一方面也很安全,下面举个例子感受下两者的区别: ...