Gradio入门

Gradio是一个用于快速创建图形用户界面(GUI)的Python库,用于机器学习和深度学习模型的部署。

它的主要功能有:

- 支持多种UI组件:文本输入、数字输入、图像输入、摄像头输入、选择输入等

- 支持实时响应和网络推理

- 自动生成UI组件,无需编写HTML或CSS

- 能够导出为Web应用、pc端应用和移动端应用

要使用gradio,首先需要安装:

pip install gradio

然后可以这样定义一个简单的UI:

#python
import gradio as gr

def add(x, y):
    return x + y

gr.Interface(fn=add, 
                inputs=[gr.inputs.Number(label="x"), gr.inputs.Number(label="y")],
                outputs=gr.inputs.Number(label="sum")).launch()

这个UI有两个数字输入框输入x和y,当点击运行按钮后,会调用add函数,计算x + y,并在outputs框中显示结果sum。运行结果如下:

下面介绍gradio的主要参数:

- fn: 要部署的函数。输入类型可以是function、tensorflow模型、pytorch模型等。

- inputs: 模型的输入参数类型。支持 gr.inputs.Text(文字)、gr.inputs.Number(数字)、gr.inputs.Image(图像)、gr.inputs.Camera(相机)等类型。

- outputs: 模型的输出参数类型,默认“label”。支持"sum"(总和)、"label"(标签)、gr.outputs.Image(图像)等。

- examples: 用于在界面右侧显示示例,默认为空。

- allow_flagging:是否允许用户报告不适当内容,默认为True。

- allow_screenshot: 是否允许用户截屏,默认为True。

- show_input: 是否在界面中显示输入数据,默认为True。

- show_output: 是否在界面中显示输出结果,默认为True。

- live: 是否实时推理,默认为False,即点击Run按钮后才进行推理。

- cache_examples: 是否缓存示例,默认为False。

- adversarial: 是否添加额外的输入框,默认为False。

- title: 界面的标题,默认为空。

- description: 在界面上方显示的描述信息,默认为空。

- article: 相关说明文档,默认为空。

- css: 自定义css样式。

- server_port: 服务启动端口,默认7860。

- server_name: 服务IP,默认为127.0.0.1。

等等。更详细的API文档可以参考Gradio的官方文档

