2017-06-28 50 views

回答

10

您已回答了您自己的問題。 tf.contrib命名空間的官方文​​檔描述爲:

contrib模塊包含易失性或實驗性代碼。

因此tf.contrib保留用於實驗功能。這個命名空間中的API允許在不同版本之間快速更改,而其他版本通常不能沒有新的主要版本。具體而言,tf.contrib.layers中的功能與tf.layers中的功能不同,儘管其中一些功能可能使用不同的名稱複製。

至於你是否應該使用它們,這取決於你是否願意處理突然中斷的變化。不依賴於tf.contrib的代碼可能更容易遷移到未來版本的TensorFlow。

+0

是否有任何理由,這些模塊之間的許多功能是重複的? tf.contrib.layers中的版本,比如具有更好優化的實驗版本還是其他?還是隻是因爲歷史原因將圖層模塊添加到tf之前剩下的? – erobertc

+1

@erobert這可能需要根據具體情況進行評估。通常,'tf.contrib'使社區能夠嘗試不同的API,並在此過程中暴露不太穩定的功能。因此,在新功能着陸後,他們不必立即消失。同樣,它們也可能被完全更改或在次要版本中清除。目前,例如,'tf.layers.conv2d'和'tf.contrib.layers.conv2d'具有不同的原型,並不總是可以互換的。 –