【问题标题】:TypeError: Error converting shape to a TensorShape: only size-1 arrays can be converted to Python scalarsTypeError:将形状转换为 TensorShape 时出错:只能将大小为 1 的数组转换为 Python 标量
【发布时间】:2019-02-27 09:58:04
【问题描述】:

我正在尝试在 Jupyter Notebook 中使用 Keras 中的 CNN 构建文本自动编码器。我正在使用 IMDB 数据集,该数据集有 25,000 个示例,分为 2 列,其中之一是评论和评级。
我首先将它们标记化并将它们转换为数字序列并填充到 2340(最大序列长度)。 所以,最后我的矩阵大小是 25,000 x 2340。 然后我试图传入输入层,但我没有得到

input_ = Input((2340,)) 
Input(X_train)

然后我,得到以下错误:

TypeError:将形状转换为 TensorShape 时出错:只有 size-1 的数组可以转换为 Python 标量。

X_train 分解成训练集和验证集后的形状为 (20000, 2340)。

请解释为什么会出现这个错误。

【问题讨论】:

    标签: keras keras-layer autoencoder


    【解决方案1】:

    我觉得错误在这里 Input(X_train),根据 keras 文档,函数 Input 期望 shape=(2340,) 表示预期输入将是 2340 维向量的批次,默认情况下假定形状为是(无,2340),所以我认为您不需要再次通过输入(X_train)。以下是 keras 文档页面中的示例

    x = Input(shape=(32,))
    y = Dense(16, activation='softmax')(x)
    model = Model(x, y)
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-29
      • 2019-09-14
      • 2021-10-17
      • 2018-07-22
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      相关资源
      最近更新 更多