gradio入门苏黎世的从前927于 2024-12-31 22:08:37 发布阅读量955 收藏 23点赞数 27分类专栏: 工具 文章标签: 前端框架版权工具专栏收录该内容1 篇文章订阅专栏快速入门import gradio as gr def greet(name): return "h1 " + name + "!" gr.Interface( fn=greet, inputs="text", outputs="text", title="Greeting Interface", description="This interface greets the user with the provided name." ).launch(share=True)文件名为app.py,直接在终端运行python app.py。即会出现一个链接,打开链接,就会在浏览器界面出现内容。但是使用这种方法,当需要更改代码时,更改后,需要将服务停掉,重新运行,很不方便。所以,第二种方法,使用debug模式运行。方法:将接口赋值给demo(固定写法,debug模式必须在demo的命名空间下启动),然后用demo启动,最后在终端运行gradio app.pyimport gradio as gr def greet(name): return "h1 " + name + "!" demo = gr.Interface( fn=greet, inputs="text", outputs="text", title="Greeting Interface", description="This interface greets the user with the provided name." ) demo.launch(share=True)Gradio 学习笔记:构建简单的 AI 交互界面1. Gradio 简介Gradio 是一个 Python 库,可以快速为机器学习模型创建友好的 Web 界面。它的特点是:简单易用,几行代码即可创建界面支持多种输入输出类型可以快速分享和部署适合原型开发和演示2. 基本安装和使用# 安装pip install gradio# 基本导入import gradio as gr3. 常用组件3.1 输入组件gr.Textbox(): 文本输入框gr.Number(): 数字输入框gr.Slider(): 滑动条gr.Radio(): 单选按钮gr.Checkbox(): 单个复选框gr.CheckboxGroup(): 多选框组gr.Image(): 图片上传gr.Audio(): 音频上传3.2 输出组件gr.Textbox(): 文本显示gr.Label(): 标签显示gr.Image(): 图片显示gr.Plot(): 图表显示4. 界面布局4.1 基本布局元素with gr.Blocks() as demo:    # Markdown 支持    gr.Markdown("# 标题")        # 标签页    with gr.Tab("标签1"):        # 内容        # 行布局    with gr.Row():        # 并排组件5. 实战示例:多功能演示程序import gradio as grdef greet(name, is_shouting=False):    if is_shouting:        return f"你好, {name.upper()}!"    return f"你好, {name}!"def calculator(num1, num2, operation):    if operation == "加":        return str(num1 + num2)    elif operation == "减":        return str(num1 - num2)    elif operation == "乘":        return str(num1 * num2)    elif operation == "除":        return str(num1 / num2) if num2 != 0 else "除数不能为零"with gr.Blocks() as demo:    gr.Markdown("# 多功能演示程序")        with gr.Tab("问候程序"):        gr.Markdown("## 问候功能")        with gr.Row():            name = gr.Textbox(label="请输入您的名字")            is_shouting = gr.Checkbox(label="大写模式")            greet_output = gr.Textbox(label="问候语")        name.change(fn=greet, inputs=[name, is_shouting], outputs=greet_output)        is_shouting.change(fn=greet, inputs=[name, is_shouting], outputs=greet_output)        with gr.Tab("计算器"):        gr.Markdown("## 计算器功能")        with gr.Row():            num1 = gr.Number(label="第一个数")            num2 = gr.Number(label="第二个数")            operation = gr.Radio(["加", "减", "乘", "除"], label="运算")            result = gr.Textbox(label="结果")                calculate_btn = gr.Button("计算")        calculate_btn.click(            fn=calculator,            inputs=[num1, num2, operation],            outputs=result        )demo.launch()6. 事件处理Gradio 支持多种事件:click(): 点击事件change(): 值改变事件submit(): 提交事件7. 部署和分享本地运行:demo.launch()公开分享:demo.launch(share=True)自定义端口:demo.launch(server_port=7860)8. 实用技巧1. 使用 gr.Markdown() 添加格式化文本使用 with gr.Row() 创建水平布局使用 with gr.Tab() 创建多标签页界面使用 value= 参数设置默认值使用 label= 参数设置组件标签9. 注意事项1. 确保函数输入输出与界面组件匹配2. 处理异常情况(如除零错误)合理组织界面布局,提高用户体验添加适当的提示信息和说明文字10. 总结Gradio 是一个强大而简单的工具,特别适合:快速创建演示界面展示机器学习模型创建简单的 Web 应用原型验证和测试通过这些基础知识,你已经可以创建实用的交互界面了。随着深入学习,你还可以探索更多高级功能,如自定义主题、API集成等。
03-12
### Gradio 基本使用方法 #### 安装 Gradio 为了开始使用 Gradio,需先通过 `pip` 工具安装库。这可以通过执行以下命令完成[^2]: ```bash pip install gradio ``` #### 创建基本的 AI 交互界面 Gradio 的核心功能之一是能够快速创建机器学习模型或其他 Python 函数的 Web 界面。下面是一个简单的例子来展示如何实现这一点。 要创建一个基于图像分类器的应用程序,可以按照如下方式定义函数以及其对应的输入输出接口[^4]: ```python import gradio as gr def classify_image(image): # 这里应该放置实际处理逻辑,比如调用预训练好的神经网络进行预测 prediction = {"cat": 0.9, "dog": 0.1} return prediction demo = gr.Interface( fn=classify_image, inputs="image", outputs="label" ) if __name__ == "__main__": demo.launch(share=True) # 启动应用程序并允许共享链接 ``` 这段代码做了几件重要的事情: - 导入了必要的模块 (`gradio`) - 定义了一个名为 `classify_image()` 的函数,它接收一张图片作为参数,并返回类别概率字典形式的结果。 - 使用 `Interface` 类实例化对象 `demo` 来配置前端UI布局;指定了目标函数(`fn`)、输入组件类型(`inputs`) 和 输出显示样式(`outputs`)。 - 调用了 `.launch()` 方法启动服务端监听请求的同时还可以选择性开启公共访问权限以便于分享给他人测试[^3]。 #### 调试技巧 当开发过程中出现问题时,建议采取以下几个措施来进行有效的错误排查: - 查看终端中的日志信息,通常会提供有关失败原因的具体提示; - 利用浏览器开发者工具检查是否有任何 JavaScript 错误发生; - 如果怀疑问题是由于特定版本引起的,则尝试更新至最新稳定版或者回滚到之前正常工作的版本; - 参考官方文档获取更多关于 API 参数设置的帮助说明[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值