【发布时间】:2018-01-06 06:43:18
【问题描述】:
我经常在 Tensorflow 代码中看到以下模式,但通常忽略它们会获得更好的性能。
with tf.Graph().as_default():
# Build graph here ...
loss, train_op = ...
with tf.Session() as sess: # OR: with sv.managed_sess() as sess, etc.
# Run training steps here ...
sess.run(train_op)
但我更喜欢先定义我的图表,然后按如下方式单独运行会话(尤其是在 Jupyter 笔记本中)。
在一个单元格中:
with tf.Graph().as_default():
# Build graph here ...
loss, train_op = ...
在另一个单元格中:
with tf.Session() as sess: # OR: with sv.managed_sess() as sess, etc.
# Run training steps here ...
sess.run(train_op)
我注意到在第一种方法中创建图表需要时间。有时我使用多个图表,而第二种方法是我唯一的选择。为什么一种方法会比另一种更好?
【问题讨论】:
-
(如果不清楚,主要区别是
with块的缩进)
标签: python python-3.x machine-learning tensorflow