AIGC之gradio系列学习教程(二)Components

简述:

        让我们继续了解一下 Gradio 的一些主要功能。本指南旨在对构建演示时应注意的各种事项进行高级概述。

Components

Gradio 包含 30 多个预构建组件(以及许多用户构建的自定义组件),只需一行代码即可在演示中用作输入或输出。这些组件对应于机器学习和数据科学中的常见数据类型,例如,gr.Image组件被设计为处理输入或输出图像、组件gr.Label显示分类标签和概率、gr.Plot组件显示各种类型的图等等。

每个组件都包含控制组件属性的各种构造函数属性。例如,您可以gr.Textbox使用lines构造函数中的参数(采用正整数)来控制 a 中的行数。或者,您可以gr.Image使用sources参数(采用类似 的列表)来控制用户在组件中提供图像的方式["webcam", "upload"]

静态和交互组件

每个组件都有一个旨在显示数据的静态版本,大多数组件还有一个旨在让用户输入或修改数据的交互式版本。通常,您不需要考虑这种区别,因为当您构建 Gradio 演示时,Gradio 会根据组件是用作输入还是输出来自动确定该组件应该是静态的还是交互式的。但是,您可以使用每个组件支持的参数手动设置它。interactive

预处理和后处理

当组件用作输入时,Gradio 会自动处理所需的预处理,将数据从用户浏览器发送的类型(例如上传的图像)转换为函数可以接受的形式(例如数组numpy) 。

类似地,当组件用作输出时,Gradio 会自动处理所需的后处理,将数据从函数返回的数据(例如图像路径列表)转换为可以在用户浏览器中显示的形式(图像库)。

考虑一个示例演示,其中包含三个输入组件(gr.Textboxgr.Numbergr.Image)和两个输出(gr.Numbergr.Gallery),它们用作图像到图像生成模型的 UI。下面是我们的预处理将发送到模型的内容以及我们的后处理将需要的内容的图表。

在此图中,以下预处理步骤将数据从浏览器发送到您的函数:

  • 文本框中的文本转换为Python str(本质上没有预处理)
  • 将输入的数字中的数字转换为Python float(本质上没有预处理)
  • 最重要的是,用户提供的图像被转换为numpy.array​​图像中 RGB 值的表示形式

图像被转换为​​ NumPy 数组,因为它们是机器学习工作流程的常见格式。您可以在构造组件时使用组件的参数来控制预处理。例如,如果您使用Image以下参数实例化组件,它会将图像预处理为以下PIL格式:

img = gr.Image(type="pil")

后处理更简单! Gradio 自动识别返回数据的格式(例如,用户的函数是否返回组件的numpy数组或str文件路径gr.Image?)并将其适当地后处理为浏览器可以显示的格式。

因此,在上图中,发生了以下后处理步骤将从用户函数返回的数据发送到浏览器:

  • 显示float为数字并直接显示给用户
  • 字符串文件路径列表 ( list[str]) 被解释为图像文件路径列表并在浏览器中显示为图库
Interface
描述 

Interface 是 Gradio 的主要高级类,允许您用几行代码围绕机器学习模型(或任何 Python 函数)创建基于 Web 的 GUI/演示。您必须指定三个参数:(1) 为 (2) 所需输入组件和 (3) 所需输出组件创建 GUI 的函数。其他参数可用于控制演示的外观和行为。

用法示例 
import gradio as gr

def image_classifier(inp):
    return {'cat': 0.3, 'dog': 0.7}

demo = gr.Interface(fn=image_classifier, inputs="image", outputs="label")
demo.launch()

参数介绍

范围 描述
fn

可调用

必需的

包装接口的函数。通常是机器学习模型的预测函数。函数的每个参数对应于一个输入组件,并且函数应返回单个值或值的元组,元组中的每个元素对应于一个输出组件。

inputs

STR |组件|列表[字符串|组件]|没有任何

必需的

单个 Gradio 组件或 Gradio 组件列表。组件可以作为实例化对象传递,也可以通过其字符串快捷方式引用。输入组件的数量应与 fn 中参数的数量相匹配。如果设置为 None,则仅显示输出组件。

outputs

STR |组件|列表[字符串|组件]|没有任何

必需的

单个 Gradio 组件或 Gradio 组件列表。组件可以作为实例化对象传递,也可以通过其字符串快捷方式引用。输出组件的数量应与 fn 返回的值的数量相匹配。如果设置为 None,则仅显示输入组件。

examples

列表[任意] |列表[列表[任意]] | STR |没有任何

默认值:无

