高效张量表示与分解的软件框架及其应用
1. 引言
在数据挖掘和其他数据相关应用中,张量作为多维数组的数据形式得到了广泛应用。它在多因素过程分析中非常有用,其中数据分解方法,如高阶奇异值分解(HOSVD)或最佳秩分解起着重要作用。然而,现有的许多用于高效张量表示的平台通常缺乏使用不同数据类型的足够灵活性,或者由于通常用MatLab编写,不太适合其他编程平台。
本文旨在解决软件实现中高效张量表示和操作的问题,主要目标如下:
1. 能够根据上下文灵活地将张量作为多维数组和扁平数据表示进行访问,而无需额外的数据复制。
2. 实现高效的软件/硬件处理。
3. 灵活选择元素类型并进行特殊化(例如,具有布尔或定点数据类型的张量等)。
2. 软件框架架构
2.1 张量扁平化
张量扁平化(也称为张量矩阵化)是张量在计算机内存中表示以及许多分解的关键概念,它指的是将张量表示和操作成矩阵。给定一个P阶张量 (T \in \mathbb{R}^{N_1×N_2×…×N_P}),T的k模式向量(或纤维)是通过仅改变一个索引 (n_k) 同时保持所有其他索引固定而从T的元素中获得的向量。如果从T形成以下矩阵 (T(k) \in \mathbb{R}^{N_k×(N_1N_2…N_{k - 1}N_{k + 1}…N_P)}),则 (T(k)) 的列是T的k模式向量。
例如,对于一个4D张量的2模式扁平化(P = 4),前向和后向循环模式的其他索引排序分别为3 - 4 - 1和1 - 4 - 3。前向循环扁平化在图像处理中非常实用,因为视频流的每一帧都保持在一起,便于将视频流转换为张量。
超级会员免费看
订阅专栏 解锁全文
6698

被折叠的 条评论
为什么被折叠?



