最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python之numpy.random.seed()和numpy.random.RandomState()區(qū)別及說明

 更新時間:2024年06月13日 11:20:06   作者:pangpd  
這篇文章主要介紹了Python之numpy.random.seed()和numpy.random.RandomState()區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

在使用深度學習處理數(shù)據(jù)數(shù),為了保證樣本的隨機分布和實驗的可復(fù)現(xiàn)性,經(jīng)常會使用到numpy.random.seed()和numpy.random.RandomState()兩個函數(shù),這個兩個函數(shù)有什么用法和區(qū)別?

numpy.random.seed()

有個博主介紹的非常棒:

  • seed()里的數(shù)字就相當于設(shè)置了一個盛有隨機數(shù)的“聚寶盆”,一個數(shù)字代表一個“聚寶盆”。
  • 當在seed()的括號里設(shè)置相同的seed,“聚寶盆”就是一樣的,當然每次拿出的隨機數(shù)就會相同。
  • 如果不設(shè)置seed,則每次會生成不同的隨機數(shù),但是有時候明明設(shè)置了seed()沒有變,生成的隨機數(shù)組還是不同。

意思是說,seed()函數(shù)中是可以傳入整型數(shù)字,程序會根據(jù)輸入的數(shù)字產(chǎn)生一組隨機數(shù),只要保證傳入的數(shù)字持續(xù)不變,那么產(chǎn)生的隨機數(shù)也是固定不變的,如下代碼:

np.random.seed(2)
print(np.random.rand(10))
[0.4359949  0.02592623 0.54966248 0.43532239 0.4203678  0.33033482
 0.20464863 0.61927097 0.29965467 0.26682728]
 
np.random.seed(2)
print(np.random.rand(10))
[0.4359949  0.02592623 0.54966248 0.43532239 0.4203678  0.33033482
 0.20464863 0.61927097 0.29965467 0.26682728]

但是有一種情況需要注意:

np.random.seed(2)
print(np.random.rand(10))
[0.4359949  0.02592623 0.54966248 0.43532239 0.4203678  0.33033482
 0.20464863 0.61927097 0.29965467 0.26682728]
 
print(np.random.rand(10))
[0.62113383 0.52914209 0.13457995 0.51357812 0.18443987 0.78533515
 0.85397529 0.49423684 0.84656149 0.07964548]

第二個的np.random.rand(2)已經(jīng)不是在你設(shè)置的np.random.seed(2)下了,所以第二個的隨機數(shù)組只是在默認random下隨機挑選的樣本數(shù)值。

numpy.random.RandomState()

numpy.random.RandomState()是一個偽隨機數(shù)生成器。

那么偽隨機數(shù)是什么呢?

  • 偽隨機數(shù)是用確定性的算法計算出來自[0,1]均勻分布的隨機數(shù)序列。
  • 并不真正的隨機,但具有類似于隨機數(shù)的統(tǒng)計特征,如均勻性、獨立性等。
  • 在計算偽隨機數(shù)時,若使用的初值(種子)不變,那么偽隨機數(shù)的數(shù)序也不變。偽隨機數(shù)可以用計算機大量生成,在模擬研究中為了提高模擬效率,一般采用偽隨機數(shù)代替真正的隨機數(shù)。
  • 模擬中使用的一般是循環(huán)周期極長并能通過隨機數(shù)檢驗的偽隨機數(shù),以保證計算結(jié)果的隨機性。

傳入相同的seed,產(chǎn)生相同的隨機數(shù),如下代碼:

import numpy as np
rng = np.random.RandomState(2)
rng.rand(5)
Out[10]: array([0.4359949 , 0.02592623, 0.54966248, 0.43532239, 0.4203678 ])

rng = np.random.RandomState(2)
rng.rand(5)
Out[11]: array([0.4359949 , 0.02592623, 0.54966248, 0.43532239, 0.4203678 ])

因為是偽隨機數(shù),所以必須在rng這個變量下使用,如果不這樣做,那么就得不到相同的隨機數(shù)組了,即便再次輸入了numpy.random.RandomState(),如下代碼:

np.random.RandomState(2)
np.random.rand(5)
Out[12]: array([0.50524609, 0.0652865 , 0.42812233, 0.09653092, 0.12715997])

np.random.RandomState(2)
np.random.rand(5)
Out[13]: array([0.59674531, 0.226012  , 0.10694568, 0.22030621, 0.34982629])

同樣,和numpy.random.seed()相似,下面情況,第二個的rng.rand(5)已經(jīng)不是在你設(shè)置的np.random.RandomState(2)下了。如下代碼:

rng = np.random.RandomState(2)
x = rng.rand(5)
y = rng.rand(5)
print(x)
[0.4359949  0.02592623 0.54966248 0.43532239 0.4203678 ]
print(y)
[0.33033482 0.20464863 0.61927097 0.29965467 0.26682728]

總結(jié)

參數(shù):seed

  • seed可以是一個int,滿足0<=seed<=2(32−1),這個條件的int都可以做參數(shù)。
  • seed可以是一個array。
  • seed可以是None。

用一句話總結(jié)numpy.random.seed()和numpy.random.RandomState()的關(guān)系:

  • 相同處: 他們的參數(shù)都是隨機數(shù)seed
  • 不同處: numpy.random.RandomState()更為復(fù)雜,完全可以代替
  • numpy.random.seed()這條語句 隨機數(shù)種子seed只有一次有效,在下一次調(diào)用產(chǎn)生隨機數(shù)函數(shù)前沒有設(shè)置seed,則還是產(chǎn)生隨機數(shù)。

