在tf.einsum中使用超过26个索引?

时间:2017-10-18 10:00:38

标签: python tensorflow numpy-einsum

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

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

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

1 个答案:

答案 0 :(得分:0)

目前无法实现。

TensorFlow验证传递给einsum using the following regular expression的等式:

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

不在类[a-z]中的任何字符都会导致该函数引发错误。由于TensorFlow的einsum函数不支持省略号...,并且必须明确标记所有轴,因此只需要操作具有26维或更少维度的张量。