使用可视化调试器 (Visual Debugger) - nanpuhaha/SerpentAI GitHub Wiki

Serpent.AI 框架附带了一个名为 Visual Debugger 的可视化调试器应用程序。它的功能很简单:在开发者在游戏代理运行时,帮助其针对内存中的图像数据进行可视化调试。举例来说,Visual Debugger 就像一个针对图像的 print 功能。

启动可视化调试器

像框架中的大多数功能一样,通过 serpent 命令就可以启动可视化调试器。

运行 serpent visual_debugger

你将会看到一个如下图所示界面的应用:

向可视化调试器中传递图像

Visual Debugger 实例提供了接下来应用程序要处理的图像数据的存储函数接口。

self.store_image_data

方法签名 store_image_data(self, image_data, image_shape, bucket="debug")

  • image_data: 一个存储形状 (rows, cols, color_channels) 的 numpy ndarray 数组,dtype 为 np.uint8
  • image_shape: image_data 的形状
  • bucket: 在可视化调试器内,要显示该图像的指定分组标签

示例

import skimage.io
from serpent.visual_debugger.visual_debugger import VisualDebugger

image = skimage.io.imread("image.png")

visual_debugger = VisualDebugger()
visual_debugger.store_image_data(
    image_data = image,
    image_shape = image.shape,
    bucket = "0"
)

VisualDebugger 实例可在你的代码的任何位置实例化。游戏代理已经内含了一个 self.visual_debugger 实例了。

自定义可视化调试器分组

默认情况下,可视化调试器会将待显示的图像显示在对应为 “0”,“1”,“2” 和 “3” 的标签桶内。这些桶标签可以通过编辑 config/config.yml 文件进行定制。相关的代码段如下所示:

visual_debugger:
    redis_key_prefix: SERPENT:VISUAL_DEBUGGER
    available_buckets:
        - "0"
        - "1"
        - "2"
        - "3"

你可以很简单的将 available_buckets 更改为任何你想要的标签。可视化调试器会将其进行适配调整并为每个配置标签的桶分配空间。