TensorFlow基础

SkySeraph  2017

Email:skyseraph00#163.com

更多精彩请直接访问SkySeraph个人站点www.skyseraph.com

Overview

TensorFlow 最初由Google Brain团队开发, Google 2015年11月9日发布的开源的AI系统(Apache 2.0),前任(身)为DistBelief, 2017年2月11日发布1.0.0版,同时支持Linux、macOS和Windows以及移动平台,包括Android和iOS。
TensorFlow一般简写为TF。
Awesome AI~

Links

AI/DL 库

如今,AI/DL相关库非常多,Deep Learning Libraries by Language 一文中以语言为分割汇聚了几十种DL库,更多相关资料可参考这个项目的聚合awesome-ai
其中主流的几种比较如下。

相比于其它AI库,TF突出特点如下:

  • Runs not only Windows, Linux, and macOS, also on mobile devices(iOS and Android.)
  • provides a Python API TF.Learn(Python API called TF.Learn2) compatible with Scikit-Learn (previously Scikit Flow/skflow)
  • provides a API TF-slim (tensorflow.contrib.slim) for neural networks.
  • Several other high-level APIs such as Keras or Pretty Tensor.
  • includes highly efficient C++ implementations of many ML operations
  • a great visualization tool TensorBoard
  • launched a cloud service
  • A dedicated team, a growing community

Keys

Graph/Tensor

  • Graph,图。表示你所搭建的结构
  • Session,会话。表示你这次要运行程序
  • Tensor,张量 表示数据
  • Variable,表示变量
  • Feed和Fetch,进行任意的操作赋值或者获取数据
  • Node,表示节点,表明数据在图中流动经过的点
  • Operation,表示节点的操作,通过operation来加工处理数据
  • Data Flow Graph(数据流图) TF用于定义计算结构的有向图, 其节点表示运算(Operation(Op)),其边表示数据(data set(tensors))的输入和输出(Op 传入和从 Op 传出)

TF中的图描述了计算过程,图通过Session的运行而执行计算。Session将图的节点们(即ops)放置到计算设备(如CPUs和GPUs)上,然后通过方法执行它们;这些方法执行完成后,将返回tensors。在Python中的tensor的形式是numpy ndarray对象,而在C/C++中则是tensorflow::Tensor.
TF使用graph来表示计算任务/处理过程. 在被称之为Session的上下文 (context) 中执行图. 使用 tensor 表示数据. 通过Variable 维护状态. 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据。

TF中使用Tensor来表示所有数据的数据结构,零阶张量为 纯量或标量 (scalar) 也就是一个数值. 比如 [1] 一阶张量为 向量 (vector), 比如 一维的 [1, 2, 3] 二阶张量为 矩阵 (matrix), 比如 二维的 [[1, 2, 3],[4, 5, 6],[7, 8, 9]]。

TPU

TPU( tensor processing unit): 张量处理器, Google为机器学习定制的专用芯片(ASIC),专为Google的深度学习框架TensorFlow而设计。
与图形处理器(GPU)相比,TPU采用低精度(8位)计算,以降低每步操作使用的晶体管数量。降低精度对于深度学习的准确度影响很小,但却可以大幅降低功耗、加快运算速度。同时,TPU使用了脉动阵列的设计,用来优化矩阵乘法与卷积运算,减少I/O操作。此外,TPU还采用了更大的片上内存,以此减少对DRAM的访问,从而更大程度地提升性能。

TensorBoard

GPU设置

  • GPU device
    “/cpu:0”: 你机器的CPU;
    “/gpu:0”: 你机器的第一个GPU;
    “/gpu:1”: 你机器的第二个GPU;

  • 指定GPU。
    with tf.device(‘/cpu:1’):

    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    ......
  • 资源分配。TF默认会使用当前所有GPU资源,控制资源可以采用动态申请或者限制GPU使用率。

    • 动态申请:
      config = tf.ConfigProto()
      config.gpu_options.allow_growth = True
      session = tf.Session(config=config, …)

    • 限制GPU使用率:
      config = tf.ConfigProto()
      config.gpu_options.per_process_gpu_memory_fraction = 0.4
      session = tf.Session(config=config, …)

References & Recommends


By SkySeraph-2017

SkySeraph cnBlogs

本文首发于skyseraph.com“TensorFlow基础”

