TensorFlow入门和案例分析

在这里,引入TensorFlow中文社区首页中的两段描述。关于 TensorFlowTensorFlow™ 是一个采用数据流图(data flowgraphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow。
摘要由CSDN通过智能技术生成

一、什么是TensorFlow

  在这里,引入TensorFlow中文社区首页中的两段描述。

关于 TensorFlow
TensorFlow™ 是一个采用数据流图(data flow
graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow
最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。

什么是数据流图(Data Flow Graph)?
数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点”
一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push
out)的终点,或者是读取/写入持久变量(persistent
variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。

二、示例

  接下来的示例中,主要使用到以下两个文件。

mnist.py
fully_connected_feed.py

  该示例的目的是建立一个手写图像识别模型,通过该模型,可以准确识别输入的28 * 28像素的手写图片是0~9这十个数字中的哪一个。

1、运行文件准备

  需要下载好tensorflow源代码,注意这里的源代码版本需要与安装的TensorFlow版本保持一致。
  在/home/mlusr/files/tensorflow/下解压缩该文件。进入示例文件路径中,运行

cd ~/files/tensorflow/tensorflow-r0.11/tensorflow/examples/tutorials/mnist
python fully_connected_feed.py

  运行过程中,需要联网下载训练数据,数据文件保存到~/files/tensorflow/tensorflow-r0.11/tensorflow/examples/tutorials/mnist/data路径下,如果不能联网的话,可以手动到MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges,下载好以下四个文件,放入data目录。

t10k-images-idx3-ubyte.gz
t10k-labels-idx1-ubyte.gz
train-images-idx3-ubyte.gz
train-labels-idx1-ubyte.gz

2、运行

  直接运行fully_connected_feed.py文件。

python fully_connected_feed.py

  输出信息如下:

Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
Step 0: loss = 2.30 (0.007 sec)
Step 100: loss = 2.13 (0.005 sec)
Step 200: loss = 1.87 (0.004 sec)
Step 300: loss = 1.55 (0.004 sec)
Step 400: loss = 1.26 (0.004 sec)
Step 500: loss = 0.87 (0.004 sec)
Step 600: loss = 0.87 (0.004 sec)
Step 700: loss = 0.65 (0.005 sec)
Step 800: loss = 0.43 (0.004 sec)
Step 900: loss = 0.65 (0.005 sec)
Training Data Eval:
  Num examples: 55000  Num correct: 47184  Precision @ 1: 0.8579
Validation Data Eval:
  Num examples: 5000  Num correct: 4349  Precision @ 1: 0.8698
Test Data Eval:
  Num examples: 10000  Num correct: 8663  Precision @ 1: 0.8663
Step 1000: loss = 0.47 (0.006 sec)
Step 1100: loss = 0.40 (0.051 sec)
Step 1200: loss = 0.55 (0.005 sec)
Step 1300: loss = 0.43 (0.004 sec)
Step 1400: loss = 0.39 (0.004 sec)
Step 1500: loss = 0.57 (0.005 sec)
Step 1600: loss = 0.50 (0.004 sec)
Step 1700: loss = 0.37 (0.005 sec)
Step 1800: loss = 0.38 (0.006 sec)
Step 1900: loss = 0.35 (0.004 sec)
Training Data Eval:
  Num examples: 55000  Num correct: 49292  Precision @ 1: 0.8962
Validation Data Eval:
  Num examples: 5000  Num correct: 4525  Precision @ 1: 0.9050
Test Data Eval:
  Num examples: 10000  Num correct: 9027  Precision @ 1: 0.9027

3、启动TensorBoard并查看

  在启动TensorBoard时注意指定输出log文件路径,在本例中启动命令如下

tensorboard --logdir /home/mlusr/files/tensorflow/tensorflow-r0.11/tensorflow/examples/tutorials/mnist/data

  启动输出信息如下所示:

Starting TensorBoard 29 on port 6006
(You can navigate to http://192.168.1.100:6006)

  浏览器访问页面指定ip和端口:
  这里写图片描述

  在TensorBoard中还可以查看该模型的更多信息。
  
  本文接下来的部分,将以mnist.pyfully_connected_feed.py两个文件中的内容

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值