前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Gradio:为你的机器学习模型快速构建Web UI

Gradio:为你的机器学习模型快速构建Web UI

作者头像
luckpunk
发布2023-09-16 08:55:28
发布2023-09-16 08:55:28
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

Gradio是一个开源库,用于仅使用Python构建易于使用且易于共享的应用程序。它特别适用于机器学习项目,旨在使测试、共享和展示模型简单直观。

安装

Gradio的安装非常简单,直接使用pip即可安装:

代码语言:javascript
代码运行次数:0
运行
复制
pip install gradio

创建第一个程序

代码语言:javascript
代码运行次数:0
运行
复制
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()方法即可将我们的函数转化为前端应用。

运行结果

自定义输入框样式

代码语言:javascript
代码运行次数:0
运行
复制
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的类替换字符串,可以通过组件属性对输入框进行定制。在这里我们将输入框调节成为两行,并添加默认的文字提示。

输入控件占用两行,带有提示语

多输入多输出

代码语言:javascript
代码运行次数:0
运行
复制
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的输入输出参数传入控件列表,注意保证控件类型与我们需要包装的函数类型一致。

三个不同类型输入,两个输出

以图像作为输入输出

代码语言:javascript
代码运行次数:0
运行
复制
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的以图绘图就是这种样式

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 创建第一个程序
  • 自定义输入框样式
  • 多输入多输出
  • 以图像作为输入输出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档