多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

visualkeras高级技巧清单:type_ignore、SpacingDummyLayer与图例让图表更专业的8个细节

visualkeras高级技巧清单:type_ignore、SpacingDummyLayer与图例让图表更专业的8个细节 visualkeras高级技巧清单type_ignore、SpacingDummyLayer与图例让图表更专业的8个细节【免费下载链接】visualkerasVisualkeras is a Python package to help visualize Keras (either standalone or included in TensorFlow) neural network architectures. It allows easy styling to fit most needs. This module supports layered style architecture generation which is great for CNNs (Convolutional Neural Networks), and a graph style architecture, which works great for most models including plain feed-forward networks.项目地址: https://gitcode.com/gh_mirrors/vi/visualkerasvisualkeras是专为 Keras / TensorFlow 模型架构可视化设计的 Python 包除了一行代码出图的基础用法外它还藏着不少让图表脱胎换骨的高级技巧。本文用 8 个可立即上手的细节——type_ignore 层过滤、SpacingDummyLayer 视觉分组、legend 图例、show_dimension 尺寸标注等——帮你把神经网络架构图从能看变成能放进论文和汇报。全部技巧基于 layered 视图最适合 CNN示例模型为 examples/vgg16.py。先看目标效果什么样的图算专业专业的架构可视化应该做到信息密度高但不杂乱、结构分组清晰、颜色语义一致、有图例可查。下面这张官方 VGG16 分层视图就是典型——层与层之间的间距、颜色、3D 体积都服务于一眼看懂细节 1用 type_ignore 一键去噪深层网络里的 ZeroPadding2D、Dropout、Flatten 等层会让图表变得又长又乱。type_ignore参数接受一组层类型渲染时直接跳过它们只保留骨干层visualkeras.layered_view( model, type_ignore[ZeroPadding2D, Dropout, Flatten, visualkeras.SpacingDummyLayer] )对比效果非常直观——过滤后 3D 块明显瘦身卷积主干一目了然 经验法则先忽略结构噪音层再考虑其他美化手段。细节 2用 index_ignore 按位置精准剔除不是所有层都同罪——有时只想删掉某一个位置的层比如某个特定的 Dropout。用index_ignore传入层在模型中的索引即可例如index_ignore[3, 5, 8]会跳过第 3、5、8 个层。它和type_ignore可以叠加使用实现批量过滤 个别剔除的组合拳。细节 3SpacingDummyLayer 让模型自带段落感这是 visualkeras 最有巧思的设计visualkeras/layer_utils.py 中的SpacingDummyLayer是一个零作用的占位层不参与训练和推理唯一使命是在分层视图中制造视觉分段。在 VGG16 示例中它被插入每个卷积块之后model.add(visualkeras.SpacingDummyLayer()) # 默认间距 50 像素 model.add(visualkeras.SpacingDummyLayer(spacing100)) # 自定义间距渲染时配合spacing0层间默认间距归零图表就会呈现出干净的块状结构适用场景特征提取与分类头之间、编码器与解码器之间、不同卷积块之间——让读者扫一眼就知道模型分了几段。更多用法见 docs/source/api/layer_utils_details.rst。细节 4legend 图例——大模型的目录页层数一多光看图根本记不住每块是什么。legendTrue会在图下方自动生成一张按层着色的小方块图例每块对应一个层名称font ImageFont.truetype(arial.ttf, 32) visualkeras.layered_view(model, legendTrue, fontfont, ...)注意图例文字默认偏小建议同时传一个稍大的font导出图片才不会糊。细节 5show_dimension 让图例显示输出尺寸光有层名还不够CNN 读者最关心的是张量形状变化。加上show_dimensionTrue图例中每个层都会标注其输出 shape如Conv2D[112, 112, 128]这张 VGG16 效果图就是图例 尺寸的完整组合细节 6text_callable 在层旁直接标注名称与形状不想依赖图例用text_callable直接把文本贴在每个层上方或下方。visualkeras/options.py 内置了 4 种预设预设效果name只显示层类名type显示完整类型信息shape只显示输出张量形状name_shape名称 形状最常用from visualkeras.options import LAYERED_TEXT_CALLABLES visualkeras.layered_view(model, text_callableLAYERED_TEXT_CALLABLES[name_shape])它还可以返回一个自定义函数接收层索引和层对象返回(text, above)元组想标注第 N 块参数量都可以自己写。细节 7color_map 定制配色建立颜色语义默认配色能看但不惊艳。color_map允许你按层类型指定填充色和描边色让颜色本身成为信息color_map {Conv2D: {fill: #1f77b4}, MaxPooling2D: {fill: #ff7f0e}, ...} visualkeras.layered_view(model, color_mapcolor_map)examples/vgg16.py 给 VGG16 配了一套卷积橙、池化红、Dropout 粉、Dense 绿的方案配合细节 1 的过滤图表层次非常舒服。论文里建议用低饱和度的色板与正文风格保持一致。细节 8preset 预设 to_file 一键交付最后两招是省力型preset 预设presetpresentation生成大字大间距的演讲/论文级图片presetcompact生成紧凑版省去逐个调参to_file 导出layered_view(model, to_filemodel.png)直接保存格式由扩展名自动推断PNG/JPG 等。导出前想再检查结构可以切换draw_volumeFalse出 2D 平面版8 个细节速查表#技巧参数解决什么问题1按类型过滤type_ignore[Dropout, ...]层多杂乱2按位置剔除index_ignore[3, 5]个别多余层3视觉分组SpacingDummyLayer(spacing100)结构无段落感4自动生成图例legendTrue, font...层多记不住5图例显示尺寸show_dimensionTrue缺张量形状信息6层旁文本标注text_callablename_shape想逐层看信息7自定义配色color_map{...}颜色无语义8预设与导出presetpresentation,to_file...调参耗时延伸阅读完整高级特性docs/source/examples/advanced_features.rst选项与预设参考visualkeras/options.py、docs/source/api/options.rst分层视图 APIdocs/source/api/layered.rst其他风格示例examples/usage_examples.md掌握这 8 个细节后你可以再试试visualkeras.graph_view节点式和visualkeras.lenet_view特征图堆叠式为不同场合准备不同画风的架构插图。【免费下载链接】visualkerasVisualkeras is a Python package to help visualize Keras (either standalone or included in TensorFlow) neural network architectures. It allows easy styling to fit most needs. This module supports layered style architecture generation which is great for CNNs (Convolutional Neural Networks), and a graph style architecture, which works great for most models including plain feed-forward networks.项目地址: https://gitcode.com/gh_mirrors/vi/visualkeras创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表