【问题标题】:ResNet model in keras and tf.keras give different output for the same imagekeras 和 tf.keras 中的 ResNet 模型为同一图像提供不同的输出
【发布时间】:2026-01-03 20:45:02
【问题描述】:

对于给定的图像,我正在提取 ResNet 特征,即在所有卷积层和全局最大池化之后,每张图像提供 2048 长度的向量。

之前,我使用keras==2.3.1 和后端tensorflow==1.13.1。现在,我已经转移到tensorflow==2.0.0,因为 keras 已与 tensorflow 合并。我用tf.keras而不是keras替换了我的代码。

但现在提取的特征与之前提取的特征不一样。 ResNet 是一个独立于 tensorflow/keras 甚至 pytorch 的模型。它的功能是预定义的。为什么会出现这种差异?是否有任何参数可以调整以获得相同的功能?

编辑1:添加代码

from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input
resnet_model = ResNet50(include_top=False)

【问题讨论】:

  • 您看到的区别是什么?
  • 输出值不同。你想让我放一个样本输出吗?我以为它不会添加任何额外的信息,所以没有添加
  • 您使用的是预训练网络吗?你下载了 imagenet 权重吗?
  • 也许 dd 你正在使用的代码,版本之间的 ResNet 有变化,也许权重也发生了变化,你认为网络独立于框架的假设并不正确(有多个ResNet 版本)。
  • @SajanGohil 是的,我正在使用预训练的 imagenet 权重。我已经用我正在使用的代码更新了我的问题。

标签: python tensorflow keras tf.keras resnet


【解决方案1】:

模型本身会不断更新,并使用效果更好的权重。 Here 是发布文件夹,您可以在其中查看不同权重文件的发布。链接的文件夹用于 keras,tf.keras 很可能也使用该文件夹。 您面临的问题可能是因为库的版本而不是调用模型的方法。

例如,here 您可以找到 keras_applications 代码并检查指向版本 v0.2 的权重路径(链接的是 keras,但对于 tensorflow.keras 类似)。

较旧的库版本具有较旧的链接,更新库也会更新路径。

【讨论】:

    最近更新 更多