您的位置:首页 > 其它

TensorFlow-1 入门

2017-07-26 16:59 127 查看
UFLDL深度学习学了一遍之后,虽然完成了里边的大多数编程题,但是觉得matlab写程序有点low,本着看起来高大上的目的,决定好好钻研一下TensorFlow。TensorFlow的学习中借鉴了不少大牛的东西,如若侵权,请联系本文进行删除。

1. TensorFlow 是什么

是一个深度学习库,由 Google 开源,可以对定义在 Tensor(张量)上的函数自动求导。

Tensor(张量)意味着 N 维数组,Flow(流)意味着基于数据流图的计算,TensorFlow即为张量从图的一端流动到另一端。

它的一大亮点是支持异构设备分布式计算,它能够在各个平台上自动运行模型,从电话、单个CPU / GPU到成百上千GPU卡组成的分布式系统。

支持CNN、RNN和LSTM算法,是目前在 Image,NLP 最流行的深度神经网络模型。


2. TensorFlow 的优点

第一,基于Python,写的很快并且具有可读性。

第二,在多GPU系统上的运行更为顺畅。

第三,代码编译效率较高。

第四,社区发展的非常迅速并且活跃。

第五,能够生成显示网络拓扑结构和性能的可视化图。


3. TensorFlow 的安装

因为本人是windows 8.1 64位系统,且电脑上已经安装了python 3.5,所以是在此基础上进行安装的。
  1.升级pip

python.exe -m pip install --upgrade pip
2.下载

http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 下载相应的TensorFlow

3.安装

pip install ........whl
4.测试

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42



3. TensorFlow 的使用

1.TensorFlow的使用过程就是 : 建图-》启动图-》运行取值

TensorFlow 用图来表示计算任务,图中的节点被称之为operation,缩写成op。
一个节点获得 0 个或者多个张量 tensor,执行计算,产生0个或多个张量。
图必须在会话(Session)里被启动,会话(Session)将图的op分发到CPU或GPU之类的设备上,同时提供执行op的方法,这些方法执行后,将产生的张量(tensor)返回。
       
 2. TensorFlow中的重要理解点:
将计算流程表示成图;
通过Sessions来执行图计算;
将数据表示为tensors;
使用Variables来保持状态信息;
分别使用feeds和fetches来填充数据和抓取任意的操作结果;

import tensorflow as tf
import numpy as np

#Step 1: 建图 建图中的值并没有真正赋值,需要等会话启动通过run()进行赋值

# 用NumPy 随机生成100个数据
x_data=np.float32(np.random.rand(2,100)) #2行100列随机数 范围[0,1)
y_data=np.dot([0.100, 0.200], x_data)+0.300 #矩阵乘法

#构造一个线性模型
b=tf.Variable(tf.zeros([1]))
W=tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y=tf.matmul(W,x_data)+b

#最小化方差
loss=tf.reduce_mean(tf.square(y-y_data))
optimizer=tf.train.GradientDescentOptimizer(0.5)
train=optimizer.minimize(loss)

#初始化变量
init=tf.initialize_all_variables()

#Step 2: 启动图

#启动图
sess=tf.Session()
sess.run(init)

#Step3 :运行取值

#拟合平面
for step in range(0,201):
sess.run(train)
if step % 20 == 0:
print (step, sess.run(W), sess.run(b))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  TensorFlow