使用Gradio库创建交互式滑块组件

news2024/9/21 2:34:39

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/427/

请添加图片描述

(封面图由文心一格生成)

使用Gradio库创建交互式滑块组件

在构建交互式应用程序时,Gradio库提供了丰富的组件来收集用户输入和显示输出结果。其中一个非常有用的组件是Slider(滑块),它允许用户在指定的范围内选择一个值。本文将介绍Gradio库中Slider组件的使用以及其change、input和release三个方法。

Slider组件概述

Slider组件是Gradio库中的一个类,用于创建一个滑块,用户可以通过滑动来选择一个数值。Slider组件的构造函数如下:

import gradio as gr


def sentence_builder(quantity, animal, countries, place, activity_list, morning):
    return f"""The {quantity} {animal}s from {" and ".join(countries)} went to the {place} where they {" and ".join(activity_list)} until the {"morning" if morning else "night"}"""


demo = gr.Interface(
    sentence_builder,
    [
        gr.Slider(2, 20, value=4, label="Count", info="Choose between 2 and 20"),
        gr.Dropdown(
            ["cat", "dog", "bird"], label="Animal", info="Will add more animals later!"
        ),
        gr.CheckboxGroup(["USA", "Japan", "Pakistan"], label="Countries", info="Where are they from?"),
        gr.Radio(["park", "zoo", "road"], label="Location", info="Where did they go?"),
        gr.Dropdown(
            ["ran", "swam", "ate", "slept"], value=["swam", "slept"], multiselect=True, label="Activity", info="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed auctor, nisl eget ultricies aliquam, nunc nisl aliquet nunc, eget aliquam nisl nunc vel nisl."
        ),
        gr.Checkbox(label="Morning", info="Did they do it in the morning?"),
    ],
    "text",
    examples=[
        [2, "cat", ["Japan", "Pakistan"], "park", ["ate", "swam"], True],
        [4, "dog", ["Japan"], "zoo", ["ate", "swam"], False],
        [10, "bird", ["USA", "Pakistan"], "road", ["ran"], False],
        [8, "cat", ["Pakistan"], "zoo", ["ate"], True],
    ]
)

if __name__ == "__main__":
    demo.launch()

Slider组件的参数包括:

  • minimum:滑块的最小值,默认为0。
  • maximum:滑块的最大值,默认为100。
  • step:滑块的步长,即每次滑动的增量,默认为None。
  • label:组件在界面中显示的名称,默认为None。
  • info:组件的描述信息,默认为None。
  • show_label:是否显示标签,默认为True。
  • container:是否将组件放置在容器中,默认为True。
  • scale:相对于其他组件的宽度比例,默认为None。
  • min_width:组件的最小像素宽度,默认为160。
  • visible:是否可见,默认为True。
  • elem_id:组件在HTML DOM中的id,默认为None。
  • elem_classes:组件在HTML DOM中的类列表,默认为None。
  • randomize:是否在应用程序加载时随机设置滑块的值,默认为False。

change方法

change方法是Slider组件的一个监听器方法,当组件的值发生变化时触发。这个变化可以是用户的输入,也可以是来自函数更新的结果。在Gradio Blocks中使用该方法时,需要传入一个函数作为参数,该函数通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应该返回一个单一的值或一个值的元组,其中元组的每个元素对应一个输出组件。

input方法

input方法是Slider组件的另一个监听器方法,当用户改变组件的值时触发。与change方法类似,input方法也需要传入一个函数作为参数。该函数通常是机器学习模型的预测函数,每个参数对应一个输入组件,函数应该返回一个单一的值或一个值的元组,其中元组的每个元素对应一个输出组件。

release方法

release方法是Slider组件的第三个监听器方法,当用户释放鼠标时触发(例如释放滑块时)。与change和input方法类似,release方法也需要传入一个函数作为参数。该函数通常是机器学习模型的预测函数,每个参数对应一个输入组件,函数应该返回一个单一的值或一个值的元组,其中元组的每个元素对应一个输出组件。

参数详解

Slider模块参数

