TensorFlow,许多小型Matvec与一些大型Matvec

时间:2020-10-21 07:23:47

标签: tensorflow matrix-multiplication

我当前的项目与胶囊网络有关,它需要许多小的矩​​阵矢量乘法。

如果没有优化,我认为一个大型matvec和许多小型matvec应该具有相同的操作次数。

将600维向量转换为相同维向量时。 temp_id中的矩阵和SELECT 1 as big_id, 1 as temp_id, '101' as names UNION ALL SELECT 1,1, 'z3Awwer', UNION ALL SELECT 1,1, 'gA1sd03', UNION ALL SELECT 1,3, 'gA1sd03', UNION ALL SELECT 1,3, 'sAs10sdf4', UNION ALL SELECT 1,5, 'Adf105', UNION ALL SELECT 2,1, 'A1sdf02', UNION ALL SELECT 2,1, '345A103', UNION ALL SELECT 2,2, '345A103', UNION ALL SELECT 2,2, 'A1sd04', UNION ALL SELECT 2,4, '6_0Awe105' 中的向量之间的matvec需要R^600x600

R^600的{​​{1}}和720000 operations (360000 summations + 360000 multiplications)的{​​{1}}之间的30x30 20-dimensional计算matvec向量时,它也需要{{1 }}。

计算速度彼此完全不同。 (大matvec约为900 matrices) 这是因为乘法运算过多吗?
还是R^20x2030 vectors没有针对许多小矩阵乘法进行优化?
(我猜这是因为大矩阵乘法更适合并行化。)

在回答之后,我决定使用tf.einsum。 Optimizing Tensorflow for many small matrix-vector multiplications

R^20

0 个答案:

没有答案