我喜欢在Tensorflow的每个时代交换Ops。目前我使用
实现了这一点control_flow_ops.cond(tf.less(epoch, float()), op1, op2)
然而,似乎仍然评估未使用的Ops,这显着减慢了训练过程。有没有办法减少这种开销?
答案 0 :(得分:0)
将control_flow_ops.cond(tf.less(epoch, float()), op1, op2)
视为Python a if f(x) else b
的等效内容,其中a
和b
是变量。在a
和b
已经存储了一些值,因此评估了两个分支。您需要执行create_op1()
而不是op1
之类的操作来仅评估一个分支。 mrry的帖子here