tf.cond()卡在GPU上

时间:2018-06-27 16:56:12

标签: python tensorflow optimization

在训练期间,我试图冻结一些时期。为此,我正在使用tf.cond:

self._train_op = tf.cond(condition > 0,
                     lambda: optimizer.minimize(
                         self._loss, name="optimizer",
                         global_step=global_step),
                     lambda: optimizer.minimize(
                         self._loss, name="optimizer_2",
                         global_step=global_step,
                         var_list = [v for v in
                                     tf.trainable_variables()
                                     if 'domain' not in v.name])) #Freeze layers with domain in them 

我在sess.run()期间更改condition的值,此代码在CPU上运行良好,但是当我尝试在GPU上运行它时,它将永远挂起。如果我删除tf.cond()并执行

 self._train_op = optimizer.minimize(
 self._loss, name="optimizer",
 global_step=global_step)

一切正常。有人知道原因吗?在训练过程中满足某些条件时如何冻结某些层?

0 个答案:

没有答案