Tensorflow Keras 预测返回错误形状的输出

Tensorflow Keras Predict Returning Wrong Shaped Output

我正在尝试预测单个图像。但是我的模型 returns 是一个形状为 (1,1,1,2048) 的预测数组,而它应该是 (1,10)。知道我做错了什么吗?我的 x 输入形状在 (1,32,32,3) 处是正确的。

ResNet50V2(): 
  IMG_SHAPE = (32, 32, 3)
  return tf.keras.applications.ResNet50V2(input_shape=IMG_SHAPE, include_top=False, weights=None, classes=10)

model = ResNet50V2()
x = x[None, :]
predictions = model.predict(x)

您正在加载带参数的 keras 模型

include_top=False

负责将模型输出投影到您预期的 类 的全连接投影层的哪些部分。将参数更改为 True。

那是因为您使用 include top 禁用了 top,这会删除最终的分类层。您需要使用 10 类 添加您自己的层,或者删除 include top 参数并使用所需的输入重新训练网络。

图像分类网络通常在 2 个处理步骤内工作。 第一个是特征提取,我们称之为“基础”,它由一堆层组成,用于查找和增强图像上的模式(2DConv、Relu 和 MaxPool)。 第二个是“head”,用于对上一步提取的特征进行分类。 您的代码正在获取“base”的原始输出,没有分类,正如其他温和的人所说,解决方案是添加自定义“head”或将 include_top 参数更改为 True。