TensorFlow的前世和今生
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的前世和今生的更多相关文章
- OpenGL的前世和今生
这并不是一个恰当的题目,因为我主要想说的是OpenGL的今生,基于OpenGL3.x一种更现代化的方式.但是把前世和今生放在一起在语言上更加连贯,而且适当的了解过去,会帮助理解现在的OpenGL,以一 ...
- tensorflow 模型前向传播 保存ckpt tensorbard查看 ckpt转pb pb 转snpe dlc 实例
参考: TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式 TensorFlow 模型保存与恢复 snpe tensorflow 模型前向传播 保存ckpt tensor ...
- 利用tensorflow实现前向传播
import tensorflow as tf w1 = tf.Variable(tf.random_normal((2, 3), stddev=1, seed=1))w2 = tf.Variable ...
- 云计算与 OpenStack - 每天5分钟玩转 OpenStack(14)
“云计算” 算是近年来最热的词了.现在 IT 行业见面不说这三个字您都不好意思跟人家打招呼. 对于云计算,学术界有各种定义,大家有兴趣可以百度一下. CloudMan 这里主要想从技术的角度谈谈对云计 ...
- Dynamics AX Hostory
现在谈起Dynamics AX,在微软Dynamics系列产品当中,作为最受瞩目和最有前景的Dynamics套装产品线,很多人也许只知道它曾经由于资本市场的上市和并购,前后经历了三个“东家”.对于它长 ...
- 云计算openstack介绍
一.云计算的前世今生 所有的新事物都不是突然冒出来的,都有前世和今生.云计算也是IT技术不断发展的产物. 要理解云计算,需要对IT系统架构的发展过程有所认识. 请看下 IT系统架构的发展到目前为止大致 ...
- Ironic , Openstack Baremetal Hypervisor
Ironic , Openstack Baremetal Hypervisor,首发于UnitedStack Inc.. 转自: http://ju.outofmemory.cn/entry/4876 ...
- 云计算与 OpenStack
“云计算” 算是近年来最热的词了.现在 IT 行业见面不说这三个字您都不好意思跟人家打招呼. 对于云计算,学术界有各种定义,大家有兴趣可以百度一下. CloudMan 这里主要想从技术的角度谈谈对云计 ...
- onenstack 简介
一.云计算的前世今生 所有的新事物都不是突然冒出来的,都有前世和今生.云计算也是IT技术不断发展的产物. 要理解云计算,需要对IT系统架构的发展过程有所认识. 请看下 IT系统架构的发展到目前为止大致 ...
随机推荐
- Android 二次打包(封装)AAR实用指南
前言 上次文章Android SDK开发与使用的那些事儿说到如何在aar里集成导入的aar,也就是二次封装aar的问题,一带而过,难免不过瘾.在封装这条路上也遇到了不少坑,现在将此方法详细记录下来. ...
- 前端单元测试环境搭建 Karma Jasmine
Karma 官网On the AngularJS team, we rely on testing and we always seek better tools to make our life e ...
- 【眼见为实】自己动手实践理解数据库READ COMMITTED && MVCC
[READ COMMITTED] 首先设置数据库隔离级别为读已提交(READ COMMITTED): set global transaction isolation level READ COMMI ...
- 我的MBTI小测试
今天做了自己的MBTI测试,选了93道题版本的,测试结果是ESFP表演者型——有我在就有笑声.这个测试很有趣,我也觉得很神奇. 一.我的MBTI图形 二.才储分析:我的性格类型倾向为“ ESFP ”( ...
- SQL Server中【case...end】的用法
在SQL Server中 case...end 语句,一般有如下两种用法: 1.相当于C#中if...else,例: select CName,头衔=case when CLevel='A1' the ...
- kettle使用命令行传入数据库链接参数(ip、数据库、端口、用户、密码)执行job时子转换失败。
使用cmd 传参数执行 kettle job 遇到错误: 错误原因,无法找到文件.... 原来使用,通过目录指定转换,好处是:当以文件资源库保存时,可以直接将文件夹复制走,直接运行就可以,不需要单独针 ...
- Linux下的Mysql的双向同步
在主从复制的基础上实现双向同步 [更多参考] https://www.cnblogs.com/shuidao/p/3551238.html http://blog.csdn.net/i_bruce/a ...
- Office Online Server 2016 部署和配置
Office Online Server 2016 部署和配置https://wenku.baidu.com/view/65faf8de846a561252d380eb6294dd88d1d23d45 ...
- Analysis of Algorithms
算法分析 Introduction 有各种原因要求我们分析算法,像预测算法性能,比较不同算法优劣等,其中很实际的一条原因是为了避免性能错误,要对自己算法的性能有个概念. 科学方法(scientific ...
- 1、Node.js 我的开始+安装
内容:为什么开始学习node.js,需要安装哪些东西,及其安装过程 node.js的学习是按照菜鸟教程的node.js教程学习,学习这项技术主要是因为需要使用. 需要安装的东西:解释器,IDE(集成开 ...