![](/img/trans.png)
[英]Reproducible results in Tensorflow with tf.set_random_seed
[英]tensorflow: tf.set_random_seed() same code, but got different results
簡而言之,在 tensorflow 中,除了 tf.set_random_seed(),我應該設置任何其他配置來重現相同的結果嗎? 我的代碼中沒有 numpy 操作。
長版:我正在用 horovod 訓練 model,我想重現結果以進行調試。 我在構建圖表之前設置了 tf.set_random_seed(1) 。 所有操作都在 tensorflow 中,沒有 numpy。
而且我只是重新運行了幾次訓練腳本,代碼沒有被修改。
據我了解,它們應該產生相同的結果,因為圖形是按相同的順序構建的,並且 random_seed 設置相同。 session.run 命令不會導致不同,更何況我沒有更改代碼。
但是,對於多次運行的相同代碼,我仍然得到不同的結果。
具體來說,我可以看到輸入圖像以相同的順序讀取,並且步驟 'tf.image.random_flip_left_right' 產生具有相同種子的隨機翻轉。
但是我通過以下代碼測試了 tf.image.random_flip_left_right,得到了相同的結果。 所以這個function沒有bug。 它確實接受了全局 tf random_seed 並產生了相同的結果。
import tensorflow as tf
tf.set_random_seed(0)
img_raw =tf.read_file('test.jpg')
image = tf.image.decode_jpeg(img_raw,channels=3,dct_method='INTEGER_ACCURATE')
image = tf.image.random_flip_left_right(image)
sess=tf.Session()
print(sess.run(image))
相同的種子和圖怎么能隨機翻轉呢? 任何建議將不勝感激。
您可以在tf.image.random_flip_left_right(image, seed = 0)
中設置種子並進行測試嗎?
編輯
好吧,你說你沒有在代碼中使用 numpy 但 TF 將它用於一些內部任務。 那么,您能否再次嘗試修復 numpy 種子。
import numpy as np
from numpy.random import seed
seed(0)
如果這也不起作用,那么問題可能出在Horovod
上,正如這里所說的那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.