python常用api_Python深度学习之TensorFlow中常用API

常用API

了解TensorFlow的API有助于我们在应用时得心应手,本节我们将会介绍常用的API,在后面的示例中也将会经常用到。这里主要介绍基于Python的API,基于其他语言的API也大同小异,最重要的理解API的功能及背后的原理。

图、操作和张量

TensorFlow的计算表现为数据流图,所以tf.Graph类中包含一系列表示计算的操作对象(tf.Operation),以及在操作之间流动的数据——张量对象(tf.Tensor)。与图相关的API均位于tf.Graph类中,详情请见下表:

9825bc315c6034a86a2fc1269f49815008237622.png?token=9a2187e8aa0e68854733b894547002e2&s=7AA83C6287C04D435AF515CA0300E0B1

tf.Operation类代表图中的一个节点,用于计算张量数据。该类型由节点构造器(如tf.matmul( )或者Graph.create_op( ))产生。例如,c=tf.matmul(a,b)创建一个Operation类,其类型为MatMul的操作类。与操作相关的API均位于tf.Operation类中,如下表所示:

377adab44aed2e73264dfbf9d45b698f86d6fa1a.png?token=21efaff53b6cfe5cbd668fe31a48df32&s=3EAA7C23BB6051035AD514CA0300C0B1

tf.Tensor类是操作输出的符号句柄,它不包含操作输出的值,而是提供了一种在tf.Session中计算这些值的方法。这样就可以在操作之间构建一个数据流连接,使TensorFlow能够执行一个表示大量多步计算的图形。与张量相关的API均位于tf.Tensor类中,详情请见下表:

95eef01f3a292df54985484fe96b946435a87381.png?token=5da170a1564cea08b0ab8e6512115053&s=5AAA346219DED0CE485DD4CA0300E0B1

可视化

之前,我们讲解了可视化面板的功能,但如何编写可视化的程序吗?可视化时,需要在程序中给必要的节点添加摘要(summary),摘要会收集该节点的数据,并标记上第几步、时间戳等标识,写入文件事件中。tf.summary.FileWriter类用于在目录中创建事件文件,并且向文件中添加摘要和事件,用来在TensorBoard中展示。

变量作用域

在TensorFlow中有两个作用域(scope),一个是name_scope,另一个是variable_scope。它们究竟有什么区别呢?简而言之,variable_scope主要是给variable_name加前缀,也可以给op_name加前缀:name_scope是给op_name加前缀。下面就来介绍一下。

variable_scope示例

variable_scope变量作用域机制在TensorFlow中主要由两部分组成:

v = tf.get_variable(name, shape, dtype, initializer) # 通过所给的名字创建或是返回一个变量

tf.variable_scope() # 为变量指定命名空间

当tf.get_variable_scope( ).reuse == False时,variable_scope作用域只能用来创建新变量:

b64543a98226cffc298f2795ed5b8294f703eacb.png?token=d80b0728ccde2ad8aab6969c54f1b1a8&s=41D203665AF4884D46D434040300E0C3

上述程序会抛出ValueError错误,因为这个变量v已经被定义过了,但tf.get_variable_scope( ).reuse默认为False,所以不能重用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值