Gradio~让你的机器学习模型~性感起来

这篇具有很好参考价值的文章主要介绍了Gradio~让你的机器学习模型~性感起来。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

gradio是一个快速构建机器学习Web展示页面的开源Python库。

只需要几行代码,就可以让你的机器学习模型从抽象晦涩的代码变成性感可爱的交互界面。

让没有任何编程技能的用户也能够轻松使用和体验模型。

它非常适合在模型迭代测试中快速获取用户反馈或者在汇报展示中进行使用,非常酷炫。

公众号算法美食屋后台回复关键词:gradio, 获取本文notebook源代码和 Bilibili视频演示教程~

相比另一个机器学习应用web展示库streamlit,gradio具有如下优势:

  • 便于分享:gradio可以在启动应用时设置share=True参数创建外部分享链接,可以直接在微信中分享给用户使用。

  • 方便调试:gradio可以在jupyter中直接展示页面,更加方便调试。

大多数的gradio应用一般由如下最常用的基础模块构成。

  • 应用界面:gr.Interface(简易场景), gr.Blocks(定制化场景)

  • 输入输出:gr.Image(图像), gr.Textbox(文本框), gr.DataFrame(数据框), gr.Dropdown(下拉选项), gr.Number(数字), gr.Markdown, gr.Files

  • 控制组件:gr.Button(按钮)

  • 布局组件:gr.Tab(标签页), gr.Row(行布局), gr.Column(列布局)

我们将由易到难通过5个范例来介绍gradio的使用方法。

  • hello world范例 (gr.Interface)

  • 文本分类 (gr.Interface)

  • 图片分类 (gr.Interface)

  • 目标检测  (gr.Blocks定制化)

  • 图片筛选器 (gr.Blocks)

参考资料:

  • 官方教程:https://gradio.app/

一,Hello World (难度系数: ⭐️)

import gradio as gr

def greet(name):
    return "Hello " + name + "!!"

demo = gr.Interface(fn=greet, inputs="text", outputs="text")
gr.close_all()
demo.launch(share=True)

二,文本分类 (难度系数: ⭐️⭐️)

#!pip install gradio, ultralytics, transformers, torchkeras
import gradio as gr 
from transformers import pipeline

pipe = pipeline("text-classification")

def clf(text):
    result = pipe(text)
    label = result[0]['label']
    score = result[0]['score']
    res = {label:score,'POSITIVE' if label=='NEGATIVE' else 'NEGATIVE': 1-score}
    return res 

demo = gr.Interface(fn=clf, inputs="text", outputs="label")
gr.close_all()
demo.launch(share=True)

三,图片分类 (难度系数: ⭐️⭐️⭐)

import gradio as gr 
import pandas as pd 
from ultralytics import YOLO
from skimage import data
from PIL import Image

model = YOLO('yolov8n-cls.pt')
def predict(img):
    result = model.predict(source=img)
    df = pd.Series(result[0].names).to_frame()
    df.columns = ['names']
    df['probs'] = result[0].probs
    df = df.sort_values('probs',ascending=False)
    res = dict(zip(df['names'],df['probs']))
    return res
gr.close_all() 
demo = gr.Interface(fn = predict,inputs = gr.Image(type='pil'), outputs = gr.Label(num_top_classes=5), 
                    examples = ['cat.jpeg','people.jpeg','coffee.jpeg'])
demo.launch()

四,目标检测 (难度系数: ⭐️⭐️⭐⭐️)

import gradio as gr 
import pandas as pd 
from skimage import data
from ultralytics.yolo.data import utils 

model = YOLO('yolov8n.pt')

#load class_names
yaml_path = str(Path(ultralytics.__file__).parent/'datasets/coco128.yaml') 
class_names = utils.yaml_load(yaml_path)['names']
def detect(img):
    if isinstance(img,str):
        img = get_url_img(img) if img.startswith('http') else Image.open(img).convert('RGB')
    result = model.predict(source=img)
    if len(result[0].boxes.boxes)>0:
        vis = plots.plot_detection(img,boxes=result[0].boxes.boxes,
                     class_names=class_names, min_score=0.2)
    else:
        vis = img
    return vis
