我們正在嘗試改善一套 AI Inference 的程式,原本是由 Python 所撰寫,但是在 AI 後處理的部份速度太慢,所以想要讓新人改用 C++ 的程式以改善速度。
為了確保資料一樣,AI 辨識完得到的數據是 Numpy 格式,所以我們想將該資料儲存起來,直接給新人載入驗證程式碼。
起初想法是透過 Pickle 將 Buffer 儲存起來,但後來發現 Numpy 有提供相對應的方法。
NPY 是一個由 Numpy 所提出的 Binary 的檔案格式。至於位什麼不用 Pickle 有下列幾個缺點:
上述方案都可以透過 ndarray.tofile()
跟 fromfile()
去做儲存跟載入 Buffer 但是就會有上述問題。
而 NPY 就是為了解決這些問題!
現在很常見的是 Eigen 在 C++ 當中處理 2D 陣列很常見的套件,再來是一個後起之秀 xtensor 號稱要成為 C++ 借的 Numpy,甚至是有一個前輩寫了一套簡單的工具叫 cnpy。
到底使用那一款會比較好呢?