利用keras预加载模型添加新的层来构建自己所需的模型:
1 from keras.layers import GlobalAveragePooling2D,Dense 2 from keras.applications import VGG16 3 from keras.models import Model 4 def build_model(): 5 base_model = VGG16(weights="imagenet",include_top=False) 6 #在分类器之前使用 7 gap = GlobalAveragePooling2D()(base_model) 8 predictions = Dense(20,activation="softmax")(gap) 9 model = Model(inputs=base_model.input,outputs=predictions) 10 return model
1.使用gap池化层来代替全连接层,可以达到很好的降维效果减少参数。
2.总结起来,CAM 的意义就是以热力图的形式告诉我们,模型通过哪些像素点得知图片属于某个类别。
3.# 注意观察f = lambda a,b,c:a+b+c 中的关键字lambda表示匿名函数,
# 冒号:之前的a,b,c表示它们是这个函数的参数。
# 匿名函数不需要return来返回值,表达式本身结果就是返回值。