参数名数据类型默认值描述
minimumfloat0滑块的最小值
maximumfloat100滑块的最大值
valuefloat | Callable | NoneNone默认值。如果是可调用对象,每次加载应用程序时将调用该函数以设置组件的初始值。如果设置了randomized=True,则忽略此参数。
stepfloat | NoneNone滑块值之间的增量
labelstr | NoneNone在界面中显示的组件名称
infostr | NoneNone其他组件描述信息
everyfloat | NoneNone如果value是可调用对象,在客户端连接打开时每隔指定的秒数运行该函数。如果不是可调用对象,则不起作用。必须启用队列。可以通过此组件的.load_event属性访问该事件(例如取消它)。
show_labelboolTrue如果为True,将显示标签
containerboolTrue如果为True,将在容器中放置该组件-在边框周围提供一些额外的填充
scaleint | NoneNone相对于同一行中相邻组件的宽度比例。例如,如果组件A的scale=2,组件B的scale=1,则A的宽度将是B的两倍。应为整数
min_widthint160最小像素宽度,如果屏幕空间不足以满足此值,则换行。如果某个比例值导致此组件比min_width更窄,则首先将遵守min_width参数
interactivebool | NoneNone如果为True,滑块将可调节;如果为False,将禁用调节。如果未提供,则根据组件是用作输入还是输出进行推断
visibleboolTrue如果为False,将隐藏组件
elem_idstr | NoneNone可选的字符串,用作此组件在HTML DOM中的id。可用于定位CSS样式
elem_classeslist[str] | str | NoneNone可选的字符串列表,用作此组件在HTML DOM中的类。可用于定位CSS样式
randomizeboolFalse如果为True,则在应用程序加载时,滑块的值将在最小值和最大值之间均匀随机选择

change、input和release三个方法参数

参数名数据类型默认值描述
fnCallable|Nonerequired要包装界面的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回一个值或一个元组,其中每个元素对应一个输出组件。
inputsComponent | list[Component] | set[Component] | NoneNone要用作输入的Gradio组件列表。如果函数不接受输入,则应为一个空列表。
outputsComponent | list[Component] | NoneNone要用作输出的Gradio组件列表。如果函数不返回输出,则应为一个空列表。
api_namestr | None | Literal[False]None定义端点在API文档中的显示方式。可以是字符串、None或False。如果为False,则端点不会在API文档中显示。如果设置为None,则端点将在API文档中作为无名称端点显示,尽管此行为将在Gradio 4.0中更改。如果设置为字符串,则端点将在API文档中以给定名称显示。
status_trackerNoneNone
scroll_to_outputboolFalse如果为True,将在完成时滚动到输出组件
show_progressLiteral[‘full’, ‘minimal’, ‘hidden’]“full”如果为True,在等待期间显示进度动画
queuebool | NoneNone如果为True,在队列启用的情况下将请求放入队列中。如果为False,即使启用了队列,也不会将此事件放入队列中。如果为None,则使用Gradio应用程序的队列设置。
batchboolFalse如果为True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(最多为max_batch_size的长度)。然后,该函数必须返回一个元组列表(即使只有1个输出组件),其中元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列调用此方法时,最大批处理输入数量。仅当batch=True时相关。
preprocessboolTrue如果为False,在运行’fn’之前不运行组件数据的预处理(例如,如果使用Image组件以base64字符串的形式保留它)。
postprocessboolTrue如果为False,在将’fn’的输出返回给浏览器之前不运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]] | NoneNone要在触发此监听器时取消的其他事件列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat | NoneNone在客户端连接打开时以每个指定秒数运行此事件。以秒为单位解释。必须启用队列。

使用Gradio库的Slider组件和对应的change、input和release方法,我们可以轻松地创建交互式的滑块组件,以收集用户输入并展示输出结果。这使得构建交互式应用程序变得更加简单和快捷。


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736489.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT DAY3

完善文本编辑器 1.mainwindow.h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QDebug> #include <QIcon> #include <QLabel> #include <QLineEdit> #include <QPushButton> #include <QMessageBo…

如何用Stable Diffusion模型生成个人专属创意名片?

目录 1 什么是二维码&#xff1f;2 什么是扩散模型&#xff1f;3 Stable Diffusion环境搭建4 开始制作创意名片结语 1 什么是二维码&#xff1f; 二维码是一种用于存储和传输信息的方便而广泛使用的图像编码技术。它是由黑色方块和白色空白区域组成的二维图形&#xff0c;可以…

光镊背后的电磁理论 | 涡旋电磁波在无线通信系统中的应用

2018年诺贝尔物理学奖于北京时间10月2日17点50分正式揭晓&#xff0c;发明光镊技术的美国物理学家&#xff0c;阿瑟阿什金&#xff08;Arthur Ashkin&#xff09;&#xff0c;以及开创了啁啾脉冲放大技术的唐娜斯特里克兰&#xff08;Donna Strickland&#xff09;、 热拉尔穆鲁…

持之以恒,安之有度 | 持安科技2周年!

新征程 新未来 持安的同学们已经一起走进 第三个年头啦 近日&#xff0c;持安 北京 上海 深圳 所有公司成员齐聚一堂 共 同 庆 祝 持安科技 成立2周年 持安一体化零信任平台 &#xff0c;引领应用层零信任落地新局面 2021年&#xff0c;何艺&#xff08;持安创始人兼CE…

经典轻量级神经网络(3)ShuffleNet V1及其在Fashion-MNIST数据集上的应用

经典轻量级神经网络(3)ShuffleNet V1及其在Fashion-MNIST数据集上的应用 1 ShuffleNet V1的简述 ShuffleNet 提出了 1x1分组卷积通道混洗 的策略&#xff0c;在保证准确率的同时大幅降低计算成本。 ShuffleNet 专为计算能力有限的设备&#xff08;如&#xff1a;10~150MFLOP…

