关于Tensorflow计算图与Tensor的理解

本文介绍了Tensorflow的计算模型,强调了其与传统编程的区别,解释了Tensor作为计算规则而非数据存储的重要性,并通过实例说明了Tensor如何构建计算图和在Session中计算结果。此外,还探讨了Tensor的属性,如op、shape、dtype和consumers,对于理解和使用Tensorflow编程至关重要。
摘要由CSDN通过智能技术生成

关于Tensorflow计算模型

tensorflow的编程和我以往接触的编程方式有很大差异。以前的编程,无论是编译类型的语言还是脚本语言,都是一步一步的,变量计算后,就会得到结果,比如c=a+b,当执行完语句后,就会得到c的值。但tensorflow不是,它首先要通过编程,构建一个计算图出来,然后启用一个会话来把数据作为输入,通过这个图规定的计算步骤计算,最后得到结果。
普通的命令式编程容易理解和调试,命令语句基本没有优化,按原有逻辑执行。tensorflow这种符号式编程有较多的嵌入和优化,不容易理解和调试,但运行速度会有一定的提升。

Tensor张量

Tensor是Tensorflow中一个很重要的概念,它定义了计算的规则而不保存计算的数据,是构建计算图不可或缺的重要组成部分。首先看一下官方文档的介绍:

A Tensor is a symbolic handle to one of the outputs of an Operation. It does not hold the values of that operation’s output, but instead provides a means of computing those values in a TensorFlow tf.Session.

This class has two primary purposes:
A Tensor can be passed as an input to another Operation. This builds a dataflow connection between operations, which enables TensorFlow to execute an entire Graph that represents a large, multi-step computation.
After the graph has been launched in a session, the value of the Tensor can be computed by passing it to tf.Session.run. t.eval() is a shortcut for calling tf.get_default_session().run(t).

上面简单来说,Tensor是一个代表计算操作的句柄,它不保存数据,只是提供一个计算数据的方法。使用Tensor主要有两个目的,一个是Tensor可以把不同的操作连接起来,从而去构建一个计算图,支持Tensorflow去进行大规模多步的计算,另一个是当Tensor被一个会话Session启用的时候,就可以计算出该操作对应产出的数据。

可以说,Tensorflow计算的过程就是利用的Tensor来建立一个计算图,然后使用Session会话来启动计算,最后得到结果的过程。

简单的验证代码

写了一点代码来验证一下上面的说法。

import tensorflow as tf

def prn_obj(obj):
    print '\n'.join(['%s:%s' % item for item in obj.__dict__.items()])

def run():
    g1 = tf.Graph()
    with g1.as_default():
        a = tf.Variable(tf.random_normal([2,3],stddev=
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值