作者xxi511 (少北)
看板Python
標題[問題] 儲存class(新增測試檔)
時間Wed Nov 16 13:41:37 2016
*********新增測試檔**********
下載網址:
https://goo.gl/B753B9
我的想法是先讀取gzip壓過的檔案,再把這個檔案存成無壓縮的
這樣就可以用debug mode來讀取無壓縮版的來看內容
小弟才剛學python,寫的程式可能不太好看,請多包涵
拜託大家了<(_ _)>
原版的存檔是使用matlab內建的方法,我不知道這樣有沒有參考價值
save(cache_file, 'roidb', '-v7.3');
https://www.mathworks.com/help/matlab/ref/save.html
*****************************
大家好
目前在把一個本來由matlab實現的專案改成用python 2.7 實現
在計算過程中需要把class存起來以後再用
上網找一下大家都推薦用cPickle
但我存出來的檔案size太大了
matlab存出來的檔案是6MB,但用python存出來是1.9G!!
如果只是單一檔案的話還好
但過程中會存一萬多個檔,雖然不是每個都這麼大,但這種size還滿困擾的
所以想問一下有沒有那種存檔速度快,出來的size又很小的方法
要存的東西roidb
https://i.stack.imgur.com/SskRS.png
boxes, classes,gt, oberlap 的長度都是 2005
# 時間大約10秒 size 1.9G, debug mode
with open(cache_file + '.pkl', 'wb') as f:
pickle.dump(roidb, f, protocol=pickle.HIGHEST_PROTOCOL)
# 時間大約5分鐘 size 158MB, release mode
# debug mode沒等到結果,跑了半小時還在跑
with gzip.open(cache_file + '.pgz', 'wb') as f:
pickle.dump(roidb, f, protocol=pickle.HIGHEST_PROTOCOL)
其他有試過
scipy.io.savemat(debug mode),速度大約10秒但檔案size一樣是1.9G
hickle 速度慢(debug mode),檔案超過3G
有稍微爬一下類似的文章,會有需要提供測試檔之類的嗎?
有需要的話我再來想要怎麼做
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.124.73.62
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1479274899.A.4E7.html
※ 編輯: xxi511 (140.124.73.62), 11/16/2016 13:44:05
推 kenduest: 搭配壓縮處理方式才儲存進去,應該可以減少佔用空間 11/16 14:17
→ kenduest: 不過你說壓縮後一樣大還真詭異 11/16 14:18
→ kenduest: 看錯了,有壓縮結果有變小但是跑很久 11/16 14:19
沒錯跑超久的,無壓縮寫入的話在debug大約10秒,壓縮寫入的話跑了半小時還在跑
沒辦法等下去阿orz,雖然知道release和debug在速度上有差但這也差太多了
※ 編輯: xxi511 (140.124.73.62), 11/16/2016 14:39:16
※ 編輯: xxi511 (140.124.73.62), 11/16/2016 14:39:38
※ 編輯: xxi511 (140.124.73.62), 11/16/2016 14:40:18
→ benson415: 如果都是ndarray的話,存hdf5呢?有考慮過嗎~ 11/16 18:51
→ s860134: 如果有測試檔的話我也想測一下XD 11/16 21:38
→ s860134: 關鍵字python serialize speed 11/16 21:39
→ s860134: 其實比較想知道 matlab 存6MB,這代表你的資料很稀疏? 11/16 21:40
→ s860134: 如果知道 matlab 怎麼讀寫,用python 實作就不用換格式? 11/16 21:46
推 Sunal: 好奇+1 大小差距也太大 11/16 23:43
※ 編輯: xxi511 (140.124.73.62), 11/17/2016 12:07:24
※ 編輯: xxi511 (140.124.73.62), 11/17/2016 12:10:47
※ 編輯: xxi511 (140.124.73.62), 11/17/2016 12:13:54