Gradio官方文档

文章目录

  • 构建您的第一个demo
  • 分享您的demo
  • 进度条
  • 受密码保护的应用程序
  • The Interface class(接口类)
  • Components Attributes(组件属性)
  • 多个输入和输出组件
  • 图像示例
  • 嵌套列表
  • 描述性内容
  • 手风琴中的附加输入
  • The 4 Kinds of Gradio Interfaces
    • 标准演示
    • 仅输出演示
    • 仅输入演示
    • 统一演示

构建您的第一个demo

import gradio as grdef greet(name, intensity):		#"def"自建函数;"greet"自定义函数名字;"name"名字(中文);“intensity”强度(中文);表示这个def自建函数greet接收两个参数“name”和“intensity”return "Hello, " + name + "!" * int(intensity)	demo = gr.Interface(	#“interface”界面(中文);gr.Interface 是 Gradio 库中的一个类,demo是gr.Interface这个类的实例;fn=greet,inputs=["text", "slider"],	#"slider"滑块(中文);outputs=["text"],
)
#fn、inputs 和 outputs 是用于定义 Gradio 界面行为和组件的参数;
demo.launch()	#调用 Gradio 接口对象 demo 的方法;用于启动交互式界面;

分享您的demo

demo.launch(share=True)  # Share your demo with just 1 extra parameter 🚀;parameter参数(中文);

进度条

import gradio as gr
import timedef slowly_reverse(word, progress=gr.Progress()):progress(0, desc="Starting")	#进度条初始化为 0,状态描述为 "Starting";desc描述(description中文)time.sleep(1)	#让程序休眠 1 秒,模拟处理过程中的延迟。progress(0.05)	#将进度设置为 0.05new_string = ""	#创建一个空字符串,用于存储逆转后的字符串for letter in progress.tqdm(word, desc="Reversing"):time.sleep(0.25)new_string = letter + new_stringreturn new_stringdemo = gr.Interface(slowly_reverse, gr.Text(), gr.Text())	#创建一个 Gradio 接口对象 demodemo.launch()

import time这是导入的模块还是库?

import time 是导入了 Python 标准库中的 time 模块,而不是导入了一个库。在 Python 中,库(library)通常是一个包含一组相关功能的集合,而模块(module)则是一个包含变量、函数和类的单个 Python 文件。因此,time 是一个模块,它提供了与时间相关的函数和类,例如 sleep() 用于让程序暂停执行一段时间。

受密码保护的应用程序

import gradio as grdef update_message(request: gr.Request):	#它接受一个参数 request,类型为 gr.Requestreturn f"Welcome, {request.username}"	#request.username 是 gr.Request 对象的属性,表示用户的用户名;f表示使用格式化字符串;with gr.Blocks() as demo:	# 使用 Blocks 类创建一个代码块,将其命名为 demo。with 语句用于确保在代码块结束时释放资源。m = gr.Markdown()	#创建一个 Markdown 组件,这个组件用于显示文本内容。logout_button = gr.Button("Logout", link="/logout")	#创建一个按钮组件,将其命名为 logout_button。按钮上显示的文本为 "Logout",并且点击按钮时会跳转到 "/logout" 路径。demo.load(update_message, None, m)	#使用 load() 方法加载一个更新函数、一个预处理函数和一个输出组件到代码块中。在这里,update_message 函数用于处理用户输入,所以我们将其加载到代码块中。None 表示没有预处理函数。m 是 Markdown 组件,用于显示欢迎消息。demo.launch(auth=[("Pete", "Pete"), ("Dawood", "Dawood")])	#auth 参数指定了允许访问的用户名和密码列表。

The Interface class(接口类)

fn:包装用户界面(UI)的函数
inputs:用于输入的 Gradio 组件。组件的数量应与函数中参数的数量相匹配。
outputs:用于输出的 Gradio 组件。组件的数量应与函数返回值的数量相匹配。

Components Attributes(组件属性)

