Tensorflow:维度太多

Tensorflow: Too many dimensions

我正在尝试创建一个像这样的 TensorFlow (2.0) 变量:

c_init = tf.zeros_initializer()
c = tf.Variable(initial_value=c_init(shape=shape, dtype="float32"), trainable=True)

形状变量是这样的:

shape=(49, 52, 26, 49, 6, 3, 31, 11, 24, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)

我收到此错误消息:

InvalidArgumentError: Too many dimensions [Op:Fill] name: zeros/

我不知道维数有限制。我在 TensorFlow 文档中没有看到任何关于它的内容。有什么办法可以绕过这个限制吗?

  1. 最大维度数为 254

  2. 绕过这个限制?

如果你不介意的话,我不得不问你一个问题: 你确定你的问题有那么多维度吗?我见过人们错误地使用维度的大小作为维度的数量。您确定尺寸 1 有这么多维度吗?

我们不要忘记没有必要将任何东西表示为张量。我们可以在不使用多维数据类型(张量)的情况下解决任何问题。使用这种表示的原因是因为它允许应用某些线性代数运算,并且与更传统代码中的常规循环相比,它们要快得多。

所以,是的,你可以绕过这个限制,但你需要进行一些“灵魂搜索”并弄清楚你打算将哪种数学运算应用于这个巨大的张量。