with gr.Blocks() as demo:
    gr.Markdown("# yolov8目标检测演示")

    with gr.Tab("捕捉摄像头喔"):
        in_img = gr.Image(source='webcam',type='pil')
        button = gr.Button("执行检测",variant="primary")

        gr.Markdown("## 预测输出")
        out_img = gr.Image(type='pil')

        button.click(detect,
                     inputs=in_img, 
                     outputs=out_img)
        
    
    ...
gr.close_all() 
demo.queue(concurrency_count=5)
demo.launch()

五,图片筛选器 (难度系数: ⭐️⭐️⭐⭐️⭐️)

尽管gradio的设计初衷是为了快速创建机器学习用户交互页面。

但实际上,通过组合gradio的各种组件,用户可以很方便地实现非常实用的各种应用小工具。

例如:  数据分析展示dashboard,  数据标注工具, 制作一个小游戏界面等等。

本范例我们将应用 gradio来构建一个图片筛选器,从百度爬取的一堆猫咪表情包中刷选一些我们喜欢的出来。

#!pip install -U torchkeras
import torchkeras 
from torchkeras.data import download_baidu_pictures 
download_baidu_pictures('猫咪表情包',100)
import gradio as gr
from PIL import Image
import time,os
from pathlib import Path 
base_dir = '猫咪表情包'
selected_dir = 'selected'
files = [str(x) for x in 
         Path(base_dir).rglob('*.jp*g') 
         if 'checkpoint' not in str(x)]
def show_img(path):
    return Image.open(path)
def fn_before(done,todo):
    ...
    return done,todo,path,img
def fn_next(done,todo):
    ...
    return done,todo,path,img
def save_selected(img_path):
    ...
    return msg 
def get_default_msg():
    ...
    return msg
with gr.Blocks() as demo:
    with gr.Row():
        total = gr.Number(len(files),label='总数量')
        with gr.Row(scale = 1):
            bn_before = gr.Button("上一张")
            bn_next = gr.Button("下一张")
        with gr.Row(scale = 2):
            done = gr.Number(0,label='已完成')
            todo = gr.Number(len(files),label='待完成')
    path = gr.Text(files[0],lines=1, label='当前图片路径')
    feedback_button = gr.Button("选择图片",variant="primary")
    msg = gr.TextArea(value=get_default_msg,lines=3,max_lines = 5)
    img = gr.Image(value = show_img(files[0]),type='pil')
    
    bn_before.click(fn_before,
                 inputs= [done,todo], 
                 outputs=[done,todo,path,img])
    bn_next.click(fn_next,
                 inputs= [done,todo], 
                 outputs=[done,todo,path,img])
    feedback_button.click(save_selected,
                         inputs = path,
                         outputs = msg
                         )
demo.launch()

六,huggingface托管 (难度系数: ⭐️⭐️)

为了便于向合作伙伴永久展示我们的模型App,可以将gradio的模型部署到 HuggingFace的 Space托管空间中,完全免费的哦。

方法如下:

1,注册huggingface账号:https://huggingface.co/join

2,在space空间中创建项目:https://huggingface.co/spaces

3,创建好的项目有一个Readme文档,可以根据说明操作,也可以手工编辑app.py和requirements.txt文件。

参考范例:

https://huggingface.co/spaces/lyhue1991/yolov8_demo

公众号算法美食屋后台回复关键词:gradio,获取本文notebook源代码和B站视频讲解.文章来源地址https://www.toymoban.com/news/detail-443892.html

