Tensorflow 中 python3.6 中 with...as... : 用法的理解

[转载请联系版主]

首先看一段代码

x = tf.placeholder(tf.float32, shape=(1, 2))
w1 = tf.Variable(tf.random_normal([2, 3],stddev=1,seed=1))
w2 = tf.Variable(tf.random_normal([3, 1],stddev=1,seed=1))

a = tf.matmul(x,w1)
y = tf.matmul(a,w2)

with tf.Session() as sess:
    # 变量运行前必须做初始化操作
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    print(sess.run(y, feed_dict={x:[[0.7, 0.5]]}))

这段代码说的是一个简单的神经网络。别的都可以看懂,但有一个结构特别

with tf.Session() as sess:
    sess.run()
首先查一查文档的说明

# Using the `close()` method.  方法一
sess = tf.Session()
sess.run(...)
sess.close()

# Using the context manager.  方法二
with tf.Session() as sess:
  sess.run(...)

其实这里有两种方法,第一种类似于打开文件,最后需要关闭一下;
而第二个方法,则无需要,很简单。所以我们来认知一下它

今天主题:看定义
class controlled_execution:

    def __enter__(self):

        set things up

        return thing

    def __exit__(self, type, value, traceback):

        tear things down
with controlled_execution() as thing:

        do something

当python执行这一句时,会调用enter函数,然后把该函数return的值传给as后指定的变量。之后,python会执行下面do something的语句块。最后不论在该语句块出现了什么异常,都会在离开时执行exit
另外,exit除了用于tear things down,还可以进行异常的监控和处理,注意后几个参数。要跳过一个异常,只需要返回该函数True即可。下面的样例代码跳过了所有的TypeError,而让其他异常正常抛出。

参考文献:
理解with
Tensorflow文档
tensorflow中python中with用法的理解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东枫科技

打赏即可咨询本帖子的技术问题

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值