我們在matlab中有一個張量308 x 22 x 29 x 12 x 492020 它非常大。我們做了分解,它運行良好。現在我們正試圖重建它以獲得一些預測。當我們運行它時,當我們完成最後一個維度的乘法運算時,它會隨着內存不足而崩潰。我在matlab中重構分解張量
我試圖將我們的張量變成2×2矩陣,以使重建更容易。我找不到辦法,我嘗試在matlab中使用重塑函數,但沒有成功。所以基本上我想知道一種在matlab中將(308 x 22 x 29 x 12 x 492020)張量轉換爲二維矩陣的方法。
只是爲了解釋一點數據。我們有一個用戶搜索汽車的數據庫。我們想要做推薦模式。我們創建了一個有5個維度的張量:308(車型)x 22(車身類型)x 29(價格類別)x 12(製造年度)x 492020(用戶)。然後,我們運行張量分解,現在我們可以對最後一個分解的維度進行聚類,以便通過搜索對用戶進行分組,建立一些搜索日誌依賴關係。到此爲止我們都很好。現在我們想從它的分解版本中重構張量,以獲得一些可以作爲預測的新記錄。鑑於張量是巨大的,我們需要一種扁平化來重建的方法,如果有人可以分享一些關於如何做的示例matlab代碼,那將是一件好事,因爲我對matlab相對來說比較新。所以我想將5D張量轉換成2D
這是1.1e12元素;如果每個都是雙倍的話那就需要8TB的內存。我認爲這是不可能的。 –
我懷疑你有張量。我從來沒有聽說過一個接近這個尺寸的人。那是什麼樣的轉變? – duffymo
當然它存在,我們甚至能夠沒有任何問題地分解它,花了2分鐘在高性能服務器上。 – fenix2222