【发布时间】:2021-07-13 22:10:12
【问题描述】:
我想查看所有 ResNet50 层,而不是 model.summary 中的 resnet50 块。我看到了一个类似的问题How can I use tf.keras.Model.summary to see the layers of a child model which in a father model?,但由于它使用的是 ResNet50 而不是 MobileNet,因此我很难将其适应我的模型。
这是我的模型:
Resnet = ResNet101(include_top=False, weights='imagenet', input_shape=(224, 224, 3))
model = tf.keras.Sequential(Resnet)
model.add(tf.keras.layers.GlobalAveragePooling2D())
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(units=no_classes, activation="softmax"))
这是我现在基于上一期的代码。
class ResNet50(tf.keras.Sequential):
def __init__(self, input_shape=(224, 224, 3), classes=8):
super(ResNet50, self).__init__()
self.backbone_model = [layer for layer in
tf.keras.applications.ResNet50(input_shape, include_top=False, pooling='avg').layers]
self.classificator = tf.keras.layers.Dense(classes,activation='relu', name='classificator')
def call(self, inputs):
x = inputs
for layer in self.backbone_model:
x = layer(x)
x = self.classificator(x)
return x
model = ResNet50()
model.add(tf.keras.layers.GlobalAveragePooling2D())
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(units=no_classes, activation="softmax"))
如何使用imagenet 权重初始化它?它是自动完成的吗? Resnet50 的池化average 和激活relu 是吗?我必须添加更多层吗?
【问题讨论】:
标签: python tensorflow machine-learning keras neural-network