当前位置: 首页 > news >正文

Gradio入门—快速开始

目录

    • 安装
    • 构建您的第一个演示
    • 分享您的演示
    • 核心 Gradio 课程
      • 聊天机器人`gr.ChatInterface`
      • 自定义演示`gr.Blocks`
      • Gradio Python 和 JavaScript 生态系统

Gradio 是一个开源 Python 软件包,可让您快速为机器学习模型、API 或任何任意 Python 函数构建演示或 Web 应用程序。然后,您可以使用 Gradio 的内置共享功能在几秒钟内分享您的演示或 Web 应用程序的链接。无需 JavaScript、CSS 或 Web 托管经验!

在这里插入图片描述

只需几行 Python 代码即可创建类似上述示例的演示,让我们开始吧 💫

安装

先决条件:Gradio 需要Python 3.8 或更高版本

我们建议使用 安装 Gradio pip,它默认包含在 Python 中。在终端或命令提示符中运行此命令:

pip install gradio

✍️提示: 最好在虚拟环境中安装 Gradio。

构建您的第一个演示

您可以在自己喜欢的代码编辑器、Jupyter 笔记本、Google Colab 或任何编写 Python 的地方运行 Gradio。让我们编写您的第一个 Gradio 应用程序:

import gradio as grdef greet(name, intensity):return "Hello, " + name + "!" * int(intensity)demo = gr.Interface(fn=greet,inputs=["text", "slider"],outputs=["text"],
)demo.launch()

✍️ 提示: 我们将导入的名称从 缩短gradiogr以提高代码的可读性。这是一个广泛采用的惯例,您应该遵循它,以便任何使用您的代码的人都可以轻松理解它。

现在,运行您的代码。如果您已将 Python 代码写入名为的文件中,app.py那么您将从python app.py终端运行。

如果从文件运行,下面的演示将在浏览器中打开http://localhost:7860。如果您在笔记本中运行,则演示将嵌入在笔记本中。

在这里插入图片描述

在左侧的文本框中输入您的姓名,拖动滑块,然后按“提交”按钮。您应该会在右侧看到友好的问候。

✍️ 提示:在本地开发时,您可以在热重载模式下运行 Gradio 应用,该模式会在您对文件进行更改时自动重新加载 Gradio 应用。为此,只需在gradio文件名前输入 而不是python。在上面的示例中,您将gradio app.py在终端中输入:。在热重载指南中了解有关热重载的更多信息。

理解Interface

您会注意到,为了制作第一个演示,您创建了该类的一个实例gr.Interface。该类Interface旨在为接受一个或多个输入并返回一个或多个输出的机器学习模型创建演示。

该类Interface有三个核心参数:

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

fn参数非常灵活 - 您可以传递任何想要用 UI 包装的 Python 函数。在上面的示例中,我们看到了一个相对简单的函数,但该函数可以是任何东西,从音乐生成器到税收计算器,再到预训练机器学习模型的预测函数。

