Python Keras错误。当最后一批样品未达到批次尺寸时,重塑层
各位网友好, 我是个新手,我制作了一个简单的tensorflow模型:Python Keras错误。当最后一批样品未达到批次尺寸时,重塑层,python,tensorflow,keras,Python,Tensorflow,Keras,各位网友好, 我是个新手,我制作了一个简单的tensorflow模型: model = tf.keras.models.Sequential() model.add(Input(batch_shape=(batch_size = 100, 50, 100, 12))) model.add(Conv2D(filters= 1, kernel_size = (1,1)) model.add(Reshape((50, 100))) model.add(LSTM(units=16)) mode
model = tf.keras.models.Sequential()
model.add(Input(batch_shape=(batch_size = 100, 50, 100, 12)))
model.add(Conv2D(filters= 1, kernel_size = (1,1))
model.add(Reshape((50, 100)))
model.add(LSTM(units=16))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer = 'Adam')
我已经检查了模型摘要,维度似乎是合理的。
但是,当我运行完模型1个历元后,问题就出现了。原因是我在最后一批样品中少于100个,因为我的总样品量不是100的倍数。因此,重塑
层会出现以下错误:
InvalidArgumentError: Input to reshape is a tensor with 460000 values, but the requested shape has 500000
[[node sequential_18/reshape_9/Reshape (defined at <ipython-input-48-fa829a07c08d>:26) ]] [Op:__inference_distributed_function_167420]
InvalidArgumentError:要重塑的输入是一个具有460000个值的张量,但请求的形状具有500000个值
[node sequential_18/重塑_9/重塑(定义于:26)][Op:_推理_分布函数_167420]
我已经通过将批次大小更改为总样本大小的一个因子,从技术上解决了这个错误。然而,我仍然想知道是否有一个更强大的解决方案可以允许重塑
层接受可变的批量大小
非常感谢你的帮助 哦,没关系,我意识到如果我不在输入中指定批量大小,那也没关系。因此,在
input
层中使用shape
,而不是batch\u shape