[問題] 儲存class(新增測試檔)

作者: xxi511 (少北)   2016-11-16 13:41:37
*********新增測試檔**********
下載網址: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
有稍微爬一下類似的文章,會有需要提供測試檔之類的嗎?
有需要的話我再來想要怎麼做
作者: kenduest (小州)   2016-11-16 14:17:00
搭配壓縮處理方式才儲存進去,應該可以減少佔用空間不過你說壓縮後一樣大還真詭異看錯了,有壓縮結果有變小但是跑很久
作者: benson415 (沛行)   2016-11-16 18:51:00
如果都是ndarray的話,存hdf5呢?有考慮過嗎~
作者: s860134 (s860134)   2016-11-16 21:38:00
https://gist.github.com/cactus/4073643如果有測試檔的話我也想測一下XD關鍵字python serialize speed其實比較想知道 matlab 存6MB,這代表你的資料很稀疏?如果知道 matlab 怎麼讀寫,用python 實作就不用換格式?
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2016-11-16 23:43:00
好奇+1 大小差距也太大

Links booklink

Contact Us: admin [ a t ] ucptt.com