[問題] np.zeros memory error

看板Python作者 (加油)時間7年前 (2018/04/19 12:04), 編輯推噓1(1010)
留言11則, 2人參與, 7年前最新討論串1/1
如標題 以下是我的code 出現下面錯誤 ML_CROSS Traceback (most recent call last): File "D:\Curry\DCIM\lab1\FINAL2\ML.py", line 27, in <module> designM=np.zeros((Train,M)) MemoryError >>> 請問大大 該如何解 謝謝 *************************** import csv import math import numpy as np print " ML_CROSS " Train=35000 Verif=5000 M=6400 D=80 s1=100 s2=100 pos=13.5 dim=0 lam=0 dim_cross=1 coordinate=[] target=[] #init_a = np.zeros((10000*10000),4096),np.dtype='float16')) target_v=np.zeros(Verif) target_t=np.zeros(Train) designM=np.zeros((Train,M)) ***************************************** -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.0.31 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1524110667.A.950.html

04/19 12:42, 7年前 , 1F
記憶體不足. designM有35000*6400*8(byte)=1.792e9
04/19 12:42, 1F

04/19 12:43, 7年前 , 2F
(byte) 約1.67GB...
04/19 12:43, 2F

04/19 12:44, 7年前 , 3F
(np.zeros的dtype預設是np.float64)
04/19 12:44, 3F

04/19 13:48, 7年前 , 4F
那請問 有甚麼解法嗎
04/19 13:48, 4F

04/19 14:14, 7年前 , 5F
而且我這邊記憶體是32GB
04/19 14:14, 5F

04/19 14:25, 7年前 , 6F
先試著改用np.float32或np.float16看看
04/19 14:25, 6F

04/19 14:26, 7年前 , 7F
因為你的code看起來就是要這麼大的陣列
04/19 14:26, 7F

04/19 14:29, 7年前 , 8F
另外可以試試用memory_profiler確認,看執行到designM這
04/19 14:29, 8F

04/19 14:29, 7年前 , 9F
行前,已經用掉多少記憶體了
04/19 14:29, 9F

04/19 14:29, 7年前 , 10F

04/19 14:31, 7年前 , 11F
再不然,可能要改存成sparse matrix的方式去計算
04/19 14:31, 11F
文章代碼(AID): #1Qs1LBbG (Python)
文章代碼(AID): #1Qs1LBbG (Python)