TensorFlow-1 入门

来源:互联网 发布:java jar包下载网站 编辑:程序博客网 时间:2024/05/22 05:16

将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 tfimport 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))  



原创粉丝点击