函数的示例输入;如果提供,则显示在 UI 组件下方,并且可以单击以填充界面。应该是嵌套列表,其中外部列表​​由样本组成,每个内部列表由与每个输入组件相对应的输入组成。还可以提供示例目录的字符串路径,但它应该位于运行 gradio 应用程序的 python 文件所在的目录中。如果有多个输入组件并提供了目录,则目录中必须存在 log.csv 文件以链接相应的输入。

cache_examples

布尔 |没有任何

默认值:无

如果为 True,则将示例缓存在服务器中以实现示例的快速运行。如果fn是生成器函数,则最后生成的值将用作输出。 HuggingFace Spaces 中的默认选项是 True。其他地方的默认选项是 False。

examples_per_page

整数

默认值:10

如果提供示例,则每页显示多少个。

live

布尔值

默认值:假

如果任何输入发生更改,界面是否应自动重新运行。

title

STR |没有任何

默认值:无

界面的标题;如果提供,将以大字体显示在输入和输出组件上方。在浏览器窗口中打开时也用作选项卡标题。

description

STR |没有任何

默认值:无

接口的描述;如果提供,则以常规字体显示在输入和输出组件上方以及标题下方。接受 Markdown 和 HTML 内容。

article

STR |没有任何

默认值:无

解释界面的扩展文章;如果提供,将以常规字体显示在输入和输出组件下方。接受 Markdown 和 HTML 内容。如果它是指向可下载远程文件的 HTTP(S) 链接,则会显示该文件的内容。

thumbnail

STR |没有任何

默认值:无

在社交媒体上共享 Web 演示时用作显示图像的图像的字符串路径或 URL。

theme

主题 | STR |没有任何

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++初学者:如何优雅地写程序

我喜欢C语言的功能强大,简洁,我也喜欢C#的语法简单,清晰,写起来又方便好用。 一、为什么不用C语言写程序。 C语言用来做题目,考试研究是很方便的,但是用来写程序做软件,你就会发现&#xff0c…

解决Centos7无法连接网络和访问网页连接不上问题

