博主原文链接:https://www.yourmetaverse.cn/nlp/400/
实现分类标签展示的魔力——gradio库中的Label模块
在机器学习和数据科学领域中,将模型的输出结果以可视化方式展示给用户是一种常见的需求。gradio是一个强大的Python库,可以帮助我们快速构建交互式的机器学习和数据科学界面,而其中的Label模块则可以用于显示分类标签及其置信度。
Label模块是gradio库中的一个组件,用于展示分类标签及其置信度。它可以接受一个字典类型的输入,其中包含不同类别及其对应的置信度值。如果只提供一个字符串或数值作为输入,Label模块会直接显示该值。在展示分类标签时,它还可以显示置信度条形图,以直观地表示各个类别的置信度。
Label模块的初始化参数包括:
value
:默认值,可以是字典、字符串、数字或回调函数。用于设置组件的初始值。num_top_classes
:显示置信度最高的几个类别,默认为None,表示显示所有类别的置信度。label
:组件的名称,在界面中显示标签。show_label
:是否显示标签,默认为True。container
:是否将组件放置在容器中,默认为True,提供一定的边框间距。scale
:相对于相邻组件的宽度比例,默认为None,表示与相邻组件等宽。min_width
:最小像素宽度,默认为160,如果屏幕空间不足,会自动换行。visible
:组件是否可见,默认为True。
除了初始化参数外,Label模块还提供了两个方法:change和select。
change
方法:在组件的值发生改变时触发,无论是因为用户输入还是函数更新。该方法适用于将组件与其他组件关联在一起使用,例如在Gradio Blocks中使用。select
方法:在用户选择Label中的某个类别时触发,通过事件数据gradio.SelectData
传递value
和index
,分别表示选定类别的名称和索引。该方法可以用于处理用户对分类结果的选择操作。
下面是一个使用Label模块的示例代码:
import gradio as gr
# 创建一个Label组件实例
label = gr.Label(num_top_classes=3)
# 初始化值为一个字典
value = {"Class A": 0.8, "Class B": 0.15, "Class C": 0.05}
label.value = value
# 将Label组件添加到界面中
interface = gr.Interface(label, "label")
interface.launch()
在上述示例中,我们创建了一个Label组件实例,并通过value
参数设置了标签的初始值。然后,我们将Label组件添加到了一个界面中,并
通过launch
方法启动了界面。在界面中,可以看到Label组件显示了分类标签及其置信度。
使用gradio库的Label模块,我们可以方便地将模型的分类结果以可视化的方式展示给用户,提供更加直观和友好的交互体验。无论是用于机器学习模型的部署还是数据科学的可视化分析,Label模块都是一个非常实用的工具。
通过gradio库的Label模块,你可以让你的机器学习模型和数据科学项目更具吸引力和实用性,提升用户体验和结果可解释性。
参数详解
Label模块参数
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
value | dict[str, float] / str / float / Callable / None | None | 在组件中显示的默认值。如果提供了字符串或数字,则简单显示该字符串或数字。如果提供了{Dict[str, float]}类型的类和置信度,则显示顶部类别及其下方的num_top_classes 和置信度条。如果是可调用的,则每次加载应用程序时将调用该函数以设置组件的初始值。 |
num_top_classes | int / None | None | 要显示的最自信类别的数量。 |
label | str / None | None | 组件在界面中的名称。 |
every | float / None | None | 如果value 是可调用的,将在客户端连接打开时每隔every 秒运行该函数。否则不起作用。必须启用队列。可以通过该组件的.load_event 属性访问该事件(例如取消它)。 |
show_label | bool | True | 如果为True,将显示标签。 |
container | bool | True | 如果为True,将组件放入容器中-在边框周围提供一些额外的填充。 |
scale | int / None | None | 相对于相邻组件的宽度比例。例如,如果组件A的scale=2,组件B的scale=1,则A的宽度将是B的两倍。应为整数。 |
min_width | int | 160 | 最小像素宽度,如果屏幕空间不足以满足此值,则换行。如果某个比例值导致该组件比min_width 更窄,则首先将遵守min_width 参数。 |
visible | bool | True | 如果为False,将隐藏组件。 |
elem_id | str / None | None | 可选的字符串,用作此组件在HTML DOM中的id。可用于定位CSS样式。 |
elem_classes | list[str] / str / None | None | 可选的字符串列表,用作此组件在HTML DOM中的类。可用于定位CSS样式。 |
color | str / None | None | 标签的背景颜色(可以是有效的CSS颜色名称或十六进制字符串)。 |
change方法参数
参数 | 数据类型 | 描述 |
---|---|---|
fn | Callable / None | 必需。要包装界面的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回一个值或一个值的元组,元组中的每个元素对应一个输出组件。 |
inputs | Component / list[Component] / set[Component] / None | 默认值:None。要用作输入的组件列表。如果函数不接受输入,则应为空列表。 |
outputs | Component / list[Component] / None | 默认值:None。要用作输出的组件列表。如果函数不返回输出,则应为空列表。 |
api_name | str / None | 默认值:None。定义此参数会在API文档中公开该端点。 |
status_tracker | None | 默认值:None。 |
scroll_to_output | bool | 默认值:False。如果为True,将在完成时滚动到输出组件。 |
show_progress | ‘full’ / ‘minimal’ / ‘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 秒运行此事件。以秒为单位解释。必须启用队列。 |
select方法参数
参数 | 数据类型 | 描述 |
---|---|---|
fn | Callable / None | 必需。要包装界面的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回一个值或一个值的元组,元组中的每个元素对应一个输出组件。 |
inputs | Component / list[Component] / set[Component] / None | 默认值:None。要用作输入的组件列表。如果函数不接受输入,则应为空列表。 |
outputs | Component / list[Component] / None | 默认值:None。要用作输出的组件列表。如果函数不返回输出,则应为空列表。 |
api_name | str / None | 默认值:None。定义此参数会在API文档中公开该端点。 |
status_tracker | None | 默认值:None。 |
scroll_to_output | bool | 默认值:False。如果为True,将在完成时滚动到输出组件。 |
show_progress | ‘full’ / ‘minimal’ / ‘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 秒运行此事件。以秒为单位解释。必须启用队列。 |