一、概述

1、Tensorflow

Tensorflow是广泛使用的实现机器学习以及其它涉及大量数学运算的算法库之一。Tensorflow Google开发,是GitHub上最受欢迎的机器学习库之一。Google几乎在所有应用程序中都使用Tensorflow来实现机器学习。借助 TensorFlow,初学者和有经验的人都可以轻松创建适用于桌面、移动、网络和云端环境的机器学习模型。

2、OpenCV

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

二、Tensorflow

1、产生的历史原因

image.png

  • 1980s:感知机与特征工程 计算力低,数据量小
  • 1990s:神经网络在图像和语音领域发力
  • MINIST:手写字体识别,机器学习界的Hello Word
  • 2012-:算力和数据增长推动深度学习的繁荣发展

image.pngimage.png

2、发展

  • 第一代大规模分布式深度学习框架:Google DistBelief(2012年)
    • paper:Large Scale DistBelief Deep Network
  • 第二代大规模分布式深度学习框架(开源):Google TensorFlow(2015年)

    • 灵活通用的深度学习库
    • 端云结合的人工智能引擎
    • 高性能的基础平台软件
    • 跨平台的机器学习系统

      3、应用场景

      image.png
  • 其中AlphaGO Zero是纯强化学习,没有输入任何棋谱训练

  • TPU比GPU在深度学习的训练方面更有优势
    • GPU是为大量的浮点数运算而设计的一种硬件
    • 可以任务TPU是专门为TensorFlow设计的硬件
    • 现在衍生出专门的AI芯片
  • 支持的额语言接口

image.png

4、环境搭建

(1)支持的硬件平台

image.png

  1. 支持最简单的中央处理器CPU(Central Processing Unit ),使得PC机、笔记本、服务器均可使TensorFlow;
  2. 高性能服务器、高性能桌面环境支持图形处理器GPU(Graphics Processing Unit),一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器;
  3. 张量处理单元即TPU(Tensor Processing Unit),一款为机器学习而定制的芯片,经过了专门深度机器学习方面的训练,有更高效能(每瓦计算能力)

    (2)安装TensorFlow

    (3)在容器中使用

    5、TensorFlow模块与基础架构

    (1)TensorFlow模块与APIs

    image.png
  • Keras是一个比TensorFlow还要早的开源项目,最早对接Torch这种开源框架;Estimator由TensorFlow团队推出,从模型设计角度很适用,提供了模型估算、模型定义、模型指标度量的接口;
  • Layers:封装好的神经网络层的接口,诸如卷积、池化……
  • Datasets:数据处理、数据输入输出;
  • Metrics:获取训练过程各种的指标;

    (2)TensorFlow架构

    模块化,分层次 高层次的模块调用低层次的模块,低层次以接口的方式向上提供调用的逻辑
    核函数:操作的实现
    image.png