【发布时间】:2019-10-03 14:35:13
【问题描述】:
我的网络的第一层是一个Conv1D,如下:
Conv1D(128, 9, activation='relu', input_shape=(100, 28))
我的输入数据由输入形状为 (100, 28) 的元素组成。即我的数据集由 n 个这些元素组成,每个元素都有一个标签。标签是长度为 15 的一次性数组。
.element_spec 在我的数据集上的输出给出:
(TensorSpec(shape=(100, 28), dtype=tf.float32, name=None),
TensorSpec(shape=(15,), dtype=tf.int32, name=None))
这看起来一致,但在模型上运行 .fit() 会出现此错误:
Error when checking input: expected conv1d_18_input to have 3 dimensions, but got array with shape (100, 28)
我在这里做错了什么?顺便说一句,这是 TensorFlow 2.0。
编辑:如果我单步执行 tf 代码,它似乎在期待 (None, 100, 28),但这对我来说似乎是错误的。呈现给层的每个元素都是 (100, 28)。 “无”肯定只是表示它被多次调用。此外,您不能将 (None, 100, 28) 指定为图层的 input_shape,否则它会抱怨它只需要二维,而不是三个!
非常感谢,
朱利安
【问题讨论】:
-
您介意指定您使用的语言吗?
-
语言是 Python 3.6
-
感谢您的指点,但我认为这是一个不同的问题。该答案需要将输入从 (590, 30) 重塑为 (590, 30, 1)。即(记录数、时间单位数、特征数)。 (30, 1) 然后用作输入形状。就我而言,我已经有 (n, 100, 28)。我尝试使用 (100, 28) 作为输入形状,这就是我得到错误的时候。
标签: python tensorflow conv-neural-network tensorflow2.0