分享

Learnning Tensorflow Variables

 雪柳花明 2017-01-16
参见 http:///lesson2/
1. 首先,介绍tensorflow
        TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。

一 .看一个python的程序
 
 
该程序:创建一个变量x,赋值35
                创建一个变量y,y=x+35 ,这里y为40
                 打印y的值
该python脚本命名为basic.py
执行python脚本的终端命令:终端需要在basic.py脚本所在的目录里。
python basic.py

二.Tensorflow 的
 

打印出来的结果为:y的类型方面的信息,不是42
 
 
解释:
1.  导入tensorflow组件,命名为tf
2.创建一个常量x,x=35
3.创建一个变量y,y定义为是一个方程式:y=x+5
4.打印y的方程对象

三.     2中代码的改进
 

程序中的x可以是一个35,也可以是一个数组[35,40,45]
 
1.  导入tensorflow组件,命名为tf
2.创建一个常量x,x=35
3.创建一个变量y,y定义为是一个方程式:y=x+5
4.使用initialize_all_variables初始化变量,记住,到这步呢,还代码还没有运行过呢
model = tf.global_variables_initializer()//之前的初始化方法API已经更新为这个了。

5.为了计算变量:需要建立一个session
6.运行4中的模型
7.用session运行y方程式对象,然后将值打印出来。
补充:运行到第7步的时候才是真正的计算,前6步都是再做准备工作。

摘抄:
我的理解:
1. tensorflow 和 spark的思想有点类似,都是lazy执行;
    在调用tf.Session().run(...)之前所有的操作都只是在构建Graph的过程,这期间不会执行操作;
    tf.Session().run(op) 调用时,op操作才会被执行。

 2. tf.Session().run(x) 当x是operate (mul, square,train...)时,执行这一op,返回操作的结果,没有返回值就是None;x是Variable或者Constant时,返回该变量/常量的值(官方称为Fetch操作).

 3. tf.Session().run(x) x可以是一个list, 返回值也会是一个tuple,返回list里的每一个操作对应的返回值。
4.
tf.placehodler 的作用就是先在Graph中分配好节点,后面run的时候通过feed_dict的字典参数赋值。(官方称为feed)
5.
Constant的初始化实在创建该节点时,
 而Variable的初始化却是在调用sess.run(tf.global_variables_initializer)时
6.
tf里的*,+等符号操作,与numpy.array的操作类似,如w*b是对应相乘,tf.matmul(w,b)才是矩阵相乘


四: NumPy系统
NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵
          Numpy是Python的一个科学计算的库,提供了矩阵运算的功能

如果想使用Numpy必须先导入该模块
例如:生成0--1000大小的数,一共生成1000个。
 
 
五:在Session执行的时候,加入循环
 
for循环: 索引从0开始。
for i in range(5):
........


每一次循环,执行一次session.run(x)操作。

输出结果为:
1,2,3,4,5



六:总结:
      1.  tensorflow是lazy执行。
       在调用tf.Session().run(...)之前所有的操作都只是在构建Graph的过程,这期间不会执行操作;
      2. 目前接触的的变量类型:
        tf.constant()   #常量    创建节点
        tf.Variable()   #变量    其初始化在调用  sess.run(tf.global_variables_initializer)时

   3.    tf.placehodler 的作用就是先在Graph中分配好节点

    4.           tf.Session().run(x)
x是operate (mul, square,train...)时,执行这一op,返回操作的结果,没有返回值就是None;x是Variable或者Constant时,返回该变量/常量的值(官方称为Fetch操作).

七:   TensorFlow可视化技术主要分为两部分:
TensorFlow摘要模型及TensorBoard可视化组件。在摘要模型中,需要把模型变量或样本 数据转换为TensorFlow summary操作,然后合并summary操作,最后通过Summary Writer操作写入TensorFlow的事件日志。TensorBoard通过读取事件日志,进行相关摘要信息的可视化展示,主要包括:Scalar 图、图片数据可视化、声音数据展示、图模型可视化,以及变量数据的直方图和概率分布图。

tf.summary.merge_all()
 
 





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多