2017-05-03 108 views
0

我想开发分布式tensorflow回归,我想收敛检查在我的算法除了上限迭代的整合。收敛标准我即将采用的是收敛Logistic回归分布式tensorflow

|| prevW - currW || <è

其中prevW是模型权重和currW当前者的前值。 E是收敛容差。

我的问题是关于以前的模型权重。由于我在图形复制和异步培训之间使用,我不知道集群的工作人员什么时候会更新权重。假设一个工作人员使用一个批次计算了新的权重,并想检查算法是否收敛以停止。我将使用本地副本中可用的权重(因此使用相应的张量),或者我将在继续进行当前计算之前评估张量以获取最后更新的值?我试图按照上面的描述去做,但是在达到迭代的上限之后,算法没有收敛并停止。

感谢您事先的帮助:d

回答

0

我会做在其中的变量是相同的设备收敛检验。这样可以避免在网络上复制太多东西。这可以通过将其放入with tf.device(variable.device):块来完成。

+0

谢谢您的回复! :)在我的情况下,变量存储在参数服务器中。即使我将相应的收敛变量放置在工作人员身上,由于训练是异步的,因此以前的权重应视为试图检查计算收敛的工作人员或最后存储在ps中的最后一个变量,后者可能已由其他工作人员更改? – nikospro93

+0

我认为这是一个算法问题,应该通过实验来决定(即尝试两种方法并查看哪一个更强大)。随机梯度的收敛测试可能会很棘手,因为看到一个导致没有移动的梯度并不意味着你将永远不会看到导致移动的梯度。 –