一、网络无法连接问题 网络无法连接的问题我查到了一个很良心的操作,不用重装,因为可能是你虚拟机设置上的问题。我先写我的解决方案,再附上其他几种解决方案。 问题一: 虚拟机的问题****加粗样式 解决: (…

landsat8数据产品说明

1、下载数据用户手册 手册下载网址,搜索landsat science关键词,并点击到官网下载。 2、用户手册目录 3、landsat8数据产品说明 具体说明在手册的第四章,4.1.4数据产品章节,具体描述如下: 英文意思: L8 的…

Plesk环境中签发免费SSL证书的操作与成效

在过去的一段时间内,我专注于在Plesk控制面板环境中为多个网站成功签发免费SSL证书,确保了这些站点的安全传输和用户数据保护。以下是对这一工作的全面总结,包括突出的工作亮点、具体实施过程、取得的成绩以及下一阶段的工作规划。 一、工作亮…

【C++】新的类功能和可变参数模板

目录 一、新的类功能1.1 默认成员函数1.1.1 移动构造函数1.1.2 移动赋值运算符重载 1.2 关键字default1.3 关键字delete 二、可变参数模板2.1 可变参数的函数模板2.2 递归方式展开函数2.3 empalce 一、新的类功能 1.1 默认成员函数 在之前的学习过程中,我们已经知…

走进车厂 | 移远通信以前沿车载技术,照亮智能网联汽车产业创新发展之路

无钥匙自动解锁方便快捷、实时路况导航精准高效、语音指令轻松控制车辆、车载娱乐系统丰富多样……随着智能化、数字化浪潮的不断推进,现如今的汽车出行焕然一新。 正如我们所见,汽车产业正在经历前所未有的变革。物联网、车联网等前沿技术的发展和应用&…

反弹shell的方法和场景

Netcat反弹Shell 1 NC正向反弹shell Netcat简称NC,是一个简单、可靠的网络工具,被誉为网络界的瑞士军刀。通NC可以进行端口扫描、 反弹Shell、端口监听和文件传输等操作,常用参数如下: -c指定连接后要执行的shell命令-e指定连接后要执行的文件名-k配置 Socket一…

C语言指针 深入浅出讲解

指针在我的理解就是一个指向值的地址,地址是连续的,比如这个: 我写了一个数组,分别赋值4,5,6...11; 它们的地址分别如下: 可以看到地址增长是4,这是因为,地…

C++其他语法..

1.运算符重载 之前有一个案例如下所示 其中我们可以通过add方法将两个点组成一个新的点 class Point {friend Point add(Point, Point);int m_x;int m_y; public:Point(int x, int y) : m_x(x), m_y(y) {}void display() {cout << "(" << m_x <<…

Codigger Desktop:开发者的利器,每个人的好帮手(一)

在当今这个信息化、数字化的时代&#xff0c;开发者们面临着前所未有的挑战和机遇。为了更好地助力开发者们应对这些挑战&#xff0c;抓住机遇&#xff0c;Codigger应运而生。其中Codigger Desktop 是一款基于 Codigger 系统的桌面应用&#xff0c;为用户提供直观易用的操作界面…

LEAP模型的能源环境发展、碳排放建模预测及不确定性分析教程

原文链接&#xff1a;LEAP模型的能源环境发展、碳排放建模预测及不确定性分析教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247599754&idx4&sn243c9f8bff355235a7056c2cbb1331fa&chksmfa82076dcdf58e7b871c3369c95ead9ff1d90baa0431318b26b6abd27…

Pytorch for training1——read data/image

blog torch.utils.data.Dataset create dataset with class torch.utils.data.Dataset automaticly import torch from torch.utils.data import Datasetclass MyDataset(Dataset):def __init__(self, data):self.data datadef __getitem__(self, index):# 根据索引获取样本…

关于跑yolov5.6.1项目的一些错误情况的记录

&#xff08;1&#xff09; 错误问题一&#xff1a;TypeError: meshgrid() got multiple values for keyword argument ‘indexing’ 1.1解决方案&#xff1a;点击图片中黄色部分所在位置的文件&#xff0c;删除indexing“ij” (2)错误问题二&#xff1a;AttributeError: ‘F…

是否应该升级到ChatGPT 4.0?深度对比ChatGPT 3.5与4.0的差异

如果只是想简单地体验AI的魅力&#xff0c;感受大模型的独特之处&#xff0c;或是玩一玩文字游戏&#xff0c;那么升级至ChatGPT 4.0可能并非必需。然而&#xff0c;若你期望将AI作为提升工作学习效率的得力助手&#xff0c;那么我强烈建议你升级到ChatGPT 4.0。 如果你不知道…

【Springboot整合系列】SpringBoot整合WebService

目录 Web服务介绍Web服务的两种类型Web服务架构Web服务的主要特点Web服务使用场景Web服务标准和技术 WebService介绍WebService的作用适用场景不适用场景 WebService的原理三个角色相关概念 WebService开发框架代码实现服务端1.引入依赖2.实体类3.业务层接口接口实现类 4.配置类…

活动回顾丨掘金海外,探寻泛娱乐社交APP出海新风口

3月中旬,Flat Ads携手声网、XMP在广州成功举办“泛娱乐社交APP出海新风口——广州站”的主题线下沙龙活动。 多位大咖与泛娱乐社交APP赛道的行业伙伴汇聚一堂。本次活动邀请到Flat Ads 市场VP 王若策、声网娱乐视频产品负责人 陈际陶、XMP资深产品运营专家 屈俊星等多位行业大…

python ---- %r %s格式输出的区别

在python中&#xff0c; % s和 % r是我们常用的格式符&#xff0c;它们的用法基本一致&#xff0c;但作用却不尽相同&#xff0c;下面简要说明一下两者的区别&#xff1a; 1. % s是将对象 / 变量传递到str()方法中&#xff0c;并将其转化为面向用户的可阅读的格式。 2. % r是将…

ARM 寄存器学习:(前言)七种模式\异常源\向量表\异常返回

一、ARM的七种工作模式 Arm微处理器支持7种工作模式&#xff0c;分别为&#xff1a; 1&#xff0e; 用户模式&#xff08;Usr&#xff09; 用于正常执行程序 2&#xff0e; 系统模式&#xff08;sys&#xff09; 运行均有特权的操作系统任务 3&#…

既然有 HTTP 协议,为什么还要有 RPC?(计算机网络)

使用纯裸 TCP 会有什么问题 TCP 是有三个特点&#xff0c;面向连接、可靠、基于字节流。这里我们需要关注的是基于字节流这一点。 字节流可以理解为一个双向的通道里流淌的数据&#xff0c;这个数据其实就是我们常说的二进制数据&#xff0c;简单来说就是一大堆 01 串。纯裸 T…

物联网行业中,我们如何选择数据库?

在当今数字化潮流中&#xff0c;我们面对的不仅是海量数据&#xff0c;更是时间的涟漪。从生产线的传感器到金融市场的交易记录&#xff0c;时间序列数据成为了理解事物演变和趋势的关键。在面对这样庞大而动态的数据流时&#xff0c;我们需要深入了解一种强大的工具——时序数…