【问题标题】:Unknown ? shape keras Deep learning未知?塑造 keras 深度学习
【发布时间】:2019-02-05 16:57:26
【问题描述】:

我正在尝试使用 Keras 实现深度学习模型。然而,我遇到了未知形状实现的问题。我正在寻找类似的错误,但没有找到。

这是我的代码。

Xhome = dataset[:,32:62]

Xaway = dataset[:,62:92]

Ywin = dataset[:,2:32]

Yscorehome = dataset[:,0]

Yscoreaway = dataset[:,1]

home = Input(shape=(2431,30))

print(home)

Tensor("input_6:0", shape=(?, 2431, 30), dtype=float32)

如果您需要更多信息来了解,请询问我。

【问题讨论】:

  • 您是否试图找到应该替换“?”的值?在最后一行?
  • 我只是不想有这个 None 列并且只有 (2431,30) 的形状
  • 你有 2431 个样本,每个样本有 30 个特征吗?
  • 您的输入看起来如何?那些图像?如果您的数据的维度为 30,则形状应为 (?,30),因为您提供给网络的样本数量应该是可变的。
  • 这是我编码的文本。是的,它是 30 列的 2431 行。

标签: python input keras deep-learning shapes


【解决方案1】:

未知形状(?或无)不是错误 - 这意味着此尺寸是可变的,而不是固定尺寸。

Keras 模型中的第一个维度始终是批量大小,因此形状为 None。这允许您使用可变的批量大小。当您在 Keras 层中定义输入形状时,批量大小维度将被忽略,您只需定义每个样本的形状。在您的情况下,输入形状 (2431,30) 表示每个样本都具有此形状。如果您希望批量大小为 2431,则应改为使用 (30,) 作为输入形状。

【讨论】:

  • 感谢您的澄清。即使使用 Input(shape=(30,)) 我也得到了形状(None,30)。然后,当我拟合模型时,我遇到了这个错误:'当将符号张量提供给模型时,我们希望张量具有静态批量大小。得到具有形状的张量:(None, 30)'
  • 输入形状的第一个维度将始终为无,因此 (None, 30) 符合预期。听起来您正在尝试将模型拟合到张量上(可能是输入层?),但您应该将其拟合到实际数据上(即形状为 (batch_size, 30) 的 numpy 数组)。
  • 感谢您的帮助,我现在更了解神经网络的工作原理了!
猜你喜欢
  • 1970-01-01
  • 2018-02-03
  • 2019-07-17
  • 2016-12-23
  • 2021-04-08
  • 2018-10-25
  • 2021-05-26
  • 2017-06-15
  • 2019-10-20
相关资源
最近更新 更多