TensorFlow基础的更多相关文章

  1. TensorFlow基础笔记(0) 参考资源学习文档

    1 官方文档 https://www.tensorflow.org/api_docs/ 2 极客学院中文文档 http://www.tensorfly.cn/tfdoc/api_docs/python ...

  2. TensorFlow基础笔记(3) cifar10 分类学习

    TensorFlow基础笔记(3) cifar10 分类学习 CIFAR-10 is a common benchmark in machine learning for image recognit ...

  3. TensorFlow基础剖析

    TensorFlow基础剖析 一.概述 TensorFlow 是一个使用数据流图 (Dataflow Graph) 表达数值计算的开源软件库.它使 用节点表示抽象的数学计算,并使用 OP 表达计算的逻 ...

  4. 05基于python玩转人工智能最火框架之TensorFlow基础知识

    从helloworld开始 mkdir mooc # 新建一个mooc文件夹 cd mooc mkdir 1.helloworld # 新建一个helloworld文件夹 cd 1.helloworl ...

  5. tensorflow基础篇-1

    1.使用占位符和变量 import tensorflow as tf import numpy as np #-----创建变量并初始化----------- def first(): my_var= ...

  6. TensorFlow应用实战 | TensorFlow基础知识

    挺长的~超出估计值了~预计阅读时间20分钟. 从helloworld开始 mkdir 1.helloworld cd 1.helloworldvim helloworld.py 代码: # -*- c ...

  7. tensorflow基础练习:线性模型

    TensorFlow是一个面向数值计算的通用平台,可以方便地训练线性模型.下面采用TensorFlow完成Andrew Ng主讲的Deep Learning课程练习题,提供了整套源码. 线性回归 多元 ...

  8. TensorFlow 基础概念

    初识TensorFlow,看了几天教程后有些无聊,决定写些东西,来夯实一下基础,提供些前进动力. 一.Session.run()和Tensor.eval()的区别: 最主要的区别就是可以使用sess. ...

  9. TensorFlow 基础知识

    参考资料: 深度学习笔记目录 向机器智能的TensorFlow实践 TensorFlow机器学习实战指南 Nick的博客 TensorFlow 采用数据流图进行数值计算.节点代表计算图中的数学操作,计 ...

随机推荐

  1. Jenkins结合.net平台综合应用之使用FileZilla搭建ftp服务器

    上一节我们讲解了如何编译web项目,web项生成以后我们是手动复制到iis目录下的,这显然不符合devops初衷,这里我们讲解如何利用ftp协议把文件传到远程服务器的iis目录下. 这一讲分两部分一部 ...

  2. 第44章 添加新协议 - Identity Server 4 中文文档(v1.0.0)

    除了对OpenID Connect和OAuth 2.0的内置支持之外,IdentityServer4还允许添加对其他协议的支持. 您可以将这些附加协议端点添加为中间件或使用例如MVC控制器.在这两种情 ...

  3. [Go] golang的range循环遍历通道

    range循环会无限在channels上面迭代 package main import ( "fmt" "time" ) func main() { //创建一 ...

  4. [android]android项目的目录结构

    /**************2016年4月23更新*********************/ 相关技术: 知乎:用eclipse做Android开发,新建工程时应如何选择Android的版本? 肥 ...

  5. Windows系统 应用或游戏 打开出现0xc000007b错误 解决方法

    1.使用directX修复工具(推荐) 标准版 增强版 标准版备用地址 增强版备用地址 2. 重新安装DirectX 9.0 安装包(安装包体积大) 微软官方离线安装包 摘录CSDN博客 运行游戏时出 ...

  6. 面向对象的一小步:添加ActiveRecord的Scope功能

    问题场景 我们用Yii2的ActiveRecord功能非常的方便,假如我们有个Model叫Student,那么ActiveQuery可以通过这种方式轻便地获得: $query = Student::f ...

  7. 设计模式之一工厂方法模式(Factory Method)

    工厂方法模式分为三种: 一.普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.首先看下关系图: 举例如下:(我们举一个发送邮件和短信的例子) 首先,创建二者的共同接口: pub ...

  8. Vue的使用

    mvc model view controller mvvm m=>model v=>view 双向数据绑定 数据在视图呈现:在表单里用v-model,在表单外用{{}},也可以用v-te ...

  9. django项目前期准备

    本文转载自 https://blog.csdn.net/xiaogeldx/article/details/89037748 Django现状 Django开发前景 Django的厉害之处 在Pyth ...

  10. Easyui 修改|新增jquery-easyui icon图标

    修改|新增jquery-easyui icon图标 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 修改配置文件 打开jquery-easyui-1.5.3\ ...