Gradio学习笔记记录
- 安装指令:pip install gradio
- 方法介绍
- Interface=》用于构建一些简单的页面,可以直接用这个指令搞定
- 形式=》接收三个参数分别为处理函数、输入、输出三部分,呈现一般左/上为输入,右或下为输出
- fn:将用户界面 (UI) 包裹起来的函数
- inputs:用于输入的 Gradio 组件,组件数应与函数中的参数数匹配
- outputs:用于输出的 Gradio 组件。组件数应与函数的返回值数匹配
- 案例
- 效果
- 可自定义小组件
- 上传文本小组件inputs=gr.Textbox(lines=5,placeholder='请输入',label='name')
- Textbox是定义多行文本框输入/输出,lines可以设置输入行数,placeholder设置输入内容,label设置左上角的标签
- 效果
- Textbox是定义多行文本框输入/输出,lines可以设置输入行数,placeholder设置输入内容,label设置左上角的标签
- 上传图像小组件inputs=gr.Image()
- Image()是接收文本的上传
- 代码
- 效果
- 上传音频小组件inputs=gr.Audio(sources=['microphone'],type='filepath')
- sources代表文件上传形式,可以选microphone录制,或者upload上传
- type为接收音频文件的保存的路径filepath,或者是numpy数组
- 单选框输入组建gr.Radio(['mali','xiaoming'])
- 内一个类别放置多个元素,作为每个选项
- 效果
- 滑动条选择数值Slider
- 单选框输入组建Checkbox
- 上传文本小组件inputs=gr.Textbox(lines=5,placeholder='请输入',label='name')
- 缺陷=》输出输入都有固定位置,不能随便增加多个组建进行多输入
- 如何实现一个多输入?=》将input变成列表
- eg:inputs=[gr.Audio(sources=['microphone','upload'],type='filepath'),gr.Radio(['mali','xiaoming'])]
- 其它
- 形式=》接收三个参数分别为处理函数、输入、输出三部分,呈现一般左/上为输入,右或下为输出
- launch=》主要功能是启动一个本地服务器,使得用户可以在Web浏览器中查看和交互Gradio应用程序
- 提供多种部署方式,包括本地部署、通过HuggingFace托管、FastAPI挂载以及Gradio-lite浏览器集成
- 常用参数
- queue=》允许用户设置界面的并发请求处理限制,对于控制应用程序在高负载情况下的性能非常有用
- gradio.Interface.queue(···)
- 通过queue方法,用户可以指定在任何给定时间可以处理的请求数量
- ChatInterface=》 用于创建聊天机器人UI 的高级抽象,允许通过几行代码围绕聊天机器人模型创建基于 Web 的演示
- 只需要一个参数:fn,它采用一个函数,根据用户输入和聊天历史记录来控制聊天机器人的响应,其他参数可用于控制演示的外观和行为
- 参数介绍
- TabbedInterface=》允许开发者创建带有多个标签页的界面
- 每个标签页可以包含不同的输入和输出组件,使得用户可以在不同的标签页中切换,查看和操作不同的内容
- 初始化参数
- Blocks =》可让组件布局更加灵活,在不适用Blocks的情况下,组件的布局是默认的垂直布局,通过gr.Row , gr.Column等控制组件的布局
- 提供了更大的灵活性和控制,还提供了将相关演示组合在一起的方法,例如使用选项卡进行组件的布局、 触发函数执行的事件、 数据流(例如,输入可以触发输出,从而触发下一级输出)
- 布局
- 行布局(Row):用于水平排列组件;
- 列布局(Column):用于垂直排列组件;
- 标签页(Tab):允许你将界面分割成多个标签页,每个标签页包含独立的组件和布局;
- 案例
- with gr.Blocks() as demo:作为启动程序,以demo启动
- gr.Tab(label='txt.img')是作为标签页,同级多个那就是指定多个标签
- 看整体布局,先水平还是先垂直,然后依次摆放
- 再同级别下那就代表一个格子里面进行多个垂直/水平布局
- gr.Row():水平布局
- gr.Column():垂直布局
- scale=x参数指定布局比例
- 有的组建是有宽度限制的,因此这时候可以指定参数进行调整
- min_width=x可以指定最小宽度
- variant='primary'参数指定按钮为橘黄色
- 可以使用css美化
- with gr.Group():设置组
- gr.Accordion():伸缩和展开
- Interface=》用于构建一些简单的页面,可以直接用这个指令搞定
- 热加载
- 构建 Gradio 演示时,尤其是在 Blocks 之外,可能会发现不断重新运行代码以测试更改很麻烦
- 为了更快、更方便地编写代码,当在 Python IDE(如 VS Code、Sublime Text、PyCharm 等)中进行开发或通常从终端运行 Python 代码时,可以更轻松地立即“重新加载” Gradio 应用程序。我们还开发了一个类似的“魔术命令”,如果您使用 Jupyter Notebooks(或任何类似的环境,如 Colab),它可以更快地重新运行单元格。
- 所谓热加载就是web页面实时显示你的修改,而不是一遍一遍的去运行python xxx.py;
- 怎么做呢?=》只需要改成gradio xxx.py #例如刚才我们的app.py 则运行gradio app.py
- 常用输入组件
- 音频:gr.Audio(sources=["microphone", 'upload'], type="numpy", label="Audio File"),
- 选项:gr.Checkbox(label="Checkbox"),
- 颜色:gr.ColorPicker(label="Color Picker"),
- 表格:gr.Dataframe(label="Dataframe"),
- 下拉选项:gr.Dropdown(['1','2','3'],label="Dropdown"),
- 单选:gr.Radio(['1','2','3'],label="Radio"),
- 文件:gr.File(label="File",type="binary"),
- 图像:gr.Image(sources=["webcam",'upload'], label="Image"),
- 滑动条:gr.Slider(minimum=0,maximum=10,label="Slider",step=2),
- 文本:gr.Textbox(label="Textbox",lines=3,max_lines=5,placeholder="placeholder"),
- 大文本:gr.TextArea(label="Textbox",lines=3,max_lines=5,placeholder="placeholder"),
- 视频:gr.Video(sources=["webcam",'upload'], label="Video"),
- 复选框:gr.Checkboxgroup(['1','2,3'],label="Checkboxgroup"),
- 案例呈现
- 常用输出组件
- 文本
- 图像
- 音频
- 柱状图
- Gallery=》画廊
- 绘图
- Json
- html
- 结合深度学习使用案例
- 图像分类
- 图像分割
- 目标检测
- 启动功能
- button.click(fn,inputs=输入组件,outputs=输出组件)
- 图像分类
相关文章:
Gradio学习笔记记录
安装指令:pip install gradio方法介绍 Interface》用于构建一些简单的页面,可以直接用这个指令搞定 形式》接收三个参数分别为处理函数、输入、输出三部分,呈现一般左/上为输入,右或下为输出 fn:将用户界面 ࿰…...
Node.js的下载与安装(支持各种新旧版本)
目录 1、node官网 2、node软件下载 3、软件安装(完整版) 1、node官网 Node.js — Download Node.jshttps://nodejs.org/en/download/package-manager 2、node软件下载 按照下图进行选择node版本(真心推荐16/18,而是尽量是LTS…...
数据库和缓存的数据一致性 -20241124
问题描述 一致性 缓存中有数据,缓存的数据值数据库中的值缓存中本没有数据,数据库中的值最新值(有请求查询数据库时,会将数据写入缓存,则变为上面的“一致”状态) “数据不一致”: 缓存的数据值…...
【计算机网络】多路转接之select
系统提供select()来实现多路转接 IO 等 拷贝 -> select()只负责等待,可以一次等待多个fd select()本身没有数据拷贝的能力,拷贝要read()/write()来完成 一、select的使用 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exc…...
Linux命令思维导图
看到一个很不错的Linux命令思维导图,用机器翻译了一下,建议收藏备用。 附上英文版:...
自然语言处理(词嵌入和词向量的使用)
一、实验目的 1.了解词嵌入和词向量的基本概念及其在自然语言处理中的应用。 2.掌握使用One-Hot编码和Word2Vec模型构建词向量的方法。 3.掌握Doc2Vec模型构建文档向量的方法以及如何计算文档向量之间的相似度。 二、实验内容 (1)使用One-Hot编码构…...
量子感知机
神经网络类似于人类大脑,是模拟生物神经网络进行信息处理的一种数学模型。它能解决分类、回归等问题,是机器学习的重要组成部分。量子神经网络是将量子理论与神经网络相结合而产生的一种新型计算模式。1995年美国路易斯安那州立大学KAK教授首次提出了量子…...
[HarmonyOS] 解决HMRouter路由地址无法抽取的问题
解决HMRouter路由地址无法抽取的问题 背景 最近开始学习HarmonyOS开发,搭建项目的时候采用了 HMRouter 路由框架,在项目里使用到路由跳转,官方链接在这: https://gitee.com/hadss/hmrouter/blob/master/HMRouterLibrary/README…...
七天掌握SQL--->第四天:事务处理与并发控制
# 7天掌握SQL - 第四天:事务处理与并发控制 ## 目标 - 学习事务处理的基本概念,如ACID特性。 - 掌握并发控制的方法,如锁机制、事务隔离级别等。 - 通过实际案例练习事务处理和并发控制。 ## 1. 事务处理的基本概念 事务处理是数据库管理系…...
Docker学习笔记整理
这周不知道写点啥内容做个分享,但还是秉持学会分享的精神,粗略放一些Docker相关的问题和解答吧,后面有机会再补补再深挖深挖o(>﹏<)o 1. 容器VS虚拟机 虚拟机是一种带环境安装的解决方案(资源完全隔离),有以下缺…...
PIMPL模式和D指针
一、PIMPL模式概念: Pimpl(pointer to implementation, 指向实现的指针)是一种用来对“类的接口与实现”进行解耦合的方法。就是将真正的实现细节的Implementor从类定义的头文件中分离出去,公有类通过一个私有指针指向隐藏的实现类…...
Linux入门系列--文件与目录
一、介绍 在Linux中,有着一句话,叫做:一切皆文件。也就是任何东西都是以文件的形式存储的。 目录结构 bin:全程binary,含义是二进制。该目录中存储的都是一些二进制文件。我们学过C/C,其实也都知道机器能…...
论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)
一.基本信息 论文名称:Intrusion detection systems using longshort‑term memory (LSTM) 中文翻译:基于长短期记忆(LSTM)的入侵检测系统 DOI:10.1186/s40537-021-00448-4 作者:FatimaEzzahra Laghrissi1* , Samira Douzi2*, Kha…...
平面点排序(结构体专题)
(1) 题目描述 平面上有n个点,坐标均为整数。请按与坐标原点(0,0)距离的远近将所有点排序输出。可以自己写排序函数,也可以用qsort库函数排序。 输入描述 输入有两行,第一行是整数n(1<n<10)ÿ…...
QT 实现仿制 网络调试器(未实现连接唯一性) QT5.12.3环境 C++实现
网络调试助手: 提前准备:在编写代码前,要在.pro工程文件中,添加network模块。 服务端: 代码: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QtWidgets> #inclu…...
搜索引擎中广泛使用的文档排序算法——BM25(Best Matching 25)
在搜索场景中,BM25能计算每个文档与查询的匹配度,从中找出最相关的文档,并按相关性高低排序展示。 要理解BM25,需要掌握以下几个关键概念: 1. 词频(Term Frequency, TF):某关键词在文…...
文件上传需要考虑的安全性问题及解决方案
恶意文件上传:攻击者可能上传包含恶意代码的文件,如病毒、木马等,这些文件被服务器执行后,可能完全控制服务器或破坏服务器安全。为避免这种情况,应实施严格的文件验证策略,只允许特定的安全文件类型上传&a…...
论文笔记:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
1. 挑战/问题(Challenges/Issues): 这篇论文探讨了大型预训练语言模型在处理知识密集型自然语言处理(NLP)任务时面临的挑战。尽管这些模型在参数中存储了大量事实知识,并在微调后能够在下游NLP任务中取得很…...
Web 网络安全
一. 浏览器系统安全方面,使用多进程方案,而js主线程运行在渲染进程中,渲染进程时运行在沙箱中的,没有对本地OS文件的直接读写权限,所以需要通过IPC与浏览器主线程通信,才可以获取cookie等信息,这…...
Android Gradle 插件和 Android Studio 兼容性
Android Gradle 插件和 Android Studio 兼容性 Android Studio 版本所需的 AGP 版本Ladybug 2024.2.13.2-8.7Ladybug 2024.2.13.2-8.7Koala 2024.1.12024.2.1Jellyfish 2023.3.12024.2.1Iguana 2023.2.13.2-8.3Hedgehog 2023.1.13.2-8.2Giraffe 2022.3.13.2-8.1Flamingo 2022.…...
C++设计模式-策略模式-StrategyMethod
动机(Motivation) 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。 如何在运…...
【H2O2|全栈】JS案例章节(四)——使用原型的JS工厂模式
目录 前言 开篇语 准备工作 需求 工厂模式 概念 优点 添加元素的新方法 分析案例 HTML代码 JS实现 结束语 前言 开篇语 本系列为短章节,单独讲述部分特殊重点案例,本期讲述使用原型来实现JS的工厂模式。 与HTML和CSS相比,JS加…...
.NET9 - 新功能体验(三)
书接上回,我们继续来聊聊.NET9和C#13带来的新变化。 01、Linq新方法 CountBy 和 AggregateBy 引入了新的方法 CountBy 和 AggregateBy后,可以在不经过GroupBy 分配中间分组的情况下快速完成复杂的聚合操作,同时方法命名也非常直观࿰…...
论文概览 |《Journal of Urban Technology》2024 Vol.31 Issue.2
本次给大家整理的是《Journal of Urban Technology》杂志2024年第31卷第2期的论文的题目和摘要,一共包括6篇SCI论文! 论文1 Aerial Video Surveillance in a Megacity: A Case Study in Santiago, Chile 大城市中的空中视频监控:智利圣地亚哥…...
Makefile 之 自动化变量
作用范围只在这条规则以及连带规则中,所以其值也只在作用范围内有效。而不会影响规则链以外的全局变量的值。 "$" 表示目标的集合,就像一个数组,"$"依次取出目标,并执于命令。 "$<"和"$&qu…...
【C语言】const修饰符在指针变量中的作用详解
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 💯前言💯指针与解引用:基础概念1. 指针变量2. 解引用操作 💯const 修饰指针变量的三种主要情况1. 情况一:int * const p (指针本…...
阿里云ECS服务器监控报警配置
背景:服务器偶尔会异常,比如CPU过载,磁盘满,影响使用,人工盯服务器不现实 采用方法:阿里云监控告警功能 步骤: 第一步:登录阿里云服务器 https://account.aliyun.com/login/logi…...
高性能linux服务器运维实战小结 性能调优工具
性能指标 进程指标 进程关系 父进程创子进程时,调fork系统调用。调用时,父给子获取一个进程描述符,并设置新的pid,同事复制父进程的进程描述符给子进程,此时不会复制父进程地址空间,而是父子用相同地址空…...
初识Linux—— 基本指令(下)
前言: 本篇继续来学习Linux的基础指令,继续加油!!! 本篇文章对于图片即内容详解,已同步到本人gitee:Linux学习: Linux学习与知识讲解 Linux指令 1、查看文件内容的指令 cat cat 查看文件…...
【Linux】线程的互斥和同步
【Linux】线程的互斥和同步 线程间的互斥 临界资源:多线程执行共享的资源就叫做临界资源临界区:每个线程内部,访问临界资源的代码,就叫做临界区互斥:任何时刻,互斥保证有且只有一个执行流进入临界区&#…...
详解Oracle表的类型(二)
1.引言: Oracle数据库提供了多种表类型,以满足不同的数据存储和管理需求。本博文将对Oracle分区表及使用场景进行详细介绍。 2. 分区表 分区表是Oracle数据库中一种重要的表类型,它通过将表数据分割成多个逻辑部分来提高查询性能、管理灵活…...
VSCode 下载 安装
VSCode【下载】【安装】【汉化】【配置C环境(超快)】(Windows环境)-CSDN博客 Download Visual Studio Code - Mac, Linux, Windowshttps://code.visualstudio.com/Downloadhttps://code.visualstudio.com/Download 注意࿰…...
java中的最小堆
概述 最小堆minHeap指的级别n的每个节点存储的值小于或等于级别n1的子节点的值。因此,根就存储了其中最小的值。 注意节点的值与其他兄弟节点的值之间没有必然关系。 java中最小堆的表示 利用数组 常用的是利用数组minHeap[]表示,将最小堆的节点或值…...
ES实用面试题
一、es是什么,为什么要用它? ES通常是Elasticsearch的简称,它是一个基于Lucene构建的开源搜索引擎。Elasticsearch以其分布式、高扩展性和实时数据分析能力而闻名,广泛用于全文搜索、日志分析、实时监控等多种场景。 基本特点&am…...
数据结构 (7)线性表的链式存储
前言 线性表是一种基本的数据结构,用于存储线性序列的元素。线性表的存储方式主要有两种:顺序存储和链式存储。链式存储,即链表,是一种非常灵活和高效的存储方式,特别适用于需要频繁插入和删除操作的场景。 链表的基本…...
数据结构:链表进阶
链表进阶 1. ArrayList的缺陷2. 链表2.1 链表的概念及结构2.2 链表的实现 3.链表面试题4.LinkedList的使用5.1 什么是LinkedList4.2 LinkedList的使用 5. ArrayList和LinkedList的区别 1. ArrayList的缺陷 通过源码知道,ArrayList底层使用数组来存储元素࿱…...
Can UDS 学习记录
目录 Can UDS 学习记录10 03 响应否定响应22和24 的说明27服务肯定响应抑制位 Can UDS 学习记录 10 03 响应 否定响应22和24 的说明 0x22条件不正确,就是不满足服务端的运行条件0x24请求顺序错误;停止例程的请求必须在开始例程后面才可以,请…...
C 语言实现的优先级队列
C 语言实现的优先级队列 priorityqueue.h /******************************************************************************* * Copyright © 2024-2025 Light Zhang <mapawarehotmail.com>, MapAware, Inc. * * ALL RIGHTS RESERVED. …...
卷积神经网络(CNN)中的批量归一化层(Batch Normalization Layer)
批量归一化层(BatchNorm层),或简称为批量归一化(Batch Normalization),是深度学习中常用的一种技术,旨在加速神经网络的训练并提高收敛速度。 一、基本思想 为了让数据在训练过程中保持同一分布…...
HDR视频技术之四:HDR 主要标准
HDR 是 UHD 技术中最重要维度之一,带来新的视觉呈现体验。 HDR 技术涉及到采集、加工、传输、呈现等视频流程上的多个环节,需要定义出互联互通的产业标准,以支持规模化应用和部署。本文整理当前 HDR 应用中的一些代表性的国际标准。 1 HDR 发…...
下一个阶段的生产工具更换:
开源竞争: 当你无法彻底掌握技术的时候,就开源这个技术,让更多的人了解这个技术,形成更多的技术依赖,你会说,这不就是在砸罐子吗?一个行业里面总会有人砸罐子的,你不如先砸罐子&…...
性能优化--CPU微架构
一 指令集架构 Intel X86, ARM v8, RISC-V 是当今广泛使用的指令架构的实例。 大多数现代架构可以归类为基于通用寄存器的加载和存储型架构,在这种架构下,操作数倍明确指定,只能使用夹在和存储指令访问内存。除提供基本的功能之外,…...
3.3_1 差错控制(检错编码)
目录 1、差错来源 全局性 局部性 2、数据链路的差错控制 编辑奇偶校验码 CRC循环冗余码 接收端检错过程 1、差错来源 概括来说,传输中的差错都是由于噪声引起的。 全局性 由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的…...
2024年wordpress、d-link等相关的多个cve漏洞poc
⚠️ 漏洞 ✅ CVE-2024-10914 在D-Link DNS-320、DNS-320LW、DNS-325和DNS-340L中发现的漏洞,版本直到20241028 GET /cgi-bin/account_mgr.cgi?cmdcgi_user_add&name%27;id;%27 HTTP/1.1✅ CVE-2024-11305 在Altenergy Power Control Software中发现的关键…...
影视后期学习Ⅰ~
1.DV是光盘 磁带 2.序列就是我们要制作的一个视频。 打开界面显示: 一号面板放的是素材,二号面板叫源监视器面板(它的名字需要记住)在一号面板点击文件之后,进入二号面板,在二号面板预览没问题后…...
如何安全删除 Linux 用户帐户和主目录 ?
Linux 以其健壮性和灵活性而闻名,是全球服务器和桌面的首选。管理用户帐户是系统管理的一个基本方面,包括创建、修改和删除用户帐户及其相关数据。本指南全面概述了如何在 Linux 中安全地删除用户帐户及其主目录,以确保系统的安全性和完整性。…...
【软件测试】设计测试用例的万能公式
文章目录 概念设计测试用例的万能公式常规思考逆向思维发散性思维万能公式水杯测试弱网测试如何进行弱网测试 安装卸载测试 概念 什么是测试用例? 测试⽤例(Test Case)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包…...
【MySQL】字符集与排序规则
1. 字符集 1.1 一些重要的字符集 1.1.1 ASCII 共收录128个字符,包括空格、标点符号、数字、大小写字母和一些不可见字符。由于总共才128个字符,所以可以使用1个字节来进行编码 1.1.2 ISO-8859-1 共收录 256 个字符,是在 ASCII 字符集的基…...
局域网与广域网:探索网络的规模与奥秘(3/10)
一、局域网的特点 局域网覆盖有限的地理范围,通常在几公里以内,具有实现资源共享、服务共享、维护简单、组网开销低等特点,主要传输介质为双绞线,并使用少量的光纤。 局域网一般是方圆几千米以内的区域网络,其特点丰富…...
C++从零到满绩——类和对象(中)
目录 1>>前言 2>>构造函数(我称之为初始化函数) 3>>析构函数(我称之为销毁函数) 4>>拷贝构造函数(我称之为复制函数) 5>>运算符重载 5.2>>赋值运算符重载 编辑…...