import gradio as grdef greet(name, intensity):return "Hello, " + name + "!" * intensitydemo = gr.Interface(fn=greet,inputs=["text", gr.Slider(value=2, minimum=1, maximum=10, step=1)],outputs=[gr.Textbox(label="greeting", lines=3)],
)demo.launch()

多个输入和输出组件

import gradio as grdef greet(name, is_morning, temperature):salutation = "Good morning" if is_morning else "Good evening"	#“salutation”称呼(中文)greeting = f"{salutation} {name}. It is {temperature} degrees today"celsius = (temperature - 32) * 5 / 9return greeting, round(celsius, 2)	#将摄氏温度 celsius 四舍五入到小数点后两位的精度。demo = gr.Interface(fn=greet,inputs=["text", "checkbox", gr.Slider(0, 100)],	#"text"文本框(中文);"checkbox"复选框(中文);outputs=["text", "number"],
)
demo.launch()

图像示例

import numpy as np
import gradio as grdef sepia(input_img):	#input_img代表输入的图像。sepia_filter = np.array([	#array阵列[0.393, 0.769, 0.189], [0.349, 0.686, 0.168], [0.272, 0.534, 0.131]])	#创建了一个深褐色滤镜矩阵,其中包含了一组预定义的权重。这个矩阵被用于将输入图像转换为深褐色效果。sepia_img = input_img.dot(sepia_filter.T)	#将输入图像与深褐色滤镜矩阵进行矩阵乘法运算,得到转换后的深褐色图像。dot点(中文);sepia棕色(中文);filter滤波器(中文)sepia_img /= sepia_img.max()	#对转换后的图像进行归一化,以确保图像的像素值在合适的范围内。return sepia_imgdemo = gr.Interface(sepia, gr.Image(), "image")
demo.launch()

嵌套列表

import gradio as gr
def calculator(num1, operation, num2):if operation == "add":return num1 + num2elif operation == "subtract":return num1 - num2elif operation == "multiply":return num1 * num2elif operation == "divide":if num2 == 0:raise gr.Error("Cannot divide by zero!")	#raise 是 Python 中的一个关键字,用于手动触发异常。return num1 / num2demo = gr.Interface(calculator,["number", gr.Radio(["add", "subtract", "multiply", "divide"]),	#“radio”单选按钮组件"number"],"number",examples=[[45, "add", 3],[3.14, "divide", 2],[144, "multiply", 2.5],[0, "subtract", 1.2],],title="Toy Calculator",description="Here's a sample toy calculator. Allows you to calculate things like $2+2=4$",
)demo.launch()

描述性内容

构造函数中有三个参数Interface来指定此内容的位置:

title:接受文本并可以将其显示在界面的最顶部,并且也成为页面标题。
description: 接受文本、Markdown 或 HTML 并将其放置在标题的正下方。
article:它也接受文本、Markdown 或 HTML 并将其放置在界面下方。
在这里插入图片描述

手风琴中的附加输入

import gradio as grdef generate_fake_image(prompt, seed, initial_image=None):	#prompt(文本提示)、seed(随机种子)和 initial_image(初始图像)。return f"Used seed: {seed}", "https://dummyimage.com/300/09f.png"demo = gr.Interface(generate_fake_image,inputs=["textbox"],outputs=["textbox", "image"],additional_inputs=[gr.Slider(0, 1000),"image"]
)demo.launch()

The 4 Kinds of Gradio Interfaces

事实证明,该类gradio.Interface实际上可以处理 4 种不同类型的演示:

标准演示:具有单独的输入和输出(例如图像分类器或语音到文本模型)
仅输出演示:不接受任何输入但产生输出(例如无条件图像生成模型)
仅输入演示:不产生任何输出,但接受某种输入(例如,保存上传到持久外部数据库的图像的演示)
统一演示:同时具有输入和输出组件,但输入和输出组件是相同的。这意味着产生的输出会覆盖输入(例如文本自动完成模型)

