keras的模型可视化
参考:https://blog.csdn.net/chenxy_bwave/article/details/121955478
from tensorflow.keras import utils
utils.plot_model(model, 'model_cnnppt.png',show_shapes=True,show_dtype=True,show_layer_names=True)
两行代码,效果惊艳。
但是这样也有一个弊病,就是图太长了。
我们可以用这个网站作图
http://alexlenail.me/NN-SVG/LeNet.html
也可以本地使用:
git clone https://github.com/alexlenail/NN-SVG
然后直接点开index.html
根据代码,我们填写参数,使用lenet
model.add(Conv2D(32, (3, 3), input_shape=(150, 150, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=2))
model.add(Dropout(0.05))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=2))
model.add(Dropout(0.05))
model.add(Conv2D(64, (3, 3),activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=2))
model.add(Dropout(0.2))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=2))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_classes, activation="softmax"))
美中不足是不能显示dropout的过程。
这个https://github.com/alexlenail/NN-SVG
也能画,画出来也很好看,但是美中不足是网络较大就会出错,导出svg不正常。
因此有的参数我略做了修改
然后后面我们修改图中文字
http://www.graphviz.org/
我们也可以用这个画
但是这个也比较麻烦