美文网首页我爱编程
Tensorflow入门:数据结构和编程思想

Tensorflow入门:数据结构和编程思想

作者: 大爽兔 | 来源:发表于2017-03-16 13:24 被阅读177次

    Tensorflow入门:数据结构和编程思想
    引言:
    最近tensorflow很火,看到国内都有不少人开始玩起来了,自己最近有些想法想玩玩,于是开始入门搞一下,因为自己只有一个台式电脑,于是就装了个cpu版的tensorflow,安装过程挺顺利,一两句命令搞定,最后遇到过glibc的版本问题,直接升级了Ubuntu版本就好了。
    于是,开始入门了。下面是我学习的笔记,水平有限,如有不对,敬请指教。
    在tensorflow框架下,定义了tensor这么一个数据结构,她是可以任意n维空间的数据表达,这个n称之为tensor的阶,0阶的就是一个数,1阶的就是一个向量,2阶就是一个矩阵,3阶就是一个立方体,等等。


    当然,tensor中里面的数据类型可以指定,比如float32,int32等。

    Tensorflow的编程思想主要是如下几点:


    综合来说,就是用tensor定义了一堆数据,里面可以有常量也可以有变量,然后用一个个operation表示计算步骤,这些operation节点连起来构成了一个graph表示计算任务。graph可以有多个,但对于大部分程序一个graph就够了,作为初学者,可以忽略多graph的情况,tensorflow会提供一个默认的graph。graph定义好,计算并不会马上执行,需要通过session来启动graph的执行。Session中的每一次计算operation,都可以通过fetch的方式把对应的tensor返回作为计算结果。而传给计算operation的参数,可以直接用变量或者常量的名字,也可以通过feed的形式传参。

    实例1:
    下面是两个向量点乘的实例,展示了基本的operation和graph定义,以及session启动。

    执行结果:

    实例2:
    下面是用变量表示graph计算的状态信息的实例,值得关注的是,operation之间的依赖关系。

    从代码中可以看到,我们只是显示执行了update这个operation,但是没有显示执行new_value这个operation,不过通过执行结果可以判断,new_value这个operation的确是触发执行了,也许是state每次变化时检查到依赖立刻触发new_value这个operation的执行,也许是要执行update这个operation时发现有个依赖的new_value这个operation需要触发。按照目前的理解,更加倾向于后者,有点类似编程中的闭包的概念。
    实例3:
    下面是一个通过fetch机制,把tensor作为结果返回的实例


    实例4:
    下面是一个通过feed机制把参数传进计算operation的实例


    实例5:
    线性回归经典实例
    值得注意的是,在tensorflow里面实现线性回归,只需要把预测模型和损失函数定义好基本就可以了,里面有梯度下降优化器帮你求解,不必自己再写。

    参考资料:
    张量的阶、形状、数据类型
    http://wiki.jikexueyuan.com/project/tensorflow-zh/resources/dims_types.html
    Tensorflow基本使用
    http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/basic_usage.html
    Tensorflow简介
    http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/introduction.html
    Tensorflow变量:创建、初始化、保存和加载
    http://wiki.jikexueyuan.com/project/tensorflow-zh/how_tos/variables.html
    linear_regression
    https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/linear_regression.py
    入门级解读:小白也能看懂的TensorFlow介绍
    http://it.sohu.com/20170221/n481292094.shtml
    TensorFlow入门一
    http://hacker.duanshishi.com/?p=1639

    相关文章

      网友评论

        本文标题:Tensorflow入门:数据结构和编程思想

        本文链接:https://www.haomeiwen.com/subject/fsxjnttx.html