标准演示

import numpy as np
import gradio as grdef sepia(input_img):sepia_filter = np.array([[0.393, 0.769, 0.189], [0.349, 0.686, 0.168], [0.272, 0.534, 0.131]])sepia_img = input_img.dot(sepia_filter.T)sepia_img /= sepia_img.max()return sepia_imgdemo = gr.Interface(sepia, gr.Image(), "image")
demo.launch()

仅输出演示

import timeimport gradio as grdef fake_gan():time.sleep(1)images = ["https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80","https://images.unsplash.com/photo-1554151228-14d9def656e4?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=386&q=80","https://images.unsplash.com/photo-1542909168-82c3e7fdca5c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8MXx8aHVtYW4lMjBmYWNlfGVufDB8fDB8fA%3D%3D&w=1000&q=80",]return imagesdemo = gr.Interface(fn=fake_gan,inputs=None,outputs=gr.Gallery(label="Generated Images", columns=[2]),	#gallery图库(中文);columns 参数用于设置每行显示的图像列数为 2。title="FD-GAN",description="This is a fake demo of a GAN. In reality, the images are randomly chosen from Unsplash.",
)demo.launch()

仅输入演示

import random
import string
import gradio as gr def save_image_random_name(image):random_string = ''.join(random.choices(string.ascii_letters, k=20)) + '.png'	#首先使用 random.choices() 函数和 string.ascii_letters 来生成一个随机的由字母组成的字符串,长度为 20。然后,将生成的随机字符串与 '.png' 拼接,作为图像的文件名。image.save(random_string)	#将上传的图像保存为随机命名的 PNG 文件print(f"Saved image to {random_string}!")demo = gr.Interface(fn=save_image_random_name, inputs=gr.Image(type="pil"),  #指定了图像类型为 PIL(Python Imaging Library)格式outputs=None,
)
demo.launch()

统一演示

在这里插入图片描述

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

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

相关文章

蓝桥杯Python B组练习——完美的代价

一、题目 问题描述   回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。   交换的定义是…

C语言-----冒泡排序

今天,让我们来学习一下C语言中一个简单的排序算法------冒泡排序。 什么是冒泡排序呢? 冒泡排序是C语言中一个可以将一个数组的内容按照升序或者降序进行重新排列的算法。简单来说,是一种排序的思维。 冒泡排序的核心思想:让同…

【手撸IM】通讯协议设计与实现

【手撸IM】专题由来:之前利用业余空闲时间写一个Java版Akka-Rpc,并且基于它写了一个分布式高性能文件服务,从反馈上来看,还是得到了一定的关注,甚至部分同学真的基于此直接抄作业和二开了。因此有了再进一步去手撸一个…

【Vue】el-select下选组件

系列文章 【Vue】vue增加导航标签 本文链接:https://blog.csdn.net/youcheng_ge/article/details/134965353 【Vue】Element开发笔记 本文链接:https://blog.csdn.net/youcheng_ge/article/details/133947977 【Vue】vue,在Windows IIS平台…

修改约束

目录 修改约束 创建数据库 添加约束 删除约束 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 修改约束 如果说表结构的修改还在可以容忍的范畴之内,那么约束的修改是绝对 100% 禁止的 所有的约束一定要在…

【Flutter 面试题】讲一讲 Dart 的一些重要概念?

【Flutter 面试题】讲一讲 Dart 的一些重要概念? 文章目录 写在前面口述回答补充说明完整代码运行结果详细说明 写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家博主&#…

UE5 TPS开发p25 设置大厅,销毁会话,快速退出,检查按钮

这节课主要是完善了菜单选择地图作为游戏大厅,MultiPlayerSessionSubsystem的销毁会话函数,然后就是给Menu菜单添加了Quit和禁止使用按钮 同时还完善了创建房间的漏洞,因为在创建房间的时候如果退出后就马上加入就会发现自己无法创建房间,这是因为服务器判断房间销毁是有一定延…

