2013-07-21 55 views
2

我的工作自然圖像與文字的檢測項目。我必須訓練一個分類器,爲此我使用Pytables來存儲信息。我有:Pytables時性能

  • 62類(AZ,AZ,0-9)
  • 每個類都有100和600表
  • 之間
  • 每個表具有1條單個列來存儲一個32位的浮點
  • 每個列具有行2和2之間^ 2^8(取決於參數)

    我的問題是,經過我訓練分類器,它需要大量的時間來讀取測試信息。例如:一個數據庫有27900臺(62班每班* 450個表),並有每桌4行,它採取aprox的4HS閱讀和檢索我需要的所有信息。測試程序讀取每個表390次(爲類A-Z,A-Z)和0-9班150次得到我需要的所有信息。這是正常的嗎? 我試圖使用索引選項爲唯一列,但我沒有看到任何性能。我在HP Pavillion Dv6(4GB Ram DDR3,Core2 Duo)上搭配2GB Ram的VirtualMachine。

回答

0

這很可能是因爲對列進行列查找是您可以執行的較慢操作之一,這就是您的所有信息所在的地方。你有兩種基本的選擇,以增加表的性能與許多列和幾行:

  1. 透視這種結構,使得你有一個表有許多行和幾列。

  2. 移動到像CARRAY或EArray每行/列的更有效的數據結構。

此外,你可以嘗試使用壓縮來加快速度。這是一種通用的建議,因爲你沒有包含任何代碼。