Session.run(fetches)是否保证按顺序执行其"fetches"参数?

Max*_*axB 6 python machine-learning tensorflow

Session.run(fetches, feed_dict)保证执行其fetches有序参数呢?

文档似乎没有提到它.

例如,如果你跑

sess.run([accuracy, train_op], feed_dict=feed_dict)
Run Code Online (Sandbox Code Playgroud)

执行的顺序很重要:train_op将更新影响的参数accuracy.

小智 7

不可以.默认情况下,Tensorflow可以按任意顺序自由评估操作员.由于并发性,该顺序甚至可能在运行之间发生变化.这通常是一件好事,因为这意味着Tensorflow可以充分利用可用的硬件.如果您的代码改变状态(如变量),则可能会出现问题.

但是,如果由于某种原因您希望控制评估顺序,通常可以使用控制依赖项来强制执行操作符之间的顺序.控制依赖关系在此处记录:

https://www.tensorflow.org/api_docs/python/tf/Graph#control_dependencies

希望有所帮助!