shell的介绍以及Linux权限的讲解

1 shell命令以及运行原理 1.1 shell命令行的概念 大家在以前的学习中可能会有一个固态的印象: 一台计算机的大概分层为下图 也就是说人可以直接调用计算机的操作系统,但真的是这样吗? 答案是否定的! 其实操作系统还有一个“外壳…

31.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-其它消息的实现与使用优化

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:易道云信息技术研究院VIP课 上一个内容:30.数据搜索功能…

如果QQ当年有AI,当年的经典头像会是什么样子?-WEBUI有趣案例分享

👔背景介绍 IP_Adapter是个很有趣的模型,可以实现一定程度上的角色一致性,忽然有个想法,用IP_Adapter还原一下QQ当年的经典头像会是什么样子呢? 不过,大家还记得这些古早时期的头像吗?或者&…

优雅的 Markdown

Markdown浅尝 一、勾选框 注意[]前后都要有空格 - [x] 干的漂亮 - [x] 吃饭 - [x] 写代码 - [ ] 睡觉 干的漂亮 吃饭 写代码 睡觉 二、列表 #无序列列表 * 换成 - 也行 * 你 * 你好 * 你好呀 - 你很好啊 你你好你好呀你很好啊 #有序列表 . 后面有个空格 1. 我 2. 是我 3.…

Day73:WEB攻防-支付逻辑篇篡改属性值并发签约越权盗用算法溢出替换对冲

目录 SRC-支付逻辑测试 购买支付-修改数量&篡改价格&订单对冲 修改数量 篡改价格 产品替换对冲 订单替换对冲 购买支付-优惠券复用盗用&积分对冲溢出 优惠卷复用 优惠卷盗用 积分对冲溢出 SRC实战案例分享 越权让他人支付 四舍五入半价购 并发提前全…

python字典:打印字典中的键、值、打印所有字典、python遍历字典

1.定义 字典以花括号({})括起来,里面的元素是成对出现的,不同对元素用逗号(,)分开;一对元素用 冒号(:)分割。 2.解读 字典里的每一对元素准确的来说是键值对&…

javaSwing连连看

一、简介 基于java的连连看游戏设计和实现,基本功能包括:消除模块,重新开始模块,刷新模块,选择难度模块,计时模块。本系统结构如下: (1)消除模块: 完成连连…

python socket 实时通信,多对多,一对一,转发

研究一下python socket 实时通信,多对多,一对一,转发 C>S 单独通信 server1 import socket import threading# 在线客户端列表 online_clients {}def broadcast(message, sender):"""向所有在线客户端广播消息,除了发送…

面试算法-58-求根节点到叶节点数字之和

题目 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和…

2024年腾讯云优惠券全解析、云服务器代金券领取、查询和使用方法

腾讯云代金券领取渠道有哪些?腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券,大家也可以在腾讯云百科蹲守代金券,因为腾讯云代金券领取渠道比较分散,腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

Dockerfile Docker Compose(实战总结)

Dockerfile & Docker Compose(实战总结) Dockerfile Dockerfile 是用来构建Docker镜像文件,是由一条条构建镜像所需的指令构成的脚步。 步骤: 编写Dockerfile 文件docker build 构建镜像docker run 运行镜像docker push 发…

python coding with ChatGPT 打卡第23天| 回溯算法:理论基础

文章目录 视频讲解回溯法的效率解决的问题如何理解回溯法回溯框架 视频讲解 回溯算法理论篇 回溯是递归的副产品,只要有递归就会有回溯。 回溯法的效率 回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法…

区域规划(Regional Planning)的学习笔记

目录 一、概念题 1.区域的概念、类型、特性 2.区域分析的概念、主要内容 3.自然环境、自然资源的概念 4.区域自然资源评价的内容 5.可持续发展理论定义 6.经济增长、经济结构定义 7.产业结构概念 8.人口增长分析的含义、指标 9.技术进步概念、类型 10.技术进步对区域…