Gradio机器学习模型快速部署工具quickstart

作者:Livingbody 时间:2023-06-30 01:09:52 

引言

书接上回 Gradio机器学习模型快速部署工具【quickstart】翻译,讲到多输入输出,其实很简单,就是把多个组件包装到列表,inputs和outputs对应的就是2个列表,输入输出列表,仅此而已。

1.图像示例

Gradio 支持多种类型的组件,例如Image, DataFrame, Video, 或Label. 让我们尝试一个图像到图像的功能来感受一下这些!

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(shape=(200, 200)), "image")
demo.launch()

Gradio机器学习模型快速部署工具quickstart

使用该Image组件作为输入时,您的函数将接收一个形状为 的 NumPy 数组(width, height, 3),其中最后一个维度表示 RGB 值。我们还将以 NumPy 数组的形式返回图像。

您还可以使用关键字参数设置组件使用的数据类型type=。例如,如果您希望您的函数采用图像的文件路径而不是 NumPy 数组,则输入Image组件可以写为:

gr.Image(type="filepath", shape=...)

另请注意,我们的输入Image组件带有一个编辑按钮🖉,它允许裁剪和放大图像。以这种方式处理图像有助于揭示机器学习模型中的偏差或隐藏缺陷!

您可以在Gradio 文档中阅读更多关于许多组件以及如何使用它们的信息。

2.块:更多的灵活性和控制

Gradio 提供了两个类来构建应用程序:

1. Interface,它为创建我们迄今为止一直在讨论的演示提供了高级抽象。

2. Blocks,一种用于设计具有更灵活布局和数据流的网络应用程序的低级 API。Blocks 允许你做一些事情,比如以多个数据流和演示为特色,控制组件在页面上出现的位置,处理复杂的数据流(例如,输出可以作为其他功能的输入),以及根据用户交互更新组件的属性/可见性——仍然全部在 Python 中。如果您需要这种可定制性,请试试Blocks吧!

让我们看一个简单的例子。请注意此处的 API 与Interface.

import gradio as gr
def greet(name):
   return "Hello " + name + "!"
with gr.Blocks() as demo:
   name = gr.Textbox(label="Name")
   output = gr.Textbox(label="Output Box")
   greet_btn = gr.Button("Greet")
   greet_btn.click(fn=greet, inputs=name, outputs=output)
demo.launch()

Gradio机器学习模型快速部署工具quickstart

注意事项:

  • Blocks是用一个with子句制作的,在这个子句中创建的任何组件都会自动添加到应用程序中。

  • 组件按照它们创建的顺序垂直显示在应用程序中。(稍后我们将介绍自定义布局!)

  • 创建了A Button,然后将click事件 * 添加到此按钮。这个 API 应该看起来很熟悉!与 一样Interface,该click方法采用 Python 函数、输入组件和输出组件。

3.更复杂的 Blocks

这是一个应用程序,可让您体验Blocks:

import numpy as np
import gradio as gr
# 1.文字翻转
def flip_text(x):
   return x[::-1]
# 2.图像翻转
def flip_image(x):
   return np.fliplr(x)
with gr.Blocks() as demo:
   # 3.添加markdown组件
   gr.Markdown("Flip text or image files using this demo.")
   # 4.添加Tab
   with gr.Tab("Flip Text"):
       text_input = gr.Textbox()
       text_output = gr.Textbox()
       text_button = gr.Button("Flip")
   with gr.Tab("Flip Image"):
       with gr.Row():
           image_input = gr.Image()
           image_output = gr.Image()
       image_button = gr.Button("Flip")
   # 5.添加Accordion
   with gr.Accordion("Open for More!"):
       gr.Markdown("Look at me...")
   # 6.添加2个按钮
   text_button.click(flip_text, inputs=text_input, outputs=text_output)
   image_button.click(flip_image, inputs=image_input, outputs=image_output)
demo.launch()

Gradio机器学习模型快速部署工具quickstart

Gradio机器学习模型快速部署工具quickstart

参考网址:gradio.app/quickstart/

来源:https://juejin.cn/post/7217012056114036795

标签:Gradio,部署,quickstart,机器学习,模型
0
投稿

猜你喜欢

  • css清除浮动“clear:both;”的应用

    2008-03-17 12:54:00
  • 解决Python保存文件名太长OSError: [Errno 36] File name too lon

    2021-01-22 06:30:49
  • Python中文分词工具之结巴分词用法实例总结【经典案例】

    2023-05-05 01:46:30
  • golang中gin框架接入jwt使用token验证身份

    2024-02-19 15:12:28
  • Python 阶乘详解

    2022-01-16 13:56:00
  • python Pandas中数据的合并与分组聚合

    2023-06-28 12:48:04
  • 用python生成(动态彩色)二维码的方法(使用myqr库实现)

    2023-05-08 16:24:05
  • Python利用tkinter实现一个简易番茄钟的示例代码

    2021-03-02 17:20:59
  • vue 自定义右键样式的实例代码

    2023-07-02 16:33:34
  • Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)

    2023-12-23 19:32:54
  • JS实现数字格式千分位相互转换方法

    2023-08-31 08:24:48
  • 使用Oracle的Decode函数进行多值判断

    2024-01-28 09:12:54
  • 计算pytorch标准化(Normalize)所需要数据集的均值和方差实例

    2022-08-24 22:34:00
  • 一文带你吃透Python中的日期时间模块

    2023-01-11 19:33:32
  • python中__call__内置函数用法实例

    2022-06-04 11:46:32
  • Python输出汉字字库及将文字转换为图片的方法

    2023-01-13 07:06:39
  • Python NumPy教程之数组的基本操作详解

    2021-08-15 16:20:12
  • 让goland支持proto文件类型的实现

    2024-05-25 15:12:24
  • MySQL中的用户创建与权限管理

    2024-01-17 00:49:06
  • 如何基于Python实现电子邮件的发送

    2022-03-16 11:49:16
  • asp之家 网络编程 m.aspxhome.com