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

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

本文作者:linger
本文链接:http://blog.csdn.net/lingerlanlan/article/details/61616906

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值