keras中application模型可视化

问题描述

keras提供了模型的可视化,如下:
这里写图片描述

import keras
from keras import models, layers,Model
from keras.applications import VGG16

conv_base=VGG16(weights='imagenet',include_top=False,input_shape=(128,128,3))

smodel = models.Sequential()
smodel.add(conv_base)
smodel.add(layers.Flatten())
smodel.add(layers.Dense(256, activation='relu'))
smodel.add(layers.Dense(1, activation='sigmoid'))

keras.utils.plot_model(smodel, to_file='model.png', show_shapes=True, show_layer_names=True, rankdir='LR')

可以看出,其对Model对象VGG16仅展示了概要信息,如何展示其详尽信息呢?

解决方案

keras.utils.plot_model时,会遍历到模型的各层,并使用诸如layer的name属性等,如上,使用的就是 conv_base(Model对象) 的name。具体可以查看keras.utils.vis_utils.model_to_dot()的源码。


注意以下继承关系:
Model->Container->Layer->Object。(子类->父类)

故新建模型,并将application的每一层加入该模型中。实现效果如下。
这里写图片描述

import keras
from keras import models, layers
from keras.applications import VGG16


conv_base=VGG16(weights='imagenet',include_top=False,input_shape=(128,128,3))

smodel = models.Sequential()
for m in conv_base.layers:
    smodel.add(m)
smodel.add(layers.Flatten())
smodel.add(layers.Dense(256, activation='relu'))
smodel.add(layers.Dense(1, activation='sigmoid'))

keras.utils.plot_model(smodel, to_file='model.png', show_shapes=True, show_layer_names=True, rankdir='TB')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值