【问题标题】:Converting Array of Lists to Keras Input将列表数组转换为 Keras 输入
【发布时间】:2020-01-05 16:50:09
【问题描述】:

给定一个表单数组

array([list([21603, 125, 737, 579, 2065, 10399, 1175, 0, 0, 0]),
       ...
       list([1896, 3917, 498, 296, 1452, 523, 754, 450, 3795, 341])],
      dtype=object)

您如何准备它以供 TensorFlow 2.0 RC0 中的 Keras 模型使用?在当前形式下,它会抛出错误

ValueError: 无法将 NumPy 数组转换为张量(不支持的对象类型列表)。

而且我似乎无法以我熟悉的形式获得它,

array([[21603, 125, 737, 579, 2065, 10399, 1175, 0, 0, 0],
       ...
       [1896, 3917, 498, 296, 1452, 523, 754, 450, 3795, 341]])

【问题讨论】:

  • 向我们展示你是如何生成数组的
  • @FranciscoCouzo 这不是一个单独的问题吗? (“我怎么一开始就不到这里呢?”)
  • 是的,但是从您的示例来看,似乎某些行的长度可能不同,您要么必须从一开始就创建一个张量,要么用零填充它
  • 我的数据中的所有行都有相同数量的元素(我试图在我的示例中说明这一点,但数字的长度不同使其不明显),在示例中每个都有 10 items(第一行有 7 个项目,用 3 个 0 填充)。
  • @FranciscoCouzo 我收回这一点,你可能是对的。看起来我用来填充的代码不会截断长度超过最大长度的列表。现在对其进行测试,编码大约需要 15 分钟。如果可以将其表述为适当且有效的答案(“这有时表明数组元素的长度不同”),我将很乐意接受。

标签: python numpy tensorflow keras


【解决方案1】:

如果您发现自己处于这种情况,您可以使用以下方法更正您的数组:

new_array = np.array(list(x for x in old_array))

【讨论】:

    猜你喜欢
    • 2022-01-06
    • 2021-12-17
    • 2020-12-29
    • 2018-09-09
    • 1970-01-01
    • 2019-01-05
    • 2015-08-29
    • 2019-10-15
    • 1970-01-01
    相关资源
    最近更新 更多