2016-09-27 120 views

回答

5

當創建TensorFlow optimizer或變量assignment op時,通過use_locking=True會導致在變量的相關更新周圍獲取鎖定。將使用use_locking=True創建的同一變量上的其他優化器/賦值將被序列化。

然而,有兩個警告,你應該考慮使用該選項時承擔:

  • 讀取到下鎖不執行變量,因此可以看到中間狀態和部分應用的更新。序列化讀取需要額外的協調,例如由tf.train.SyncReplicasOptimizer提供的協調。

  • 寫入(優化器/賦值)與use_locking=False相同的變量仍然是可能的,並且不會獲取該鎖。程序員負責確保不會發生這些寫操作。

相關問題