Gradio:为你的机器学习模型快速构建Web UI
Gradio是一个开源库,用于仅使用Python构建易于使用且易于共享的应用程序。它特别适用于机器学习项目,旨在使测试、共享和展示模型简单直观。
安装
Gradio的安装非常简单,直接使用pip即可安装:
pip install gradio
创建第一个程序
import gradio as gr
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()
引入gradio库,以gr名称使用。创建一个名为greet的函数,实现传入name,输出Hello + 你的名字的功能。创建使用gr的Interface创建一个实例,传入三个参数fn是方法名称,输入是文本控件、输出也是文本控件,将该实例赋值购给demo。调用demo.launch()方法即可将我们的函数转化为前端应用。
运行结果
自定义输入框样式
import gradio as gr
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs=gr.Textbox(lines=2, placeholder="在这里填写你的名字"), outputs="text")
demo.launch()
在构建Interface实例时,我们使用Textbox的类替换字符串,可以通过组件属性对输入框进行定制。在这里我们将输入框调节成为两行,并添加默认的文字提示。
输入控件占用两行,带有提示语
多输入多输出
import gradio as gr
def greet(name, is_morning, temperature):
salutation = "早上好" if is_morning else "晚上好"
greeting = f"{salutation} {name}, 今天的温度是 {temperature} (华氏度)"
celsius = (temperature - 32) * 5 / 9
return greeting, round(celsius, 2)
demo = gr.Interface(
fn=greet,
inputs=["text", "checkbox", gr.Slider(0, 100)],
outputs=["text", "number"],
)
demo.launch()
当有多个输入与输出时,Interface的输入输出参数传入控件列表,注意保证控件类型与我们需要包装的函数类型一致。
三个不同类型输入,两个输出
以图像作为输入输出
import numpy as np
import gradio as gr
def 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_img
demo = gr.Interface(sepia, gr.Image(), "image")
demo.launch()
输入一张图像,对其进行灰褐色变换,然后输出图像,图像控件的定义既可以使用gr.Image(),也可以使用"image"字符串。
以图象为输入输出,Stable Diffusion的以图绘图就是这种样式
分类:
Python 每日一库
标签:
Python
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)