如何使用plot_model将Keras模型导出为完整PNG格式结构图
BiLSTM模型结构图导出问题解决方案
1. 配置plot_model参数展示完整层级信息
导出图内容空洞的核心原因有两点:一是Bidirectional属于嵌套包装层,默认配置下不会展开内部的双向LSTM分支结构;二是默认参数未开启张量维度、激活函数等细节展示,添加以下参数即可输出完整结构:
expand_nested=True:强制展开所有嵌套的包装层、子模型,会完整展示Bidirectional层内部的前向、后向LSTM计算分支,是解决结构显示空洞的核心参数show_shapes=True:在每一层结构旁标注对应输入、输出张量的维度show_layer_activations=True:标注每一层配置的激活函数类型show_dtype=True(可选):标注各层张量的数据类型rankdir='TB'(可选):控制结构图排布方向,TB为从上到下排布,设置为LR则为从左到右横向排布,更适合查看序列类模型的长链路结构
2. 直接导出PNG格式方法
无需额外格式转换,直接将plot_model方法中to_file参数的文件后缀设置为.png即可,接口会自动识别后缀并输出对应编码格式的图片,无需手动修改后缀或使用第三方工具转码。
修正后可直接运行的完整代码
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Bidirectional, LSTM, Dense from tensorflow.keras.utils import plot_model # 搭建BiLSTM时间序列预测模型 model_opendf = Sequential() model_opendf.add(Bidirectional(LSTM(100, activation='relu'), input_shape=(100, 1))) model_opendf.add(Dense(1)) model_opendf.compile(loss="mean_squared_error", optimizer="adam") # 打印模型文字摘要 model_opendf.summary() # 导出带完整信息的PNG格式结构图 plot_model( model_opendf, to_file='bilstm_model.png', expand_nested=True, show_shapes=True, show_layer_names=True, show_layer_activations=True, rankdir='TB' )
运行提示依赖缺失时,先执行
pip install pydot安装pydot库,再安装graphviz并配置好系统环境变量即可正常导出。
内容的提问来源于stack exchange,提问作者Pratamabudi
相关产品推荐
相关产品推荐

