我使用numpy的零和numpy.random.randn實現計算的不一致numpy的參數中的任何原因爲numpy.zeros和numpy.random.randn
W1 = np.random.randn(n_h, n_x) * .01
b1 = np.zeros((n_h, 1))
我不知道爲什麼隨機.randn()可以接受兩個整數,而零()需要一個元組。這是否有充分的理由?
Cheers,JChen。
我使用numpy的零和numpy.random.randn實現計算的不一致numpy的參數中的任何原因爲numpy.zeros和numpy.random.randn
W1 = np.random.randn(n_h, n_x) * .01
b1 = np.zeros((n_h, 1))
我不知道爲什麼隨機.randn()可以接受兩個整數,而零()需要一個元組。這是否有充分的理由?
Cheers,JChen。
很可能這只是一個歷史問題。前幾個軟件包合併的結果,並且有很長的發展。一些怪癖得到清理,其他人保持現狀。
randn(d0, d1, ..., dn)
zeros(shape, dtype=float, order='C')
randn
有這樣一個字條:
這是一個方便的功能。如果您想要一個接口將第一個參數作爲 元組,請改爲使用
numpy.random.standard_normal
。
standard_normal(size=None)
隨着*
很容易得到一個元組傳遞給randn
:
np.random.randn(*(1,2,3))
np.zeros
需要幾個關鍵字參數。 randn
沒有。您可以使用(*args, **kwargs)
簽名來定義Python函數。但是接受一個元組,特別是一個用於shape
的元組更適合。但這是一個意見問題。
np.random.rand
和np.random.random_sample
是另一對這樣的對。最有可能的是rand
和randn
是舊版本,並且standard_normal
和random_sample
是更新的設計以符合更常見的tuple
風格。