作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 ResNet 模型架构并想更改最后几层;我如何才能在 Tensorflow 中仅使用 model zoo 中的模型架构?
最佳答案
要使用 ResNet 模型,您可以从 tensorflow.keras.applications
中选择几个模型,包括 ResNet50
、ResNet101
和 ResNet152
。然后,如果您想进行迁移学习,则需要更改一些默认参数。对于您的问题,您需要将 weights
参数设置为 None
。否则,将提供 'imagenet'
权重。此外,您需要将 include_top
设置为 False
,因为您的问题的类数可能与 ImageNet 不同。最后,您需要在 input_shape
中提供数据的形状。这看起来像这样。
base = tf.keras.applications.ResNet50(include_top=False, weights=None, input_shape=shape)
要获得模型的摘要,你可以这样做
base.summary()
要添加自己的头像,您可以使用函数式 API。您将需要添加一个 Input
层和您自己的 Dense
层,这将与您的任务相对应。这可能是
input = tf.keras.layers.Input(shape=shape)
base = base(input)
out = tf.keras.layers.Dense(num_classes, activation='softmax')(base)
最后,构建模型,你可以做
model = tf.keras.models.Model(input, out)
Model
构造函数有两个参数。第一个是模型的输入,第二个是输出。请注意,调用 model.summary()
会将 ResNet 基础显示为单独的层。要查看 ResNet 基础的所有层,您可以执行 model.layers[1].summary()
,或者您可以修改构建模型的代码。第二种方式是
out = tf.keras.layers.Dense(num_classes, activation='softmax')(base.output)
model = tf.keras.models.Model(base.input, out)
现在您只需使用 model.summary()
即可查看所有图层。
关于python - 如何使用预训练模型的模型架构但没有权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63367995/
我是一名优秀的程序员,十分优秀!