[問題] 請教hdf5讀取速度問題

看板Python作者 (Poker Face)時間2年前 (2021/05/14 15:03), 2年前編輯推噓3(306)
留言9則, 5人參與, 2年前最新討論串1/1
請教大家一下,我有一個large size的hdf5檔案. 檔案裡面存放一個large matrix, shape是(15579,81173) 我需要從這個matrix的15579個row裡面, 隨機取出128個row出來給AI model使用. 現在遇到的問題是讀取速度很慢, 取出128個row大概要花10秒以上的時間. 想請問大家有更快讀取的作法嗎? 感謝. 以下附上程式碼. import h5py import numpy as np h5 = h5py.File('file.h5', 'r') matrix = h5['matrix/data'] random_list = np.random.randint(matrix.shape[0], size=128) rows = matrix[random_list,:] 感謝大家回答. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.83.225 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1620975821.A.DA9.html ※ 編輯: kakar0to (42.73.83.225 臺灣), 05/14/2021 15:04:25 ※ 編輯: kakar0to (42.73.83.225 臺灣), 05/14/2021 15:04:44

05/14 16:43, 2年前 , 1F
資料太大會慢正常
05/14 16:43, 1F

05/14 19:56, 2年前 , 2F
攤平塞lmdb呢
05/14 19:56, 2F

05/14 20:56, 2年前 , 3F
flatten完應該會快一點
05/14 20:56, 3F

05/15 10:41, 2年前 , 4F
是否有辦法知道matrix在file的offset?
05/15 10:41, 4F

05/15 10:41, 2年前 , 5F
我可以用c code去讀出這個matrix, 可能會比較快
05/15 10:41, 5F

05/15 10:41, 2年前 , 6F
用c的fread與fseek去讀我想要的row
05/15 10:41, 6F

05/16 19:22, 2年前 , 7F
以前有用過hdf5 chunk_shape這個參數會影響讀取速度
05/16 19:22, 7F

05/16 19:24, 2年前 , 8F
在存hdf5時試試用(1,81173)去切
05/16 19:24, 8F

05/18 10:36, 2年前 , 9F
儲存成15579 * (1,81173)的hdf5
05/18 10:36, 9F
文章代碼(AID): #1WdY3Dsf (Python)
文章代碼(AID): #1WdY3Dsf (Python)