我正在使用keras
对自动编码器进行编码。
我输入了一个对称矩阵,将其分解为N个子矩阵,以训练我的深度学习框架。
由于此矩阵是对称的,因此我想输入一个较低的三角形矩阵。但是,一半的子矩阵将变为“空”(等于0s),这对于训练而言不是很好。我可以删除所有空子矩阵,但是那些来自矩阵对角线的子矩阵仍将是一半的空/一半。另一种选择是将下部三角形矩阵拆分为三角形而不是正方形。
问题是我不知道keras
层是否支持形状而不是正方形作为框架的输入。
答案 0 :(得分:1)
支持非正方形形状(即不是N x N
的矩阵),但是您的问题似乎是
how can I use the symmetric triangular
feature matrix and deduplicate along the diagonal?
例如,如果您有一个上三角矩阵,只需排除对角线以下的所有索引并展平。
这将为您提供可重复的特征向量表示。
例如,使用numpy:
>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> a[np.triu_indices(3, k = 0)]
array([1, 2, 3, 5, 6, 9])