2

是否可以使用超过 26 个小写字母作为索引tf.einsum

Numpy 也允许使用大写字母,即np.einsum('zA,AB->zB',M1,M2)whiletf.einsum返回错误。

这对于收缩张量网络非常有用。

4

1 回答 1

0

目前这是不可能的。

einsum TensorFlow使用以下正则表达式验证传递给的方程:

match = re.match('([a-z,]+)(->[a-z]*)?', equation)
if not match:
  raise ValueError(
      'Indices have incorrect format: %s' % equation
  )

任何不在类中的字符[a-z]都会导致函数引发错误。由于 TensorFlow 的einsum函数不支持椭圆...并且必须明确标记所有轴,这意味着只能对 26 维或更少维的张量进行操作。

于 2017-10-20T10:01:53.370 回答