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. Android 录制视频

    Activity代码: package eoe.demo.Media; import java.io.File; import java.io.IOException; import android. ...

  2. [算法练习]ZigZag Conversion

    题目说明: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows ...

  3. MooseFS安装部署

    环境信息 Master服务器 dev04 chunkserver服务器 dev02.dev03.dev04 metalogger服务器 dev03 mount客户端 dev01.dev02 安装前下载 ...

  4. 2 模拟登录_Post表单方式(针对chinaunix有效,针对csdn失效,并说明原因)

    参考精通Python网络爬虫实战 首先,针对chinaunix import urllib.request #原书作者提供的测试url url="http://bbs.chinaunix.n ...

  5. Redis(一):centos下安装。

    yum install gcc-cc++ wget http://download.redis.io/releases/redis-4.0.2.tar.gz .tar.gz /usr/local cd ...

  6. Oracle PL/SQL Dev工具(破解版)被植入勒索病毒的安全预警及自查通告

    [问题描述] 近日,有项目组遇到了勒索软件攻击:勒索代码隐藏在Oracle PL/SQL Dev软件中(网上下载的破解版),里面的一个文件afterconnet.sql被黑客注入了病毒代码.这个代码会 ...

  7. leetcode Ch2-Dynamic Programming II

    一. Longest Valid Parentheses 方法一.一维DP class Solution { public: int longestValidParentheses(string s) ...

  8. 集合、深浅copy

    集合set: 集合也和列表数组一样有增加,但是集合是真正的没有顺序的  所以集合无法查找的,并且集合的外观你看着好像是字典和列表的组合,因为它是用字典的括号一样 ,但是又是里面并没有键值对  只是一个 ...

  9. 实现UIView的无限旋转动画(非CALayer动画)

    实现UIView的无限旋转动画(非CALayer动画) 效果: 素材: 源码: // // ViewController.m // Animation // // Created by YouXian ...

  10. 020.2.2 runtime类

    基本不用,简单看一下就行了 1.属于单例的一个实例,可以通过getRuntime()获取对象Runtime r = Runtime.getRuntime();r.exec("winmine. ...