在某些时期之后,我试图基于标志冻结某些变量。我调查了多个类似的问题和答案,并编写了以下代码段:
self.optimizer = tf.cond(self.flag < 0.5, lambda: self.opt_1.minimize(self.loss), lambda: self.opt_1.minimize(self.loss, var_list = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,'ScopeOfVariable')))
self.flag
是一个占位符。对于第一个时期,我将该标志的值设置为0,然后对于第二个时代,将其设置为1。
在第一个时期,代码运行并给我损失值。但是对于第二个时期,即使第一个时期仅在几秒钟内完成,代码甚至没有在数小时内完成。我使用nvidia-smi
检查了GPU内存和计算,结果表明我的GPU内存和计算正在使用。
我在这里想念东西吗?
我在发布前检查的问题:
How to freeze specific nodes in a tensorflow variable while training?
How to freeze specific nodes in a tensorflow variable while training?