【发布时间】:2016-10-12 09:53:55
【问题描述】:
我喜欢在 Tensorflow 的每个 epoch 中交换 Ops。目前我通过使用
实现了这一点control_flow_ops.cond(tf.less(epoch, float()), op1, op2)
但是,似乎仍在评估未使用的 Ops,这大大减慢了训练过程。有没有办法减少这种开销?
【问题讨论】:
标签: tensorflow
我喜欢在 Tensorflow 的每个 epoch 中交换 Ops。目前我通过使用
实现了这一点control_flow_ops.cond(tf.less(epoch, float()), op1, op2)
但是,似乎仍在评估未使用的 Ops,这大大减慢了训练过程。有没有办法减少这种开销?
【问题讨论】:
标签: tensorflow
将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
【讨论】: