Gradio Blocks:queue、integrate和load方法介绍

news2024/11/14 16:54:10

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

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

博主原文链接:https://www.yourmetaverse.cn/llm/249/

请添加图片描述

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

Gradio Blocks:queue、integrate和load方法介绍

Gradio是一个功能强大的库,提供了多种方法来构建交互式Web应用和演示。其中之一是Gradio的Blocks模块,它为用户提供了更大的自由度和控制权,使用户能够创建更加自定义的Web应用和演示。本文将介绍Gradio的Blocks模块中的queue、integrate和load方法,这些方法将进一步扩展了Gradio的功能,使用户能够更灵活地控制应用程序的行为和集成其他库。

1. 使用queue方法控制请求处理速率

queue方法允许用户通过创建一个队列来控制请求的处理速率,从而实现更好的控制。用户可以设置一次处理的请求数量,并向用户显示他们在队列中的位置。

示例用法:

with gr.Blocks() as demo:
    button = gr.Button(label="Generate Image")
    button.click(fn=image_generator, inputs=gr.Textbox(), outputs=gr.Image())
demo.queue(concurrency_count=3)
demo.launch()

参数介绍:

  • concurrency_count:并发处理请求的工作线程数,默认为1。增加此值将增加请求处理的速率,但也会增加队列的内存使用量。
  • status_update_rate:状态更新的频率,以秒为单位。默认为"auto",表示队列将在每个作业完成时向所有客户端发送状态估计。

2. 使用integrate方法与其他库集成

integrate方法是Gradio的一个通用方法,用于与其他库进行集成。此方法应在launch()方法之后运行。

示例用法:

with gr.Blocks() as demo:
    def get_time():
        return datetime.datetime.now().time()
    dt = gr.Textbox(label="Current time")
    demo.load(get_time, inputs=None, outputs=dt)
demo.launch()

参数介绍:

  • comet_ml:与comet_ml库进行集成,将界面显示在Comet dashboard上。
  • wandb:与wandb模块进行集成,将界面显示在WandB dashboard上。
  • mlflow:与mlflow模块进行集成,将界面显示在ML Flow dashboard上。

3. 使用load方法加载演示

load方法既可以作为类方法使用,也可以作为实例方法使用,但它们具有完全不同的功能。

类方法:从Hugging Face Spaces仓库加载演示,并在本地创建并返回一个Blocks实例。注意:这个方法将被弃用。建议使用等效的gradio.load()方法。

示例用法:

import gradio as gr
import datetime

with gr.Blocks() as demo:
    def get_time():
        return datetime.datetime.now().time()

    dt = gr.Textbox(label="Current time")
    demo.load(get_time, inputs=None, outputs=dt)
    
demo.launch()

参数介绍:

  • fn:要封装为界面的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回一个值或值的元组,其中元组的每个元素对应一个输出组件。
  • inputs:作为输入的Gradio组件列表。如果函数不需要输入,则应该是一个空列表。
  • outputs:作为输出的Gradio组件列表。如果函数不返回输出,则应该是一个空列表。
  • api_name:定义此参数将在API文档中公开该端点。
  • scroll_to_output:如果为True,在完成后将滚动到输出组件。
  • show_progress:显示进度动画,表示正在等待处理。
  • queue:如果为True,在存在队列的情况下,将请求放入队列。
  • batch:如果为True,则函数应处理一批输入,即接受每个参数的输入值列表。列表应具有相等的长度(最多为max_batch_size)。函数必须返回一个元组的列表(即使只有一个输出组件),其中元组的每个元素对应一个输出组件。
  • max_batch_size:如果从队列中调用此方法,最多可以批处理的输入数量。
  • preprocess:如果为False,则在运行函数之前不会运行组件数据的预处理。
  • postprocess:如果为False,则在将函数输出返回给浏览器之前不会运行组件数据的后处理。
  • every:以指定的时间间隔运行此事件。以秒为单位解释。必须启用队列。
  • name:模型的名称(例如,“gpt2"或"facebook/bart-base”)或空间的名称(例如,“flax-community/spanish-gpt2”),可以包含前缀作为src(例如,“models/facebook/bart-base”)。
  • src:模型的源:modelsspaces(如果提供了前缀作为name)。
  • api_key:用于加载私有Hugging Face Hub模型或空间的可选访问令牌。

