首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用函数API建立模型的Keras可视化

用函数API建立模型的Keras可视化
EN

Stack Overflow用户
提问于 2018-01-23 17:16:22
回答 3查看 3.3K关注 0票数 4

我想问一下,是否有一种简单的方法来可视化从Functional构建的Keras模型?

现在,对我来说,在高级别(顺序模型)进行调试的最佳方法是:

代码语言:javascript
复制
model = Sequential()
model.add(...
...

print(model.summary())
SVG(model_to_dot(model).create(prog='dot', format='svg'))

然而,如果我们构建一个更复杂、非顺序的模型,我很难找到一种可视化Keras的好方法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-23 18:11:40

是的,尝试检查keras.utils,它有一个方法plot_model(),正如在detail 这里上解释的那样。似乎您已经熟悉了keras.utils.vis_utilsmodel_to_dot方法,但这是另一种选择。它的用法类似于:

代码语言:javascript
复制
from keras.utils import plot_model
plot_model(model, to_file='model.png')

老实说,这是我所找到的仅使用Keras的最佳方法。像您所做的那样使用model.summary()有时也很有用。我还希望有一些工具能够更好地可视化一个人的模型,甚至能够看到每层的权重,以决定最佳的网络结构和初始化(如果你知道一个,请告诉:] )。

您目前拥有的最佳选择可能是在坦氏板上可视化,这是您在Keras中的一个包含TensorBoard回调的部分。这使您能够可视化您的培训和指标感兴趣,以及一些信息激活您的层,您的偏见和内核,等等。基本上,在拟合模型之前,您必须将这些代码添加到您的程序中:

代码语言:javascript
复制
from keras.callbacks import TensorBoard
#indicate folder to save, plus other options
tensorboard = TensorBoard(log_dir='./logs/run1', histogram_freq=1,
    write_graph=True, write_images=False)  

#save it in your callback list, where you can include other callbacks
callbacks_list = [tensorboard]
#then pass to fit as callback, remember to use validation_data also
regressor.fit(X, Y, callbacks=callbacks_list, epochs=64, 
    validation_data=(X_test, Y_test), shuffle=True)

然后,您可以使用终端上的以下命令运行Tensorboard (在the服务上本地运行):

代码语言:javascript
复制
tensorboard --logdir=/logs/run1

然后,这将指示您在哪个端口可视化您的培训。如果您有不同的运行,您可以通过--logdir=/logs来将它们形象化,以便进行比较。当然,关于Tensorboard的使用还有更多的选项,所以我建议您检查包含的链接,如果您正在考虑使用它。

票数 6
EN

Stack Overflow用户

发布于 2018-01-23 18:53:33

在谷歌和试验/错误之后..。原来,您必须将整个functional模型转换回“模型格式”。

代码语言:javascript
复制
model = some_model()
output_layer = _build_output()
finalmodel = Model(inputs=model.input, outputs=finalmodel)

然后,您可以运行finalmodel.summary()或任何用于顺序建模的绘图功能。

然而,这需要我猜仔细跟踪模型,我承认我没有这样做。

票数 1
EN

Stack Overflow用户

发布于 2020-05-15 10:34:09

代码语言:javascript
复制
tf.keras.utils.plot_model(
model,
to_file="model.png",
show_shapes=False,
show_layer_names=True,
rankdir="TB",
expand_nested=False,
dpi=96,
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48407377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档