【发布时间】:2023-01-18 14:41:53
【问题描述】:
我是这一切的新手所以请善待这个问题:)
我想做的是使用迁移学习技术训练 Mobilenet 分类器,然后实施 Gradcam 技术来了解我的模型正在研究的内容。
- 我创建了一个模型
input_layer = tf.keras.layers.Input(shape=IMG_SHAPE) x = preprocess_input(input_layer) y = base_model(x) y = tf.keras.layers.GlobalAveragePooling2D()(y) y = tf.keras.layers.Dropout(0.2)(y) outputs = tf.keras.layers.Dense(5)(y) model = tf.keras.Model(inputs=input_layer, outputs=outputs) model.summary()型号概要:
Model: "functional_2" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= input_3 (InputLayer) [(None, 224, 224, 3)] 0 _________________________________________________________________ tf_op_layer_RealDiv_1 (Tenso [(None, 224, 224, 3)] 0 _________________________________________________________________ tf_op_layer_Sub_1 (TensorFlo [(None, 224, 224, 3)] 0 _________________________________________________________________ mobilenetv2_1.00_224 (Functi (None, 7, 7, 1280) 2257984 _________________________________________________________________ global_average_pooling2d_1 ( (None, 1280) 0 _________________________________________________________________ dropout_1 (Dropout) (None, 1280) 0 _________________________________________________________________ dense_1 (Dense) (None, 5) 6405 ================================================================= Total params: 2,264,389 Trainable params: 6,405 Non-trainable params: 2,257,984 _________________________________________________________________- 将其传递给 grad cam 算法,但 grad cam 算法无法找到最后一个卷积层
合理的解决方案:如果我可以在模型中添加未包装的 mobilenet 层而不是封装的 'mobilenetv2_1.00_224' 层,grad cam 算法将能够找到最后一层
问题
我无法创建可以将数据增强和预处理层添加到 mobilenet 展开层的模型。
提前致谢
问候 安吉特
【问题讨论】:
-
我目前有完全相同的问题。你找到解决办法了吗?
-
@Skruff 是的,我能够解决这个问题,在下面的 anser 中发布了 sn-p
标签: tensorflow keras transfer-learning mobilenet