?Keras提供了一个 plot_model() 函数用于可视化模型的各个层,该函数通过以下语句导入:
from keras.utils.vis_utils import plot_model
?需要安装: (1)pydotplus库 (2)pydot-ng库 (3)graphviz库 (4)graphviz软件(版本 2.38,已上传资源需要自取)
pydot 1.4.1 py36haa95532_0 defaults
pydot-ng 2.0.0 pypi_0 pypi
pydotplus 2.0.2 pypi_0 pypi
graphviz 2.38.0 4 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
?安装完 graphviz 软件后需要配置环境变量,即将
C:\Program Files (x86)\Graphviz2.38\bin
配置到系统变量里的Path中。 ?将 keras.untils.vis_utils 中的所有pydot改为pydotplus
# 查找
Ctrl+F
# 替换
Ctrl+Shift+R
?示例
import keras
from keras import layers
from keras.datasets import imdb
from keras.preprocessing import sequence
from keras.utils import plot_model
# 作为特征的单词个数
max_features = 2000
# 超过500长度之后的截断文本
max_len = 500
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features)
x_train = sequence.pad_sequences(x_train, maxlen=max_len)
x_test = sequence.pad_sequences(x_test, maxlen=max_len)
model = keras.models.Sequential()
model.add(layers.Embedding(max_features,
output_dim=128,
embeddings_initializer='uniform',
input_length=max_len, name='embed'))
model.add(layers.Conv1D(32, 7, activation='relu'))
model.add(layers.MaxPooling1D(pool_size=5))
model.add(layers.Conv1D(32, 7, activation='relu'))
model.add(layers.GlobalMaxPooling1D())
model.add(layers.Dense(1))
model.summary()
# model.compile(optimizer='rmsprop',
# loss='binary_crossentropy',
# metrics=['acc'])
plot_model(model, to_file="file\\model.png", show_shapes=True)
|