您的位置:首页 > 理论基础 > 计算机网络

TensorFlow入门教程(1)安装、基础、Tensorboard

2017-12-10 02:08 671 查看

TensorFlow入门教程

本教程适合人群:

- 会些python但不是特别精通

- 机器学习的初学者

本教程预计耗时:

- 2—3小时

本教程预计效果:

- 掌握TensorFlow的基础操作

- 学会使用TensorBoard可视化计算图

- 使用TensorFlow完成最简单的机器学习

/——————————————-

欢迎看我的新博文 tensorflow新手实战破验证码

讲述了我如何用tensorflow搞定福建某三本高校的验证码的故事

tensorflow新手实战破验证码

/——————————————-

我的学习路线基本按照官网(www.tensorflow.org)的教程来,讲一下我自己按教程做的流程并贴出碰到的一些坑,想学tensorflow的同学可以跟着我操作,讲的不对欢迎指正。

安装

TensorFlow 支持 C, C++, Python。不过官网的教程中提到在使用前先要会用Python,所以用python可能好一些。python怎么装的就不讲了,我装的python3,2好像也能用。tensorflow支持windows,但windows的版本更行会滞后与linux,不过个人感觉没必要只为学个tensorflow装linux,所以我还是用的win10。

我的系统配置清单:

win10

python3.6

tensorflow的cpu版本安装就只要在cmd里打一句话:

pip3 install --upgrade tensorflow


gpu版本安装就繁琐很多,本人只是抱着玩玩的态度,也就没装。

基本概念

张量(Tensors)

Tensor是tensorflow中数据的重要的核心单元。(原文:The central unit of data in TensorFlow)Tensor相当于一个类似数组数据结构,数组的维度可以任意定。

官网给出了一些tensor的例子:

[1.,2.,3.]#一阶张量

[[1.,2.,3.],[4.,5.,6.]]#二阶张量

[[[1.,2.,3.]],[[4.,5.,6.]]]#三阶张量

计算图(The Computational Graph)

计算图是一张放入一连串的操作的结点图。每个结点获得0个或更多张量作为输入,一个或更多张量作为输出。常量(官网:constant)可以当成是特殊的结点,它没有输入并且只有一个不变的输出。

下面就跟着官网的教程走一边熟悉下计算图:

import tensorflow as tf

node1 = tf.constant(3.0,dtype=tf.float32)
node2 = tf.constant(4.0)
print (node1,node2)


我们通过tensorflow提供的constant创建了两个常量结点,都为float32型(第二个类型由默认获得)。

输出为:

Tensor("Const:0", shape=(), dtype=float32) Tensor("Const_1:0", shape=(), dtype=float32)


此时输出的并非结点的值,我们只有评估(evaluate)后才能得到我们输入的值:3.0和4.0。

session

评估一个节点,必须在一个Session中运行计算图,Session封装了Tensorflow运行时的状态和控制。接下来就创建一个Session,调用run方法,运行计算图,去评估node1和node2。

sess = tf.Session()
print(sess.run([node1,node2]))


可以在输出中看到node1和node2的值:

Tensor("Const:0", shape=(), dtype=float32) Tensor("Const_1:0", shape=(), dtype=float32)
2017-12-10 10:01:12.441433: I C:\tf_jenkins\home\workspace\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
[3.0, 4.0]


因为装的cpu版本而没装AVX和AVX2,所以出现了提示,装上AVX的话可以提高运行速度,不过我没装。

可以使用计算操作将多个节点组合(计算也是结点),例如将两个常量节点相加,产生一个新的计算图:

node3 = tf.add(node1, node2)
print("node3: ", node3)
print("sess.run(node3): ",sess.run(node3))


官网的代码中加了一句:

from __future__ import print__function


用于python2兼容3的加括号print,我使用python3不用加。

得到结果:

node3:  Tensor("Add:0", shape=(), dtype=float32)
sess.run(node3):  7.0


Tensorboard

Tensorboard是tensorflow自带的可视化模块,网上关于它的资源很少,而且基本一上来就是默认你已经有很高的水平的那种,对新手十分不友好,我摸索了好久,才搞懂怎么把官网教程里的那张图显示出来:



python中运行的代码如下:

import tensorflow as tf

node1 = tf.constant(3.0,dtype=tf.float32)
node2 = tf.constant(4.0)
node3 = tf.add(node1, node2)

writer = tf.summary.FileWriter('D:/ten',tf.get_default_graph())
writer.close()


writer = tf.summary.FileWriter(‘D:/ten’, tf.get_default_graph())这句话生成了当前计算图的日志并保存在D:/ten。

然后命令行输入

C:\WINDOWS\system32>D:
D:\>tensorboard --logdir="ten"


然后打开浏览器访问http://localhost:6006
9567
可以看到上图界面,推荐使用谷歌浏览器查看。

这里说一下我踩的一个坑,一定要先进D盘在选目录,不能直接

C:\WINDOWS\system32>tensorboard --logdir="D:\ten"


不然你看到的画面会是这样:



过会儿发TensorFlow入门教程(2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息