【问题标题】:ValueError: Can't convert non-rectangular Python sequence to TensorValueError:无法将非矩形 Python 序列转换为张量
【发布时间】:2019-10-11 18:50:36
【问题描述】:

我想用tf.convert_to_tensor将列表更改为张量,数据如下:

data=[

array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   1., 0., 0.]), 
array([0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.]), 
array([0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
   0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,
   0., 0., 0.]), 
array([0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.])
    ]

没用,系统提示:

ValueError: 无法将非矩形 Python 序列转换为张量。

如何解决这个问题?

【问题讨论】:

    标签: python numpy tensorflow


    【解决方案1】:

    我不确定它们是否存在于 TensorFlow 1 中,但 TensorFlow 2.0 支持 RaggedTensors,文档将其描述为“......嵌套可变长度列表的 TensorFlow 等价物。”

    我认为将您的数据转换为 RaggedTensors 将是微不足道的。它甚至可能很简单:

    data_tensor = tf.ragged.constant(data)
    

    【讨论】:

    【解决方案2】:

    你不能。就像错误消息说的那样,TensorFlow 数组在一维上不能有不同的大小。尝试使用 TensorFlow 数组列表或数据集 api。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 2019-02-04
    • 2018-04-23
    • 2021-06-02
    • 2023-04-08
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多