inputs和参数outputs接受一个或多个 Gradio 组件。正如我们所见,Gradio 包含 30 多个专为机器学习应用设计的内置组件(例如gr.Textbox()gr.Image()和组件)。`gr.HTML()

✍️提示: 对于inputsoutputs参数,你可以将这些组件的名称作为字符串("textbox")或类的实例(gr.Textbox())传入。

如果您的函数接受多个参数(如上例所示),请将输入组件列表传递给inputs,每个输入组件按顺序对应函数的一个参数。如果您的函数返回多个值,则同样如此:只需将组件列表传递给outputs。这种灵活性使Interface该类成为创建演示的非常强大的方式。

我们将在有关构建接口的gr.Interface系列文章中深入探讨。

分享您的演示

如果不能分享,那么精美的演示有什么用呢? Gradio 可让您轻松分享机器学习演示,而无需担心在 Web 服务器上托管的麻烦。 只需设置share=True,launch()就会为您的演示创建一个可公开访问的 URL。 让我们重新查看示例演示,但将最后一行更改为如下:

import gradio as grdef greet(name):return "Hello " + name + "!"demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")demo.launch(share=True)  # 只需增加一个参数即可分享您的演示 🚀

当你运行此代码时,几秒钟内就会为你的演示生成一个公共 URL,如下所示:

👉 https://a23dsf231adb.gradio.live

现在,世界各地的任何人都可以通过浏览器试用您的 Gradio 演示,而机器学习模型和所有计算将继续在您的计算机上本地运行。

要了解有关分享您的演示的更多信息,请阅读我们关于分享您的 Gradio 应用程序的专门指南。

核心 Gradio 课程

到目前为止,我们一直在讨论Interface类,这是一个高级类,允许使用 Gradio 快速构建演示。但是 Gradio 还包括什么?

聊天机器人gr.ChatInterface

Gradio 包含另一个高级类,gr.ChatInterface专门用于创建聊天机器人 UI。与类似Interface,您提供一个函数,Gradio 会创建一个功能齐全的聊天机器人 UI。如果您有兴趣创建聊天机器人,可以直接跳转到我们关于的专用指南gr.ChatInterface

自定义演示gr.Blocks

Gradio 还提供了一种基础方法来设计具有更灵活布局和数据流的 Web 应用程序gr.Blocks。Blocks 允许您执行诸如控制组件在页面上出现的位置、处理复杂的数据流(例如,输出可以作为其他函数的输入)以及根据用户交互更新组件的属性/可见性等操作 - 所有这些都仍然使用 Python。

您可以使用gr.Blocks()构建非常自定义和复杂的应用程序。例如,流行的图像生成Automatic1111 Web UI是使用 Gradio Blocks 构建的。我们将在有关使用 Blocks 构建的gr.Blocks系列文章中深入探讨。

Gradio Python 和 JavaScript 生态系统

这就是核心 Python 库的要点gradio,但 Gradio 实际上远不止于此!它是一个完整的 Python 和 JavaScript 库生态系统,可让您使用 Python 或 JavaScript 构建机器学习应用程序或以编程方式查询它们。以下是 Gradio 生态系统的其他相关部分:

  • Gradio Python 客户端(gradio_client):使用 Python 编程查询任何 Gradio 应用程序。
  • Gradio JavaScript 客户端(@gradio/client):使用 JavaScript 以编程方式查询任何 Gradio 应用程序。
  • Gradio-Lite(@gradio/lite):用 Python 编写 Gradio 应用程序,完全在浏览器中运行(无需服务器!),感谢 Pyodide。
  • Hugging Face Spaces:最受欢迎的 Gradio 应用程序托管场所——免费!

相关文章:

Gradio入门—快速开始

目录 安装构建您的第一个演示分享您的演示核心 Gradio 课程聊天机器人gr.ChatInterface自定义演示gr.BlocksGradio Python 和 JavaScript 生态系统 Gradio 是一个开源 Python 软件包,可让您快速为机器学习模型、API 或任何任意 Python 函数构建演示或 Web 应用程序。…...

AOP应用之系统操作日志

本文演示下如何使用AOP&#xff0c;去实现系统操作日志功能。 实现步骤 引入AOP包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId><version>2.6.6</version></de…...

海外云手机自动化管理,高效省力解决方案

不论是企业还是个人&#xff0c;对于海外社媒的营销都是需要自动化管理的&#xff0c;因为自动化管理不仅省时省力&#xff0c;而且还节约成本&#xff1b; 海外云手机的自动化管理意味着什么&#xff1f;那就是企业无需再投入大量的人力和时间去逐一操作和监控每一台设备。 通…...

后仿真中的 《specify/endspecify block》之(5)使用specify进行时序仿真

前面我们学习了specify...endspecify 具体是什么东西。今天,我们使用specify block 中定义的延时,来进行一次仿真。看看到底是背后如何运转的呢。 一 基本例子 一个用 specify 指定延迟的与门逻辑描述如下: module and_gate(output Z,input A, B);assign Z = A & …...

win10/11磁盘管理

win10/11磁盘管理 合并磁盘分区的前提是你的两个磁盘区域是相邻的&#xff0c;比如如下&#xff1a; 如果需要吧这个磁盘进行分解&#xff0c;你可以选择压缩一部分磁盘或者是直接删除卷 我这里的话&#xff0c;因为压缩出来的卷和C盘好像是不相邻的&#xff08;我之前做过&…...

【昇思初学入门】第四天打卡

数据变换Transforms 心得体会 MindSpore提供了丰富的数据变换工具&#xff0c;针对图像数据可以使用如Rescale、Normalize和HWC2CHW等&#xff0c;且使用Compose类允许我们定义一个变换序列&#xff0c;并将它们作为一个整体应用到数据上。 composed transforms.Compose([v…...

禁用/屏蔽 Chrome 默认快捷键

Chrome 有一些内置的快捷键&#xff0c;但是它并没有像其他软件一样提供管理快捷键的界面。在某些时候&#xff0c;当我们因为个人需求希望禁用 Chrome 某些快捷键时&#xff0c;又无从下手。 好在有开发者开发了 Chrome 插件&#xff0c;可以禁用 Chrome 快捷键的插件&#x…...

移动端+PC端应用模式的智慧城管综合执法办案平台源码,案件在线办理、当事人信用管理、文书电子送达、沿街店铺分析

城市管理综合执法管理平台实现执法办案、业务全流程在线办理&#xff0c;依托移动端PC端的“两端”应用模式&#xff0c;保障能够通过信息化手段进行日常的执法办案工作&#xff0c;强化执法监督功能。提供了案件在线办理、当事人信用管理、文书电子送达、沿街店铺分析等功能&a…...

AI音乐大模型时代:版权归属与创意产业的新生长点

AI在创造还是毁掉音乐&#xff1f; 简介&#xff1a;最近一个月&#xff0c;轮番上线的音乐大模型&#xff0c;一举将素人生产音乐的门槛降到了最低&#xff0c;并掀起了音乐圈会不会被AI彻底颠覆的讨论。短暂的兴奋后&#xff0c;AI产品的版权归属于谁&#xff0c;创意产业要…...

C++函数作为参数

C++函数作为参数 在C++中,函数作为另一个函数的参数是非常常见的做法,特别是在处理回调函数和泛型编程时。我们展示了如何在C++中将函数作为参数传递给另一个函数,包括普通函数、std::function 和 std::bind、lambda表达式以及类成员函数。每种方法都有其独特的优势,可以根…...

考前刷题练手感(北航期末往年数据结构编程题)

本次因为是考前一天极速刷题&#xff0c;所以没有讲解&#xff0c;若有问题可私信。 目录 一、 查找同时空人员二、 老鼠回家-无回路三、函数调⽤关系四、东二食堂模拟五、栈帧 一、 查找同时空人员 【问题描述】 假设一共有6个手机基站&#xff0c;都具有记录手机连接基站状…...

Android记录9--实现转盘效果

自定义View /2013.10.16_TurnPlate_Demo/src/com/wwj/turnplate/TurnPlateView.java package com.wwj.turnplate; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; im…...

【Oracle APEX开发小技巧1】转换类型实现显示小数点前的 0 以 及常见类型转换

在 apex 交互式式网格中&#xff0c;有一数值类型为 NUMBER&#xff0c;保留小数点后两位的项&#xff0c;在 展示时小数点前的 0 不显示。 效果如下&#xff1a; 转换前&#xff1a; m.WEIGHT_COEFFICIENT 解决方案&#xff1a; 将 NUMBER&#xff08;20&#xff0c;2&#xf…...

GRIT论文阅读笔记

一篇试图统一生成任务和编码任务的工作&#xff0c;就是把只能完成生成任务的GPT改成既能生成又能encode。思路其实很简单&#xff0c;就是在输入的时候添加instruction tokens来指引模型做representation还是generation&#xff0c;然后各自算损失。representation任务用的是d…...

1980python个性化电影推荐管理系统mysql数据库Django结构layUI布局elasticsearch存储计算机软件工程网页

一、源码特点 python Django个性化电影推荐管理系统是一套完善的web设计系统mysql数据库 利用elasticsearch存储浏览数据 &#xff0c;对理解python编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 开发环境pycharm…...

基于IDEA的Maven(依赖介绍和引用)

如何通过一个坐标信息&#xff08;依赖&#xff09;去引用 &#xff0c;某个"jar 包" 会在这篇博客进行学习。 目录 一、学习开始 &#xff08;0&#xff09;项目的结构组成和 "pom.xml" 文件内容。 &#xff08;1&#xff09;首先需要一个标签&#xf…...

pytest测试框架pytest-sugar插件生成进度条

Pytest提供了丰富的插件来扩展其功能&#xff0c;介绍下插件pytest-sugar&#xff0c;可以帮助我们在控制台中显示彩色的测试结果和进度条&#xff0c;提供失败的堆栈回溯信息。 为了使用 pytest-sugar&#xff0c;需要满足以下条件&#xff1a; Python 3.8 或更高版本pytest…...

若依框架集成微信支付

1. 添加微信支付相关依赖 <!-- 微信支付 --> <dependency><groupId>com.github.wxpay</groupId><artifactId>wxpay-sdk</artifactId><version>0.0.3</version> </dependency> <dependency><groupId>com.gi…...

IOS开发学习日记(十七)

简单的第三方登录和分享功能 第三方登录系统 URL Scheme&#xff1a;App间的跳转及通信 App间跳转场景 登陆系统&#xff1a; 跨平台&#xff0c;跨App 标记用户&#xff0c;个性化的推送 使用第三方登录&#xff08;减少注册成本 / 无须维护敏感信息&#xff09; 微信 / Q…...

【ARMv8/ARMv9 硬件加速系列 2 -- ARM NEON 加速运算介绍】

文章目录 ARM NEONNEON 向量寄存器NEON 寄存器使用方式NEON 寄存器的视图NEON 寄存器别名NEON 寄存器的用途ARM NEON 在ARMv8架构中,引入了一组新的寄存器,称为向量寄存器(Vector Registers),用于支持高效的向量和浮点计算。这些寄存器是SIMD(Single Instruction, Multi…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...