python中with的用法

来源:1-1 课程整体介绍及导学

qq_依梵_03210232

2018-01-21

网上的一段代码:

with tf.name_scope('input'):
    x = tf.placeholder(tf.float32, [None, 784], name='x-input')
    y_ = tf.placeholder(tf.float32, [None, 10], name='y-input')

这个with后面不加as的情况是什么意思呀?

写回答

1回答

Oscar

2018-01-21

with 什么意思我在代码里解释了,嘿嘿。

这是一个利用了「上下文管理器」的保险又方便的异常处理的方法。

比如说打开一些文件做操作,你也许文件未关闭(用close() 方法)就结束了程序;或者你的文件操作出现问题异常退出了。这两种情况都会发生内存资源泄露。

对于其他类型的也类似,比如你操作 线程锁。

在 TensorFlow 里面,Session(会话)也是类似的。你用 tf.Session() 来创建了一个 Session对象,你如果处理完之后不把它用 close()
方法关闭;或者中间出了问题异常退出了,那么资源也会泄露。

with 的基本用法:

with 上下文表达式 (as 目标/别名):
   各种操作

你可以写:

with tf.Session() as sess:
   W = sess.run(w_data)

则可以用 sess 来代替 创建的 Session 那个对象。

题外话:其实 with 的实现里面用到了类似 try…except…finally 的语句。

0
1
qq_依梵_03210232
非常感谢!
2018-01-21
共1条回复

基于Python玩转人工智能最火框架 TensorFlow应用实践

机器学习入门,打牢TensorFlow框架应用是关键!

2214 学习 · 688 问题

查看课程