4. 参数说明

以下是queueintegrateload方法的参数介绍,包括数据类型和默认值,并附上每个参数的意义:

方法参数数据类型默认值描述
queueconcurrency_countint1并发处理请求的工作线程数量。增加此数字将增加请求处理速度,但也会增加队列的内存使用。
status_update_ratefloat | Literal[‘auto’]“auto”如果为"auto",则队列在每个任务完成时将状态估计发送给所有客户端。否则,队列将按照参数设置的秒数定期发送状态。
client_position_to_load_dataint | NoneNone已弃用。此参数已弃用,不再起作用。
default_enabledbool | NoneNone已弃用。此参数已弃用,不再起作用。
api_openboolTrue如果为True,则开放后端的REST路由,允许直接向这些端点发出请求,跳过队列。
max_sizeint | NoneNone队列在任何给定时刻存储的事件的最大数量。如果队列已满,则不会添加新的事件,并向用户显示队列已满的消息。如果为None,则队列大小不受限制。
integratecomet_mlAny | NoneNone如果提供comet_ml Experiment对象,将与实验集成,并显示在Comet仪表板上。
wandbModuleType | NoneNone如果提供wandb模块,将与之集成,并显示在WandB仪表板上。
mlflowModuleType | NoneNone如果提供mlflow模块,将与之集成,并显示在ML Flow仪表板上。
loadfnCallable | NoneNone实例方法 - 要包装为接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回一个值或值的元组,其中元组的每个元素对应一个输出组件。
inputsList[Component] | NoneNone实例方法 - 用作输入的Gradio组件列表。如果函数不需要输入,则应该是一个空列表。
outputsList[Component] | NoneNone实例方法 - 用作输出的Gradio组件列表。如果函数不返回输出,则应该是一个空列表。
api_namestr | NoneNone实例方法 - 定义此参数将在API文档中公开该端点。
scroll_to_outputboolFalse实例方法 - 如果为True,在完成后将滚动到输出组件。
show_progressstr“full”实例方法 - 如果为True,在等待时显示进度动画。
queueAny | NoneNone实例方法 - 如果为True,在存在队列的情况下,将请求放入队列。
batchboolFalse实例方法 - 如果为True,则函数应处理一批输入,即接受每个参数的输入值列表。函数必须返回一个元组的列表,其中元组的每个元素对应一个输出组件(即使只有一个输出组件)。
max_batch_sizeint4实例方法 - 如果从队列中调用此方法,最多可以批处理的输入数量。
preprocessboolTrue实例方法 - 如果为False,在运行函数之前不会运行组件数据的预处理。
postprocessboolTrue实例方法 - 如果为False,在将函数输出返回给浏览器之前不会运行组件数据的后处理。
everyfloat | NoneNone实例方法 - 按指定的时间间隔运行此事件(以秒为单位)。必须启用队列。
namestr | NoneNone类方法 - 模型的名称或空间的名称。可以包含src作为前缀。
srcstr | NoneNone类方法 - 模型或空间的源。
api_keystr | NoneNone类方法 - 用于加载私有Hugging Face Hub模型或空间的可选访问令牌。
aliasstr | NoneNone类方法 - 可选的字符串,用作加载的模型的名称。仅适用于加载Gradio 2.x的空间。

通过这些方法和参数,Gradio的Blocks模块提供了更大的灵活性和控制力,使用户能够创建更加定制化和功能丰富的交互式Web应用和演示。用户可以根据自己的需求和场景选择适合的方法和参数来构建出独特的应用程序和演示。