1.如果需要不產(chǎn)生隨機數(shù),則需要每次設(shè)置numpy.random.seed()。

>>> import numpy
>>> #注意這里是兩條語句
>>> numpy.random.seed(0);numpy.random.rand(4)
array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318])
>>>numpy.random.seed(0);numpy.random.rand(4)
array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318])
>>>numpy.random.seed(0);numpy.random.rand(4)
array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318]

2.如果需要每次都產(chǎn)生隨機數(shù),則可以將隨機數(shù)seed設(shè)置成None,或者不設(shè)置。

>>> import numpy
>>> numpy.random.seed(None)
>>> numpy.random.rand(4)
array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318])
>>> numpy.random.rand(4)
array([ 0.4236548 ,  0.64589411,  0.43758721,  0.891773  ])
>>> numpy.random.rand(4)
array([ 0.96366276,  0.38344152,  0.79172504,  0.52889492])

同理,RandomState產(chǎn)生相同數(shù)據(jù)和不同數(shù)據(jù)

>>> import numpy
# 產(chǎn)生相同數(shù)據(jù)
>>> numpy.random.RandomState(0).rand(4)
array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318])
>>> numpy.random.RandomState(0).rand(4)
array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318])
>>> numpy.random.RandomState(0).rand(4)
array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318])

# None 產(chǎn)生不同數(shù)據(jù)
>>> numpy.random.RandomState(None).rand(4)
array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318])
>>> numpy.random.RandomState(None).rand(4)
array([ 0.4236548 ,  0.64589411,  0.43758721,  0.891773  ])
>>> numpy.random.RandomState(None).rand(4)
array([ 0.96366276,  0.38344152,  0.79172504,  0.52889492])

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • Python中使用SAX解析xml實例

    Python中使用SAX解析xml實例

    這篇文章主要介紹了Python中使用SAX解析xml實例,利用SAX解析XML文檔牽涉到兩個部分:解析器和事件處理器,需要的朋友可以參考下
    2014-11-11
  • Python實現(xiàn)全角半角字符互轉(zhuǎn)的方法

    Python實現(xiàn)全角半角字符互轉(zhuǎn)的方法

    大家都知道在自然語言處理過程中,全角、半角的的不一致會導致信息抽取不一致,因此需要統(tǒng)一。這篇文章通過示例代碼給大家詳細的介紹了Python實現(xiàn)全角半角字符互轉(zhuǎn)的方法,有需要的朋友們可以參考借鑒,下面跟著小編一起學習學習吧。
    2016-11-11
  • 在Python 中同一個類兩個函數(shù)間變量的調(diào)用方法

    在Python 中同一個類兩個函數(shù)間變量的調(diào)用方法

    今天小編就為大家分享一篇在Python 中同一個類兩個函數(shù)間變量的調(diào)用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 在TensorFlow中實現(xiàn)矩陣維度擴展

    在TensorFlow中實現(xiàn)矩陣維度擴展

    這篇文章主要介紹了在TensorFlow中實現(xiàn)矩陣維度擴展方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • C#返回當前系統(tǒng)所有可用驅(qū)動器符號的方法

    C#返回當前系統(tǒng)所有可用驅(qū)動器符號的方法

    這篇文章主要介紹了C#返回當前系統(tǒng)所有可用驅(qū)動器符號的方法,涉及C#操作系統(tǒng)硬件驅(qū)動的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • 全面了解python中的類,對象,方法,屬性

    全面了解python中的類,對象,方法,屬性

    下面小編就為大家?guī)硪黄媪私鈖ython中的類,對象,方法,屬性。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • python自動化辦公操作excel的示例詳解

    python自動化辦公操作excel的示例詳解

    這篇文章主要為大家詳細介紹了如何利用python來實現(xiàn)自動化辦公操作excel文件進行各種樣式展示,并自動發(fā)送文件給"老板"的郵箱,希望對大家有所幫助
    2024-03-03
  • Python匿名函數(shù)及應(yīng)用示例

    Python匿名函數(shù)及應(yīng)用示例

    這篇文章主要介紹了Python匿名函數(shù)及應(yīng)用,結(jié)合實例形式分析了Python匿名函數(shù)的功能、定義及函數(shù)作為參數(shù)傳遞的相關(guān)應(yīng)用操作技巧,需要的朋友可以參考下
    2019-04-04
  • Python實現(xiàn)簡易的圖書管理系統(tǒng)

    Python實現(xiàn)簡易的圖書管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Python實現(xiàn)簡易的圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • python Tkinter版學生管理系統(tǒng)

    python Tkinter版學生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了python Tkinter版學生管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評論

高清| 临沂市| 镇宁| 彝良县| 宁都县| 大关县| 遂昌县| 峡江县| 石渠县| 聂荣县| 灵台县| 唐河县| 汕头市| 东乡| 增城市| 肥乡县| 阿拉善右旗| 广灵县| 韶关市| 阳东县| 大理市| 安岳县| 扶绥县| 永丰县| 墨江| 绥阳县| 松江区| 贡山| 黄龙县| 略阳县| 福安市| 托里县| 陵水| 西安市| 合江县| 高淳县| 洪雅县| 克山县| 奎屯市| 忻城县| 宝坻区|