到了这里,关于Gradio~让你的机器学习模型~性感起来的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Gradio Interface构建交互式机器学习演示

    ❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈 博主原文链接:https://www.yourmetaverse.cn/nlp/231/ (封面图由文心一格生成) 在

    2024年02月09日
    浏览(82)
  • [python] 基于Gradio可视化部署机器学习应用

    Gradio是一个开源的Python库,用于构建机器学习和数据科学演示应用。有了Gradio,你可以围绕你的机器学习模型或数据科学工作流程快速创建一个简单漂亮的用户界面。Gradio适用于以下情况: 为客户/合作者/用户/学生演示你的机器学习模型。 通过自动共享链接快速部署你的模

    2023年04月09日
    浏览(51)
  • 从零开始配置franka机器人,让你的franka动起来

    实验室新搬来一个franka机器人,下面记录环境配置过程 将网线通过机器人控制器连接到电脑,并打开控制器电源开关,刚开始机器人黄灯闪烁,等待大概30s,转为黄灯常亮,代表启动成功,处于抱闸状态 环境:Ubuntu20.04 ROS Noetic版本 franka机械臂默认ip为172.16.0.2,若直连机械臂

    2024年01月18日
    浏览(53)
  • 基于星火和Gradio的聊天机器人

    星火大模型官网:https://xinghuo.xfyun.cn/ conda create -n Gradio python=3.8 pip install gradio 中间遇到os报错,解决方案: pip install aiofiles==23.2.1 SparkDesk.py: 下面代码是一个用于与基于WebSocket的聊天机器人API进行交互的Python实现。下面逐个解释代码的每个部分: 代码导入了几个模块,用于

    2024年02月13日
    浏览(41)
  • Gradio学习笔记--Gradio基本用法和简单案例

    ​​​​​​​ 目录 1--配置Gradio 2--Hello World案例 2-1--基本使用 2-2--进阶使用 3--图像案例 3--常用类 Interface 和 Blocks         使用 pip 安装 Gradio:         类 gr.Interface()可以包含任何 Python 函数,其通过以下三个必需的参数进行初始化: ① fn:封装好的 Python 函数,即上例

    2024年02月02日
    浏览(36)
  • 从零开始-与大语言模型对话学技术-gradio篇(4)

    本文介绍「星火杯」认知大模型场景创新赛中的落选项目- AI命理分析系统,属于个人娱乐练手。总结提炼了往期文章精华并发掘出新的知识。 包括本地部署版本和Web在线版本,两种打包方式基于 半自动化使用.bat手动打包迁移python项目 如何把 Gradio 应用上传到 Hugging Face 往期

    2024年02月09日
    浏览(35)
  • 开源模型应用落地-chatglm3-6b-gradio-入门篇(七)

        早前的文章,我们都是通过输入命令的方式来使用Chatglm3-6b模型。现在,我们可以通过使用gradio,通过一个界面与模型进行交互。这样做可以减少重复加载模型和修改代码的麻烦, 让我们更方便地体验模型的效果。     是一个用于构建交互式界面的Python库。它使得在Py

    2024年04月26日
    浏览(43)
  • 使用Gradio搭建Stable Diffusion模型生成图像:简单快捷的图像生成体验

    目录 0 开发环境 1 介绍 1.1 Gradio简介 1.2 Stable Diffusion模型简介 2 使用Gradio搭建基本界面 2.1 安装依赖库 2.2 加载预训练模型 2.3 解析返回的数据 2.4 构建图像字幕应用程序 3 实现Stable Diffusion图像生成 3.1 Stable Diffusion模型解析 3.2 将SD模型集成到Gradio应用中 3.2.1 本地加载 3.2.1.1 安

    2024年02月13日
    浏览(46)
  • JUnit 使用详解,让你的项目健壮起来

    JUnit 是 Java 中最为流行的测试框架之一,用于对单元测试进行自动化测试。本文将全面介绍 JUnit 的相关概念和使用方式,并提供多种类型的代码示例。 1.1 JUnit 概述 JUnit 是一个基于 Java 语言的测试框架,最初是由 Kent Beck 和 Erich Gamma 开发的。JUnit 提供了一系列的 API ,可以帮

    2024年02月07日
    浏览(31)
  • Gradio库中的Model3D模块:实时上传和展示3D模型

    ❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈 博主原文链接:https://www.yourmetaverse.cn/nlp/409/ (封面图由文心一格生成)

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包