5. 总结

Gradio的Blocks模块为用户提供了创建自定义交互式Web应用和演示的强大工具。通过queue、integrate和load等方法,用户可以更好地控制请求处理速率、与其他库进行集成,并加载现有的演示。这些方法为用户提供了更多的灵活性和定制化的选择,使他们能够构建出更加功能丰富和个性化的应用程序和演示。无论是构建机器学习模型的界面,还是进行数据可视化,Gradio的Blocks模块都将是一个强大而便捷的工具。


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

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

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

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

相关文章

(2019,图像指纹 模型指纹)溯源虚假图像的 GAN:学习和分析 GAN 指纹

Attributing fake images to gans: Learning and analyzing gan fingerprints 公众号:EDPJ 目录 0. 摘要 1. 简介 2. 相关工作 3. 用于图像溯源的指纹学习 3.1 溯源网络 3.2 成分分析网络 3.3 指纹可视化 4. 实验 4.1 设置 4.2 存在性和唯一性&#xff…

【Red Hat 7.9---详细安装Oracle 11g】---图形化界面方式

【Red Hat 7.9---详细安装Oracle 11g】---图形化界面方式 🔻 一、安装前规划🔻 二、安装前准备一(系统参数修改)⛳ 2.1 内核版本、系统版本查看⛳ 2.2 修改主机名-重启生效⛳ 2.3 关闭selinux⛳ 2.4 防火墙设置1521端口开放⛳ 2.5…

scapy定制数据包探测主机

kali 输入scapy 进入界面 scapy定制ARP协议 输入ARP().display()显示ARP包的详细信息 输入sr1(ARP(pdst"192.168.133.2")),向网关发送arp请求数据包 scapy定制PING包 输入IP().display()显示IP包的详细信息 输入ICMP().display()显示ICMP包的详细信息…

C++【STL】之stack和queue学习

