博主原文链接:https://www.yourmetaverse.cn/nlp/372/
构建交互式数据集展示:Gradio的Dataset模块详解
在机器学习应用中,展示和查看数据集是非常重要的环节,可以帮助我们更好地理解数据的特征和分布。Gradio是一个功能强大的库,提供了各种组件和模块,用于构建交互式机器学习应用。其中,Dataset模块是一个非常实用的工具,用于展示和浏览数据集。本文将介绍Gradio的Dataset模块,并详细解析其click和select方法的用法和功能。
Dataset模块简介
Gradio的Dataset模块是用于展示数据集的输出组件,可以将数据集以可视化的形式展示给用户。它可以与其他组件一起使用,构建交互式界面,方便用户浏览和选择数据。Dataset模块支持多种数据类型的展示,包括文本、音频、图片等。
Dataset模块的使用非常灵活,您可以通过指定组件类型和提供数据样本来自定义数据集的展示方式。同时,您还可以设置每页显示的样本数量、组件的可见性等参数,以满足不同的展示需求。
click方法
Dataset模块的click方法用于监听组件的点击事件。当用户点击数据集中的样本时,将触发该方法。通过调用click方法,您可以将一个函数与Dataset组件关联起来,并在点击事件发生时执行相应的逻辑。
click方法的参数包括:
- fn:要关联的函数,通常是一个机器学习模型的预测函数。该函数的每个参数对应一个输入组件,函数应返回单个值或一个与输出组件对应的值元组。
- inputs:输入组件的列表,用于指定函数的输入。如果函数没有输入,该参数应该是一个空列表。
- outputs:输出组件的列表,用于指定函数的输出。如果函数没有输出,该参数应该是一个空列表。
- 其他参数用于定义函数的行为和触发逻辑,如api_name、status_tracker、scroll_to_output等。
通过click方法,您可以实现在用户点击数据集样本时,执行特定的函数操作,例如对选定的样本进行预测或展示详细信息。
select方法
Dataset模块的select方法用于监听用户在组件中的选择事件。当用户在数据集组件中选择样本时,将触发该方法。通过调用select方法,您可以将一个函数与Dataset组件关联起来,并在选择事件发生时执行相应的逻辑。
select方法的参数与click方法类似,包括fn、inputs、outputs等。通过select方法,您可以实现在用户选择数据集样本时,执行特定的函数操作,例如根据选择的样本进行推荐或进行数据处理。
参数详解
Dataset
模块的参数
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
label | str | None | None | 标签名称 |
components | list[IOComponent] | list[str] | required | 在数据集小部件中要显示的组件类型,可以作为字符串名称或组件实例的列表传递。支持以下组件类型:Audio、Checkbox、CheckboxGroup、ColorPicker、Dataframe、Dropdown、File、HTML、Image、Markdown、Model3D、Number、Radio、Slider、Textbox、TimeSeries、Video |
samples | list[list[Any]] | None | None | 嵌套的样本列表。外部列表中的每个子列表表示一个数据样本,子列表中的每个元素表示每个组件的值 |
headers | list[str] | None | None | 数据集小部件中的列标题,应与组件的数量相同。如果未提供,则从组件标签推断 |
type | str | “values” | 如果单击样本应传递样本的值,则为“values”;如果应传递样本的索引,则为“index” |
samples_per_page | int | 10 | 每页显示的示例数量 |
visible | bool | True | 如果为 False,则组件将被隐藏 |
elem_id | str | None | None | 可选字符串,作为分配给此组件在 HTML DOM 中的 id。可用于定位 CSS 样式 |
elem_classes | list[str] | str | None | None | 可选字符串列表,作为分配给此组件在 HTML DOM 中的类。可用于定位 CSS 样式 |
container | bool | True | 如果为 True,则将组件放置在容器中-提供一些额外的边框填充 |
scale | int | None | None | 相对于同一行中相邻组件的宽度比例。例如,如果组件 A 的 scale=2,组件 B 的 scale=1,则组件 A 的宽度将是组件 B 的两倍。应为整数。 |
min_width | int | 160 | 最小像素宽度,如果屏幕空间不足以满足此值,则换行。如果某个比例值导致此组件比 min_width 更窄,则首先将使用 min_width 参数。 |
click
和select
方法的参数
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
label | str | None | None | 标签名称 |
fn | Callable | None | required | 要封装到界面中的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回单个值或一个元组的值,其中元组的每个元素对应一个输出组件。 |
inputs | Component | list[Component] | set[Component] | None | None | 要用作输入的 gradio.components 列表。如果函数不接受输入,则应为空列表。 |
outputs | Component | list[Component] | None | None | 要用作输出的 gradio.components 列表。如果函数不返回输出,则应为空列表。 |
api_name | str | None | None | 定义此参数会在 API 文档中公开端点 |
status_tracker | None | None | - |
scroll_to_output | bool | False | 如果为 True,则在完成时将滚动到输出组件 |
show_progress | Literal[‘full’] | Literal[‘minimal’] | Literal[‘hidden’] | “full” | 如果为 True,则在等待时显示进度动画 |
queue | bool | None | None | 如果为 True,则将请求放入队列(如果已启用队列)。如果为 False,则不将此事件放入队列,即使已启用队列。如果为 None,则使用 gradio 应用程序的队列设置。 |
batch | bool | False | 如果为 True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表的长度应相等(最多为 max_batch_size 的长度)。然后,函数必须返回一个元组的列表(即使只有一个输出组件),元组中的每个列表对应一个输出组件。 |
max_batch_size | int | 4 | 如果从队列调用此方法,最大批处理在一起的输入数量(仅当 batch=True 时才相关)。 |
preprocess | bool | True | 如果为 False,则在运行 ‘fn’ 之前不运行组件数据的预处理(例如,如果使用 Image 组件调用此方法,则保持为 base64 字符串)。 |
postprocess | bool | True | 如果为 False,则在将 ‘fn’ 的输出返回给浏览器之前不运行组件数据的后处理。 |
cancels | dict[str, Any] | list[dict[str, Any]] | None | None | 当触发此监听器时,要取消的其他事件列表。例如,设置 cancels=[click_event] 将取消 click_event,其中 click_event 是另一个组件的 .click 方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。 |
every | float | None | None | 在客户端连接打开时每隔 every 秒运行此事件。以秒为单位解释。必须启用队列。 |
结语
通过Gradio的Dataset模块,可以轻松构建交互式数据集展示的界面,方便用户浏览和选择数据。通过click和select等方法,可以为Dataset组件添加监听器,实现对组件事件的响应和相应的逻辑处理。