np.random.seed() 的使用詳解
阿新 • • 發佈:2020-01-15
在學習人工智慧時,大量的使用了np.random.seed(),利用隨機數種子,使得每次生成的隨機數相同。
我們帶著2個問題來進行下列實驗
- np.random.seed()是否一直有效
- np.random.seed(Argument)的引數作用?
例子1
import numpy as np if __name__ == '__main__': i = 0 while (i < 6): if (i < 3): np.random.seed(0) print(np.random.randn(1,5)) else: print(np.random.randn(1,5)) pass i += 1 print("-------------------") i = 0 while (i < 2): print(np.random.randn(1,5)) i += 1 print(np.random.randn(2,5)) print("---------重置----------") np.random.seed(0) i = 0 while (i < 8): print(np.random.randn(1,5)) i += 1
可以看出,np.random.seed()對後面的隨機數一直有效。
兩次利用隨機數種子後,即便是跳出迴圈後,生成隨機數的結果依然是相同的。第一次跳出while迴圈後,進入第二個while迴圈,得到的兩個隨機陣列確實和加了隨機數種子不一樣。但是,後面的加了隨機數種子的,八次迴圈中的結果和前面的結果是一樣的。說明,隨機數種子對後面的結果一直有影響。同時,加了隨機數種子以後,後面的隨機陣列都是按一定的順序生成的。
例子2,隨機數種子引數的作用
import numpy as np if __name__ == '__main__': i = 0 np.random.seed(0) while (i < 3): print(np.random.randn(1,5)) i += 1 i = 0 print("---------------------") np.random.seed(1) i = 0 while (i < 3): print(np.random.randn(1,5)) i += 1
當隨機數種子引數為0和1時,生成的隨機數結果相同。說明該引數指定了一個隨機數生成的起始位置。每個引數對應一個位置。並且在該引數確定後,其後面的隨機數的生成順序也就確定了。
所以,隨機數種子的引數怎麼選擇?這個引數只是確定一下隨機數的起始位置,可隨意分配。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。