使用tensorflow.keras.applications模块搭建MobileNetV2迁移学习框架

目录

1.构建迁移学习模型及其模型可视化

............(未完待续)


1.构建迁移学习模型及其模型可视化

要实现使用plot_model方法实现模型可视化,需要安装:

pip install graphviz
pip install pydot_ng

 然后,https://graphviz.gitlab.io/_pages/Download/Download_windows.html 安装graphviz。

接着添加环境变量中的path,添加路径C:\Program Files (x86)\Graphviz2.38\bin

(或者在Python中运行os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/')(此方法只能暂时添加)

import tensorflow as tf
#迁移MobileNetV2模型,并且不加载顶层
base_model=tf.keras.applications.mobilenet_v2.MobileNetV2(include_top=False,weights='imagenet',input_shape=(224,224,3))
inputs=tf.keras.layers.Input(shape=(224,224,3))
x=base_model(inputs)#此处x为MobileNetV2模型去处顶层时输出的特征相应图。
    
#自己设计顶层并连接
x=tf.keras.layers.AveragePooling2D()(x)
x=tf.keras.layers.Dense(1024,activation='relu')(x)
outputs=tf.keras.layers.Dense(8,activation='softmax')(x)
model=tf.keras.models.Model(inputs=inputs,outputs=outputs)

#模型可视化1,使用model.summary()方法
model.summary()

#模型可视化2,使用plot_model()方法
tf.keras.utils.plot_model(model,
                          to_file='model.png', #模型结构图保存名字
                          show_layer_names=True, #是否现实层名
                          show_shapes=True) #是否展示层形状

model.summary()的输出结果如下:

Model: "model_6"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_12 (InputLayer)        [(None, 224, 224, 3)]     0         
_________________________________________________________________
mobilenetv2_1.00_224 (Model) (None, 7, 7, 1280)        2257984   
_________________________________________________________________
average_pooling2d_6 (Average (None, 3, 3, 1280)        0         
_________________________________________________________________
dense_12 (Dense)             (None, 3, 3, 1024)        1311744   
_________________________________________________________________
dense_13 (Dense)             (None, 3, 3, 8)           8200      
=================================================================
Total params: 3,577,928
Trainable params: 3,543,816
Non-trainable params: 34,112
_________________________________________________________________

plot_model()保存的模型结构图如下:

使用tensorflow.keras.applications模块搭建MobileNetV2迁移学习框架_第1张图片

你可能感兴趣的:(keras模型可视化,PyQt,迁移学习)