【ATU Book-i.MX8 系列 - TFLite】Tensorflow 1. x 运算概念

一.   概述

上篇文章说明如何搭建 Tensorflow 1.x 环境,主要使用版本为 1.15 。相信各位也大致上了解 TF 1.x 与 2.x 的差异,接下来就来带领读者认识 Tensorflow 1.x 的主要运作模式,何谓 静态图(Graph) 与基本运算的概念,以及如何利用 Tensorboard 视觉化静态图 !! 事不宜迟,动手一起体验吧!! 如下图所示,为系列博文之示意架构图。此架构图隶属于 i.MX8M Plus 的方案博文中,并属于 eIQ 机器学习开发环境 内的 推理引擎层(Inference Engines Layer) 的子系列 !! 目前章节介绍 “Tensorflow 1. x 运算概念”,若欲架设 2.x 的版本请参照该系列的运算概念。

若新读者欲理解人工智能、机器学习以及深度学习的差异,可点选查阅下方博文

大大通精彩博文   探讨机器学习与深度学习之差异

 

 TFlite 系列博文 - 文章架构示意图 (1)


 

 

TFlite 系列博文 - 文章架构示意图 (2)

 

二.  Tensorflow 1.x 运算概念

使用搭建环境 : Python 3.6 + Windows 10 + Tensorflow 1.15

(1) 静态图(Graph)

TensorFlow 设计核心属于“静态图”或是 “计算图”的模式,顾名思义就是 设计执行 分开,撰写者必须定义资料流向与运算方式,最后再选择平台进行执行 (预设为 CPU)。为了加快认识概念,下列就直接以代码与图片进行演示,可先从三大区块 (载入 Tensorflow 资料库、定义静态图、执行静态图) 看起。

 静态图代码演示

 

观察上述所介绍的代码,有明显的定义与执行设计图的分段。而定义设计图之代码部分可以使用图形化的方式呈现,如下图所示,故称此部分为 (Graph) 的概念。

 

 

TensorFlow Graph 示意图

透过 Session 的方式来封装执行设计图(Graph),执行结果如下 :

顺带一提,上述方式皆为 TensorFlow 1.x 的静态图概念,然而 TensorFlow 已经朝 2.x 的版本迈进,衍伸出 动态图(Eager) 的概念,最大的差异就是执行则立刻运算,能够使除错更加直观!!

*** 本文章以 TensorFlow 1.x 为主 (Version 1.15),暂时不介绍动态图的概念与撰写方式


(2) 基本运算

撰写 TensorFlow 的代码时,必须注意的是常数与变数的宣告方式不同于 Python。而是所谓的 张量(Tensor) ,这是一种有维度的数组之统称,比如说二维的矩阵就是属于一种张量。而下列将介绍 TensorFlow 宣告常数与变数的方法。

常数宣告 :

变数宣告(直接填入数值) :

变数宣告(间接填入数值, 先宣告一块记忆体空间) :

 

变数宣告范例


范例1 是先预设好数值直接填入于变数中,范例2 则是搭配 feed_dict 用法 ,随后将填入数值的变数,换句话说就是先申请一块未填值的记忆体空间,后续利用 feed_dict 来填入其值,属于比较灵活性的用法。该程式所对应的运行结果如下 :




(3) Tensorboard 视觉化结果

Tensorboard 是一种进阶 API 专以网页方式呈现 TensorFlow 所输出的资料,网页预设连接埠为 6006。能透过此方式视觉化 TensorFlow 的输出结果,仅需要加入以下代码 ….

输出纯量值 :

画出资料分布图 :

输出图形 :

以储存档案方式纪录所有节点 :

开启命令提示字元或终端机,输入以下指令即可 启用 Tensorboard


 

三.  结语

静态图主要就是须先规画好设计图,最后透过 tf.Session 进行演算。此方式对于复杂的神经网路与 Python 程式特性较不相容,Debug 时相较比较不直观,这也是后续 Google 官方于 Tensorflow 2.x 忍痛替换的主要原因 !! 但为了服务之前熟悉 TF 1.x 的开发者,官方亦是保留了此概念 !! 仅须以 tf.disable_v2_behavior() 关掉动态图的行为 即可,后续文章将带领读者建立第一支 Tensorflow 1.x 神经网路 – 手写识别,敬请期待!!

 

四.  参考文件

[1] ITREAD    - 从0.1到2.0一文看尽TensorFlow奋斗史
[2] 软体之心  - 包装再升级?Tensorflow 2.0的重大改变
[3] WiKi        -  Keras开源神经网路库
[4] 科技报橘 -  手机上的轻量版 AI 运算,TensorFlow Lite 问世!
[5] Anaconda - 官方网站
[6] Tensorflow - 官方网站

如有任何相关 Tensorflow Lite 技术问题,欢迎至博文底下留言提问 !!
接下来还会分享更多 Tensorflow Lite 的技术文章 !!敬请期待 【ATU Book-i.MX8 系列 - TFLite
!!



★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论