numpy中np.random.seed()的詳細用法


  在進行機器學習和深度學習中,我們會經常用到np.random.seed(),利用隨機數種子,使得每次生成的隨機數相同。

numpy.randn.randn(d0,d1,...,dn)

  • randn函數根據給定維度生成大概率在(-2.58~+2.58)之間的數據
  • randn函數返回一個或者一組樣本,具有標准正態分布
  • dn表示每個維度
  • 返回值為指定維度的array
import numpy as np

a = np.random.randn(2,4)  #4*2矩陣
print(a)

b = np.random.randn(4,3,2)  #shape:4*3*2
print(b)

我們將帶着兩個問題進行np.random.seed()的學習:

  1.np.random.seed()是否一直有效?

  2.np.random.seed(Argument)的參數作用?

E.G.實驗

# -*- coding: utf-8 -*- 
# @Time : 2019/10/26 20:57 
# @Author : BaoBao
# @Mail : baobaotql@163.com 
# @File : random.seed.py 
# @Software: PyCharm

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("---------reset----------")
    np.random.seed(0)
    i = 0
    while (i < 8):
        print(np.random.randn(1, 5))
        i += 1

 

運行截圖:

  可以看出,np.random.seed()對后面的隨機數一直有效。

  兩次利用random.seed()后,即使跳出循環以后,生成隨機數的結果依然相同。第一次跳出while循環后,進入第二次while循環,

得到的兩個隨機數組確實和加了隨機數種子不一樣。但是后面的加入隨機數種子的,八次循環中的結果和前面的結果是一樣的。說明,

隨機數種子對后面的結果一直有影響。同時,加入隨機數種子以后,后面的數組都是按一定的順序生成的。

E.G.隨機數種子參數的作用

# -*- coding: utf-8 -*- 
# @Time : 2019/10/26 20:57
# @Author : BaoBao
# @Mail : baobaotql@163.com
# @File : random.seed.py
# @Software: PyCharm
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時,生成的隨機數結果相同。說明該參數指定了一個隨機數生成的起始位置。每個參數對應一個位置。

並且在該參數確定后,其后面的隨機數的生成順序也就確定了。所以,隨機數種子的參數怎么選擇?這個參數只是確定一下隨機數的起始位置,可隨意分配.

 

對你有幫助就支付寶請我喝可樂叭~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM