Keras可视化神经网络架构的四种方法

网站建设5年前发布
46 0 0

我们在使用卷积神经网络或递归神经网络或其他变体时,通常都希望对模型的架构可以进行可视化的查看,因为这样我们可以 在定义和训练多个模型时,比较不同的层以及它们放置的顺序对结果的影响。还有可以更好地理解模型结构、激活函数、模型参数形状(神经元数量)等。,20230306135035c4a0f8190bc07a22aec5339c682d18a6b12a74413,keras 中有一些现成的包可以创建我们的神经网络模型的可视化表示。前三个包可以在模型训练之前使用(只需要定义和编译模型);但是Tensor Boards 要求用户在架构可视化之前根据准确的数据训练模型。,在开始进行可视化之前,我们先需要安装相应的包:,然后我们创建一个模型,并用这4个包来进行可视化:,在实际使用时我们希望的是通过可视化来对比模型架构,所以这里定义三个具有不同超参数 CNN 模型。我们创建了用户定义的函数来分别构建具有不同数量的 CNN 层、池化层和最后的密集层的三个不同模型。,架构1:浅层CNN+分类头,架构2:深层CNN+mlp分类头,架构3:深层CNN+分类头,有了这3个模型,我们将使用4种方法来可视化cnn的结构,ANN Visualizer 的 Python 模块可以通过几行代码来可视化神经网络。它使用 Keras 和 Python 的 Graphviz 模块来生成一个整洁的神经网络图。它是最早的几个可视化包之一,但是最近已经不更新了,我们先介绍他是因为它算是最早出现的,也是最有名的。,ANN Visualizer可视化需要首先编译模型,主要参数如下:,202303061350362294b2380fdabe723bf952f56304b0b69dfdac321,上面就是使用ANN Visualizer创建的construct_model()的可视化图。可以看到,如果模型太大显示效果不会太好,这可能也是ANN Visualizer被淘汰的一个原因。,Visualkeras可以更容易地查看Keras的神经网络设计(可以单独查看,也可以作为TensorFlow的一部分)。,2023030613503612d143a88076b0f2377913b8eb7a8846df12f7587,20230306135037f93a80030de86f52a6b903bc5f6af993ef98d6243,2023030613503773e2e3043477f2d688c8841076de43eb69e6a9267,可以通过可视化来对比出不同层的大小,这个还是很有用的。,keras.utils.plot_model是keras的内建绘制Keras模型函数,它使用了Graphviz和pydot包。从图上可,它不如上面使用的包直观,但它概述了顺序模型的基本体系结构。,一下是几个参数的介绍:,20230306135106065313999f1d563154137482de2c2694e72278377,TensorBoard 允许用户可视化不同模型运行的日志。日志的范围可以从跟踪任何模型验证度量(不同轮次的准确率、召回率、RMSE、MAPE 和 MSE)到创建模型的架构图。它是一个强大的工具,可以可视化预期模型是否与预期设计匹配,同时深入了解如何使用操作级图更改模型。,我们需要先加载 TensorBoard,然后创建一个日志目录。,使用Keras TensorBoard回调函数,在训练前指定日志目录。然后通过向model.fit()提供这个回调来保证数据被记录在TensorBoard中。,X2_train和Y2_train是上面代码中没有反映的训练数据集。你可以用你自己的任何训练数据来替换它。,2023030613503895ccfeb980efef88b05296d1537a3ac0f83885985,可以看到TensorBoard 始终会显示操作级别的图表,虽然对于每一层的架构并不明显,但是对于每一个操作缺失非常详细的。,还需要注意的是,与代码相比该图是上下颠倒的,因为数据从底部流向顶部。但是该图大致类似于 Keras 模型的描述,有额外的边通向其他计算节点。

© 版权声明

相关文章