我们在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
+3
这是1.1e12元素;如果每个都是双倍的话那就需要8TB的内存。我认为这是不可能的。 –
+0
我怀疑你有张量。我从来没有听说过一个接近这个尺寸的人。那是什么样的转变? –
+0
当然它存在,我们甚至能够没有任何问题地分解它,花了2分钟在高性能服务器上。 –