文章目录: 1. 容器适配器1.1 适配器的概念1.2 STL标准库中stack和queue的底层结构 2. 栈stack2.1 stack的使用2.2 stack模拟实现 3. 队列queue3.1 queue的使用3.2 queue模拟实现 1. 容器适配器 1.1 适配器的概念 适配器是一种设计模式(设计模式是一套被反复使用的…

Elasticsearch“滚动查询“(Scrolling)的机制的与Java使用ES Client 调用滚动查询

Elasticsearch"滚动查询"(Scrolling)的机制的与Java使用ES Client 调用滚动查询 前言1. 滚动查询的一般步骤1.1 发起初始搜索请求,返回命中结果和滚动ID1.2 使用滚动ID检索下一页结果1.4 重复执行直到没有检索结果返回1.5 清除滚动上下文释放资…

【系统开发】尚硅谷 - 谷粒商城项目笔记(八):Seata分布式事务

文章目录 Seata分布式事务简介事务的隔离级别事务传播行为本地事务[Transactional](https://so.csdn.net/so/search?qTransactional&spm1001.2101.3001.7020)传播行为分布式事务CAP理论分布式事务常见解决方案2PC(两阶段提交,刚性事务)TCC(柔性事务…

头一次见单例模式讲的如此透彻

简介 单例模式是一种常用的软件设计模式,用于创建类型。通过单例模式的方法创建的类在当前进程中只有一个实例。单例模式的类只能允许一个实例存在。单例模式的作用是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个…

【springboot整合】Spring缓存抽象

JSR-107简介 为了统一缓存开发规范,以及提升缓存开发的扩展性,J2EE发布了JSR-107缓存开发规范。 Java Caching定义了5个核心接口,分别是CachingProvider、CacheManger、Cache、Entry和Expiry CachingProvider:定义了创建、配置…

基于Java毕业论文管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

Redis【入门篇】---- Redis常见命令

Redis【入门篇】---- Redis常见命令 1. Redis数据结构介绍2. Redis 通用命令3. Redis命令-String命令4. Redis命令-Key的层级结构5. Redis命令-Hash命令6. Redis命令-List命令7. Redis命令-Set命令8. Redis命令-SortedSet类型 1. Redis数据结构介绍 Redis是一个key-value的数据…

调查问卷Type Form的集成

简介 Typeform是一家制作线上调查问卷的公司。 Muoz 和 David Okuniev两人于2012年创作出一个更加动态、更具交互性的用户调查工具,每次只提一个问题,并且根据用户的回答为其呈现下一个问题,像和朋友间的对话一样,让用户在不知不…

边缘计算开源平台

边缘计算 文章目录 边缘计算前言01 边缘计算开源平台概述02 面向物联网端的边缘计算开源平台2.1 EdgeXFoundry2.2 ApacheEdgent 03 面向边缘云的边缘计算开源平台3.1 CORD3.2 Akraino EdgeStack 04 面向云边融合的边缘计算开源平台05 构建边缘计算平台的开源软件06 结束语 前言…

类皮肤全属性凝胶电子皮肤

目前电子皮肤相关工作仅①提升单一或几个刺激感知属性(压力、温度等);②研究部分理化属性和感知属性的结合。但这些工作仅覆盖皮肤的两种或三种属性,距离实现皮肤般丰富的刺激感知感官和理化特性还有很大差距。而覆盖人类皮肤的所…

linux-virtualbox安装centOS7.9

一、windows10安装virtualbox 安装包->右键->以管理员身份运行->下一步 ->选择安装位置->下一步 ->是(网络中断?) ->是(安装一些辅助工具包) ->安装 ->完成 二、virtualbox新建centOS7.9虚…

【Python 基础篇】Python 文件操作

文章目录 导言一、文件操作的作用二、文件的基本操作1、打开文件2、读写文件① 读取文件② 写入文件 3、关闭文件 三、文件备份四、文件和文件夹的操作结语 导言 在编程领域中,文件操作是一项基础且常见的任务。无论是读取配置文件、处理数据文件,还是备…

MySQL保姆安装教程

文章目录 前言一、MySQL官网二、离线安装包步骤三、环境配置四、验证安装是否成功在这里插入图片描述 五、可视化工具连接总结 前言 对于第一次安装mysql是有点难度,现在我会把安装流程搞出来。 一、MySQL官网 MySQL Installer 8.0.33安装(不想安装这个…

Windows下redis的安装与使用

一、下载 redis.io 官网没有Windows版本的,需要去redis-windows下载。 二、使用与配置 2.1 解压安装 redis的Windows版本,有.msi和.zip两种格式。这里使用更为方便,直接解压就可以使用的.zip格式。 将Redis-x64-5.0.14.1.zip解压至D盘的…

【Java-SpringBoot+Vue+MySql】Day3.3-MybatisPlus说明与使用

目录 一、MybatisPlus快速入门 1、知识轰炸 2、实操演练 (1)新建项目 (2)添加依赖 (3)添加配置 (4)添加映射层 (5)启动类中添加注解 (6&a…

【通过Data Studio连接openGauss】---快速入门

【通过Data Studio连接openGauss】---快速入门 🔻 一、访问openGauss🔰 1.1 确认连接信息(单节点)🔰 1.2 使用gsql访问openGauss(本地连接数据库)🔰 1.3 使用gsql访问openGauss&…

玩机搞机------安卓手机分区操作中的的各种工具 提取分区 备份分区 檫除分区 推荐一

喜欢玩机搞机的朋友们经常对手机系统进行安装玩机操作。但有时候指令类输入和操作步骤比较繁琐。耽误时间。有些工具就比较方便操作。陆续会整理一些玩机搞机中的简单工具给爱好者使用。本期整理一些关于手机分区的工具推荐 💔💔💔 AB AVB分…