我有一個大的numpy數組,我將使用隨機生成的值進行線性投影。Numpy:減少隨機數據點積的內存佔用
>>> input_array.shape
(50, 200000)
>>> random_array = np.random.normal(size=(200000, 300))
>>> output_array = np.dot(input_array, random_array)
不幸的是,random_array
佔用了大量的內存,和我的機器開始交換。在我看來,我實際上並不需要立即全部使用random_array
;在理論上,我應該能夠在點積計算過程中產生它,但我無法弄清楚如何。
如何從input_array
減少計算output_array
的內存佔用量?
這是一個簡單的例子,或者是你實際上點綴成一個大陣正態分佈的隨機數的?產生'random_array'的方式可能是相關的。 – 2012-01-04 00:31:19
@DavidZaslavsky不是一個簡單的例子 - 這正是我想要做的。一種允許變化「random_array」的方法是一種獎勵,但不是必需的。 – 2012-01-04 00:34:18
有一個玩弄這個,我不知道這是可能的 - 'np.dot'需要知道所有輸入的大小(作爲二維點積==矩陣乘法)。在任何情況下,我都看不到在'np.dot'中使用生成器的(簡單)方法。 – Yuushi 2012-01-04 01:22:14