开发uniapp苹果app,苹果签名证书的创建方法

在uniapp云打包界面&#xff0c;打包苹果app&#xff0c;需要私钥证书p12文件&#xff0c;还需要证书profile文件和证书密码。 这两个文件到底是从什么地方获取的呢&#xff1f;答案是这两个证书需要在苹果开发者中心生成&#xff0c;下面我们这篇教程&#xff0c;将教会大家如…

Java小白的学习之路——day12

目录 一、final 什么是final&#xff1f; 二、接口概述 什么是接口&#xff1f; 与抽象类的区别 常量接口 接口传参多态 四、内部类 什么是内部类&#xff1f; 成员内部类 静态内部类 局部内部类 一、final 什么是final&#xff1f; final从字面意思来看时最终的&a…

你真的了解JS垃圾回收机制吗?

目录 前言 堆栈内存管理 JS垃圾回收机制 标记清除&#xff08;Mark and Sweep&#xff09; 标记阶段 清除阶段 标记清除的特点 优点 缺点 引用计数&#xff08;Reference Counting&#xff09; 引用计数器的维护 引用计数的跟踪 垃圾回收的触发 回收对象 引用计…

视频转音频MP3格式怎么做?教你几种转换小妙招

当我们需要编辑视频中的声音&#xff0c;例如去除噪音、调整音量、加入配乐等&#xff0c;此时需要先将视频中的音频提取出来进行编辑&#xff0c;再将编辑后的音频重新与视频合并&#xff0c;以便达到一个最佳效果。那么怎么将视频转换成MP3格式的音频文件呢&#xff1f;教大家…

SpringBoot项目多模块打包部署Docker实战

前言 我们好多程序员都只关注功能代码的编写&#xff0c;在一些运维工作上则显得略有不足。这篇文章通过介绍最常见的Maven管理的Spring Boot项目多模块打包部署Docker来介绍一下项目部署过程中操作流程和几个需要注意的点。文章假设读者有前面提到的技术点的前置知识&#xf…

C#(五十八)之C#List

前几天&#xff0c;看同事写的代码中有list相关的字眼&#xff0c;百度了一下&#xff0c;原来是C#中list泛型集合。 了解一下。 List&#xff1a;泛型集合&#xff0c;List<T>类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<T> 泛型…

Maven工程分模块开发讲解及入门案例

1.分模块开发的意义 一个模块只做自己对应的功能&#xff0c;提升开发效率&#xff0c;将一个工程拆分成若干个子模块方便之间相互调用&#xff0c;接口共享&#xff0c;降低耦合度提高代码复用率。 2.分模块开发入门案例 下面将domain这个模块从当前模块当中给拆分出来。 …

开心档之CSS 测验

目录 CSS 测验 CSS 测验 CSS测验是一种衡量前端开发人员对CSS的熟练程度的测试。通过CSS测验&#xff0c;可以评估一个人对CSS语言的掌握程度和应用能力&#xff0c;帮助公司或招聘方挑选合适的人才。下面将介绍如何进行CSS测验以及一些常见的CSS考题。 一、CSS测验的类型 1…

OpenCV 入门教程:寻找和绘制轮廓

OpenCV 入门教程&#xff1a;寻找和绘制轮廓 导语一、寻找轮廓二、绘制轮廓三、示例应用3.1 目标检测和定位3.2 图像分割 总结 导语 寻找和绘制轮廓是图像处理中常用的技术之一&#xff0c;用于识别、定位和分析图像中的目标区域。在 OpenCV 中&#xff0c;寻找和绘制轮廓可以…

「2024」预备研究生mem-行程问题

一、行程问题 二、课后题 往返 上山下山

LeetCode[75]颜色分类

难度:Medium 题目&#xff1a; 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库…

【前端面试专栏】用户输入网址到页面返回都发生了什么?

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;2022年度博客之星前端领域TOP 2&#xff0c;前端领域优质作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步…

软件安全测试流程与方法分享(下)

安全测试是在IT软件产品的生命周期中&#xff0c;特别是产品开发基本完成到发布阶段&#xff0c;对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。安全是软件产品的一个重要特性&#xff0c;也是CNAS测试认证中非常重要的项目&#xff0c;本系列文章我们与大家…

linux 信号原理 信号处理设置signal, 信号发送kill,信号等待sigsuspend,信号阻塞sigprocmask,一网打尽信号使用

​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 概述 信号是一种软中断的方式&#xff0c;让进程陷入中断处理调…

vector的resver和resize

#include <iostream> #include <vector> using namespace std; int main() {std::vector<std::vector<std::vector<int> > > a(2);//创建2个vector<vector<int> >类型的数组vector<int> vec;//vec.resize(10); //结果1vec.res…