首页 > 解决方案 > Keras BatchNormalization 层不兼容错误

问题描述

我有以下(部分)网络架构:

在此处输入图像描述

获得者

...
pool = GlobalAvgPool()(gc_2)
predictions = Dense(units=32, activation='relu', use_bias=False)(pool)
predictions = BatchNormalization()(predictions)
...

我正在尝试插入批处理规范化层,但出现以下错误:

ValueError: 层 batch_normalization_1 的输入 0 与层不兼容:预期 ndim=2,发现 ndim=3。收到的完整形状:[None, 1, 32]

我猜第二个维度是造成这个事故的原因。有什么办法可以摆脱它吗?

标签: tensorflowkerastensorflow2.0batch-normalization

解决方案


如果您的模型编译成功,则您的模型定义没有问题。

这更有可能发生,因为输入数据的形状和尺寸与您的模型所需的输入形状不兼容。

expected ndim=2, found ndim=3.意味着模型需要一个 2D 张量


推荐阅读