tensorflow的计算图总结

 更新时间:2020年01月12日 11:03:23   作者:Jeff.Smile  
这篇文章主要介绍了tensorflow的计算图总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

计算图

在 TensorFlow 中用计算图来表示计算任务。 计算图,是一种有向图,用来定义计算的结构,实际上就是一系列的函数的组合。 用图的方式,用户通过用一些简单的容易理解的数学函数组件,就可以建立一个复杂的运算

在 TensorFlow 使用图,分为两步:建立计算图 和 执行图

图,在形式上由结点 Nodes 和边 Edges 组成。 - Nodes,用圆圈表示,代表一些对数据进行的计算或者操作(Operation)。 - Edges,用箭头表示,是操作之间传递的实际值(Tensor)

建立图

graph = tf.Graph()

访问上下文管理器

with graph.as_default(): 

用 with 表示我们用 context manager 告诉 TensorFlow 我们要向某个具体的 graph 添加 Op 了

执行图图必须在会话(Session)里被启动,会话(Session)将图的 op 分发到 CPU 或 GPU 之类的设备上,同时提供执行 op 的方法,这些方法执行后,将产生的张量(tensor)返回

## 开启session

sess = tf.Session()`

一旦开启了 Session,就可以用 run() 来计算想要的 Tensor 的值

用完会话,记得关掉

sess.close()

Fetches

fetches是session.run()的一个参数,它可以接收任何一个我们想要执行的op或者Tensor,或者他们对应的list结构。

  • 如果是tensor,那么session.run()输出的就是一个Numpy 数组
  • 如果是Op,那么session.run()输出的就是None

比如:sess.run(b)就是告诉Session要把计算b所需要的结点都找到按顺序执行并且输出结果。

全局变量初始化

tf.global_variables_initializer()

表示将所有定义的Variable变量都准备好,以便于后续使用,这个Op也可以传给给session.run.比如:

init = tf.global_variables_initializer()
…
sess.run(init)

张量Tensor和OP

在tensorflow中使用tensor来表示所有的数据结构,计算图中操作Op结点之间传递的都是Tensor

  • 定义tensor时可以直接使用numpy传递给Op结点,因为tensorflow的Op可以将python的数据类型转化为tensor包括numbers,booleans,strings或者list。
  • 图中的任何结点都叫做Operation简称:Op
  • 每个Op的输出会被传递到其他Op或者sess.run()

Variable

Variable,变量是维护图执行过程中的状态信息的,需要它来保持和更新参数数值,是需要动态调整的。

  • Tensor 和Operation都是一成不变的,而Variable是可以随着时间改变的
  • Variables可以用在任何使用tensor的Op中,它当前的值就会被传递给使用它的Op
  • Variable通常的初始值是一些很大的0,1或者随机值tensor,或者内置op:tf.zeros(),tf.ones()等
  • Variable在graph中,状态由session管理,也是在session中进行初始化,session可以追踪variable的当前值是多少。
  • session可以只初始化一部分variable
  • 使用tf.variables_initializer,传入初始化变量列表
  • variable的值是可以被改变的
  • 比如使用variable.assign(variable),或者variable.assign_add(1)
  • 每个session维护独立的variable变量值,同一个variable不同的session值可以是不同的。
  • 当各种Optimizer优化器训练机器学习模型时,variable就会随之改变,当使用variable中的trainable=False属性可以不被Optimizer改变。

name_scopes

  • name_sopes可以用来管理图,可以把一组Op放到一个组块中

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持程序员之家。

相关文章

  • 不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决

    不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决

    这篇文章主要给大家介绍了关于不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决方法,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • python数字转对应中文的方法总结

    python数字转对应中文的方法总结

    在本篇文章里小编给大家分享的是一篇关于python数字转对应中文的方法总结内容,有兴趣的朋友们可以跟着猜尝试测试下。
    2021-08-08
  • python破解zip加密文件的方法

    python破解zip加密文件的方法

    这篇文章主要介绍了python破解zip加密文件的方法,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
    2018-05-05
  • Python机器学习特征重要性分析的8个常用方法实例探究

    Python机器学习特征重要性分析的8个常用方法实例探究

    本文详细介绍8种常用的方法,涵盖了基于决策树、集成学习模型以及统计学方法的特征重要性分析,从决策树模型到SHAP值,深入探讨每种方法的原理和示例,帮助全面了解如何评估特征的重要性,将能更好地理解特征对模型预测的贡献,为提升模型性能和解释模型决策提供有力支持
    2024-01-01
  • 基于Python实现录音功能的示例代码

    基于Python实现录音功能的示例代码

    今天我们来介绍一个好玩且实用的东西,我们使用python来实现一个录音的功能。文中的示例代码简洁易懂,感兴趣的小伙伴快跟随小编一起学习一下吧
    2023-02-02
  • 在django admin详情表单显示中添加自定义控件的实现

    在django admin详情表单显示中添加自定义控件的实现

    这篇文章主要介绍了在django admin详情表单显示中添加自定义控件的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python实现抓取网页并且解析的实例

    Python实现抓取网页并且解析的实例

    这篇文章主要介绍了Python实现抓取网页并且解析的功能实例,主要以解析百度问答为例说明其原理与方法,需要的朋友可以参考下
    2014-09-09
  • Python pip配置国内源的方法

    Python pip配置国内源的方法

    这篇文章主要介绍了Python pip配置国内源的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Python回溯法(Backtracking)的具体使用

    Python回溯法(Backtracking)的具体使用

    在Python中,我们可以应用回溯法解决各种问题,如八皇后问题、子集问题等,本文就来介绍一下Python回溯法(Backtracking)的具体使用,感兴趣的可以了解一下
    2023-12-12
  • python操作日志的封装方法(两种方法)

    python操作日志的封装方法(两种方法)

    这篇文章主要介绍了python操作日志的封装方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05

最新评论

?


http://www.vxiaotou.com