我想问一下,是否有一种简单的方法来可视化从Functional构建的Keras模型?
现在,对我来说,在高级别(顺序模型)进行调试的最佳方法是:
model = Sequential()
model.add(...
...
print(model.summary())
SVG(model_to_dot(model).create(prog='dot', format='svg'))然而,如果我们构建一个更复杂、非顺序的模型,我很难找到一种可视化Keras的好方法。
发布于 2018-01-23 18:11:40
是的,尝试检查keras.utils,它有一个方法plot_model(),正如在detail 这里上解释的那样。似乎您已经熟悉了keras.utils.vis_utils和model_to_dot方法,但这是另一种选择。它的用法类似于:
from keras.utils import plot_model
plot_model(model, to_file='model.png')老实说,这是我所找到的仅使用Keras的最佳方法。像您所做的那样使用model.summary()有时也很有用。我还希望有一些工具能够更好地可视化一个人的模型,甚至能够看到每层的权重,以决定最佳的网络结构和初始化(如果你知道一个,请告诉:] )。
您目前拥有的最佳选择可能是在坦氏板上可视化,这是您在Keras中的一个包含TensorBoard回调的部分。这使您能够可视化您的培训和指标感兴趣,以及一些信息激活您的层,您的偏见和内核,等等。基本上,在拟合模型之前,您必须将这些代码添加到您的程序中:
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服务上本地运行):
tensorboard --logdir=/logs/run1然后,这将指示您在哪个端口可视化您的培训。如果您有不同的运行,您可以通过--logdir=/logs来将它们形象化,以便进行比较。当然,关于Tensorboard的使用还有更多的选项,所以我建议您检查包含的链接,如果您正在考虑使用它。
发布于 2018-01-23 18:53:33
在谷歌和试验/错误之后..。原来,您必须将整个functional模型转换回“模型格式”。
model = some_model()
output_layer = _build_output()
finalmodel = Model(inputs=model.input, outputs=finalmodel)然后,您可以运行finalmodel.summary()或任何用于顺序建模的绘图功能。
然而,这需要我猜仔细跟踪模型,我承认我没有这样做。
发布于 2020-05-15 10:34:09
tf.keras.utils.plot_model(
model,
to_file="model.png",
show_shapes=False,
show_layer_names=True,
rankdir="TB",
expand_nested=False,
dpi=96,
)https://stackoverflow.com/questions/48407377
复制相似问题