python系列&deep_study系列:Gradio:轻松实现AI算法可视化部署 python可视化自动化运维

python系列&deep_study系列:Gradio:轻松实现AI算法可视化部署 Gradio:轻松实现AI算法可视化部署 Gradio:轻松实现AI算法可视化部署快速开始0.安装Gradio1.Hello

Gradio:轻松实现AI算法可视化部署

Gradio:轻松实现AI算法并快速上手。 0. 安装Gradio1。 Hello World2. 图像处理:创建简单的RGB 到灰度的转换。 3. 创建外部访问链接。图像分类pytorch+resnet185。附加提示5.1 设置标题和描述5.2 设置IP 和端口号

六、总结

详细了解为什么使用Gradio 生成的布局可能会很混乱。 torchrun –nproc_per_node 2 web.py 这与启动两个web.py 相同。在这种情况下,我不知道如何解析渐变7860 的默认端口号。如何更改默认端口?自定义有点困难,但我是否仍然应该使用一组前端和后端以避免将来需要自定义?然而,语言模型聊天需要服务器推送。我怎样才能解决这个问题? 大哭 这也有很多问题,包括SSL版本冲突。事实上,许多库可以使用,但实际上无法在生产中上线。建议打包图片。感觉就像一个玩具。我选择了dash,它比flask更简单,但更灵活。为什么我在提交右侧的输出框中看到错误?

Gradio:轻松实现AI算法可视化部署

2024.5.1:我们精心更新了这篇文章,让您了解我们最新的开源人工智能训练跟踪工具SwanLab。训练模型非常容易使用。

如何快速与他人分享和体验AI算法一直是一个挑战。

首先,大多数人在本地运行他们的代码并让其他人使用该模型。此前,有以下三种选择:

在github 上

将代码打包或封装在Docker中后,使用QQ/百度云/U盘进行传输。

学习前后端知识,创建前端界面,购买域名,使用flask等微服务框架快速部署,并根据需要结合内网渗透。

这些解决方案的问题在于,前两种要求对方能够(并且愿意)编程和配置环境,而后者则要求对方是算法工程师。升级到全栈,学习前端和后端开发,学习成本太高。

总之,不适合场景,不适合自己的需求,还费时费力!

那么有没有更好的解决办法呢!今天我想介绍Gradio,一个Python 开源库。

Gradio 是HuggingFace 的一个开源项目,在GitHub 上拥有超过28,000 颗星。

最近,两位ML工程师独立开发的项目Gradio没有盈利,濒临失败。 HuggingFace 的创始人随后资助并收购了它,才有了今天的成果。它成为AI领域最好的开源demo,也是催生StableDiffusion的关键开源项目之一。

WebUI、LLaMa Factory、GPT Academic 等众多知名项目。

—— 我真的很喜欢这个故事。我真的很高兴找到了伯乐,一个小而美丽的热爱开源的项目。

使用Gradio,您只需在原始代码中添加几行代码,就可以自动生成交互式网页并支持各种输入和输出格式,例如图像分类图标签和超分辨率图。

它还支持生成可从外部网络访问的链接,让您的朋友和同事立即体验您的算法。

总结来说,它的优点是:

自动生成页面并使其具有交互性

只需更改几行代码即可实现此目的

支持多种输入输出的定制

支持生成外部可访问的共享链接

快速开始

0.安装Gradio

您需要先安装Python,然后使用pip安装Gradio

pip 安装渐变

1.Hello World

我们先从开胃菜开始吧。输入您的文本并在其前面添加“Hello World”。

导入Gladio ASGR

def print_text(文本):

\’Hello World,\’ + 返回文本

接口=gr.Interface(fn=print_text, 输入=\’文本\’, 输出=\’文本\’)

接口.launch()

Grario的核心是gr.Interface,用于构建可视化界面。参数为:

fn:插入用于处理的函数

输入:描述输入类型。输入是文本,因此它将是“文本”。

输出:描述输出类型。输出也是文本,所以也是“文本”

最后,使用interface.lauch()发布页面,你就拥有了一个本地静态交互页面。

运行此py 脚本并在浏览器中输入http://127.0.0.1:7860/来检查页面。

2.图像处理:写个简单的RGB转灰度

导入Gladio ASGR

导入CV2

def to_black(图像):

输出=cv2.cvtColor(图像, cv2.COLOR_BGR2GRAY)

返回输出

接口=gr.Interface(fn=to_black, 输入=\’图像\’, 输出=\’图像\’)

接口.launch()

这里使用的是opencv。首先你需要pip install opencv-python。

同样的逻辑:

fn:插入用于处理的函数

输入:描述输入类型。这里的输入是图像,因此它将是“图像”。

输出:描述输出类型。这里的输出是图像,因此它将是“图像”。

运行代码。

只需上传您的图片,单击“提交”即可完成。

对于图像处理ML(机器学习)代码,定义一个图像输入模型,该模型推断一个返回图像的函数(逻辑和RGB 转换为灰度图像之间本质上没有区别)并将其放置在fn 中您所需要的就是就是这样!

3.增加案例example

您可以在页面底部添加测试示例供用户选择。

以[[Path 1], [Path 2],…] 格式输入gr.Interface 示例中的图像路径。

导入Gladio ASGR

导入CV2

def to_black(图像):

输出=cv2.cvtColor(图像, cv2.COLOR_BGR2GRAY)

返回输出

接口=gr.Interface(fn=to_black, 输入=\’图像\’, 输出=\’图像\’,

示例=[[\’test.png\’]])

接口.launch()

添加示例不仅可以使你的UI界面更加美观、逻辑更加完整,而且还有其他含义。

改善demo体验:比如我用文生图制作了一个demo,但是强迫用户去思考提示(提示词)的摩擦力非常大,而你提供的示例让用户更容易会能够更快的体验demo的效果。更轻松。

3.创建一个外部访问链接

创建外部访问链接非常容易。只要启动它(share=True),打印信息中就会显示外部访问链接。

接口.launch(share=True)

全天24 小时提供免费链接。如果你想长期使用它,你可以访问Huggingface并创建一个空间。 2核16G CPU演示是完全免费的,GPU演示是付费的。取决于配置和持续时间。

您还可以选择您当地的Gradio托管平台:ModelScope Magic Community、SwanHub – 创新AI开源社区

4.升个级:图像分类pytorch+resnet18

前端需要安装torch 和torchvision。此演示推理也必须在CPU 上运行。

pip 安装torch torchvision

# 2024.5.1 代码更新

导入Gladio ASGR

进口手电筒

从torchvision 导入转换

导入请求

从PIL导入图像

模型=torch.hub.load(\’pytorch/vision:v0.6.0\’, \’resnet18\’, pretrained=True).eval()

# 下载ImageNet 的人类可读标签。

响应=request.get(\’https://git.io/JJkYN\’)

标签=response.text.split(\’\\n\’)

def 预测(inp):

inp=Image.fromarray(inp.astype(\’uint8\’), \’RGB\’)

inp=inp. 调整大小((224, 224))

inp=transform.ToTensor()(inp).unsqueeze(0)

使用torch.no_grad():

预测=torch.nn.function.softmax(model(inp)[0], dim=0)

返回{labels[i]: float(prediction[i]) for i in range(1000)}

输入=gr.Image()

输出=gr.Label(num_top_classes=3)

gr.Interface(fn=预测, 输入=输入, 输出=输出).launch()

图像分类任务是机器学习中的经典任务。上面,我在输出中设置了gr.Label(num_top_classes=3) 。这是Gradio 中的一个自定义函数,用于显示图像分类的类标签。

通过更改输入和输出的组合,您始终可以找到适合您的算法的东西。

如果你想要更多的自由组合,可以使用gr.Block。文档:渐变块文档

5. 更多技巧

5.1 设置标题和描述

gr.Interface(. title=\’Hello_World\’, description=\’入门级演示\’)

5.2 设置ip和端口号

gr.launch(服务器名称=\’0.0.0.0\’,服务器端口=8080)

server_name:设置Web 服务的IP 地址。如果您将Web服务部署到自己的服务器上,我们建议将其设置为“0.0.0.0\’\’以方便外部访问。

server_port:设置Web服务端口号。

6. 总结

我认为Gradio最大的价值在于每个人都可以即时分享和体验自己项目的成果:开源成果共享、项目报告、同行交流,甚至快速产品创建。

还在担心如何分享您的AI 算法吗?为什么不尝试Gradio?

同类产品:StreamLit

了解更多

Gradio官网:https://www.gradio.app/

开源平台SwanHub在线GradioDemo体验:SwanHub AI

问题

为什么我用Gradio生成的排版都是乱的。

Gradio 依赖于Google 的一些CSS 和字体,无法离线运行。检查网络环境

torchrun –nproc_per_node 2 web.py 这样就相当于启动了两个web.py,那gradio就有问题了,不知怎么解决

从你的代码来看,是否可以仅使用local_rank 0 启动梯度?

gradio 默认的端口号7860,如何修改默认的端口呀

在启动方法中设置参数server_port=9999。

定制化就有点难了,为了防止以后有定制化的需求 是不是还得用前后端那套。。但是语言模型那种聊天的,还要服务器推送 怎么整呀yeild ws。。大哭

与chatgpt类似,每次发送不完整的数据包都会进行一次心跳访问,最终数据完成。

这东西也有很多问题比如ssl版本冲突,其实后面也是导入了一大堆的lib,可以用,但不能太依赖,真正上线生产环境,还是要打包镜像比较好。

感觉有点玩具了呢。我选了dash,比flask简单,但貌似更灵活

为什么点submit右边输出框显示error

答:您应该检查错误报告。您可能已启用技术来访问互联网。

问:即使我关闭了该技术,该错误似乎仍会发生。

问:但是我不知道错误信息在哪里

问:我注意到有一个show_error 参数。让我们一次尝试一个。

问:即使将show_error 设置为True,我仍然没有收到错误消息

答:在github.com/gradio-app/g 上发现以下消息。

我有同样的错误,但我从2.2.1 降级了pydantic 版本。

当我将其更新到1.10.7 时,它工作正常,但我显着更改了gradio 的版本。

这不是版本问题,在grario==3.34.0 下工作得很好。

在我个人的测试中,它保持渐变版本3.34.0,只是将环境中pydantic 包的版本降低到1.10.7。

问:是的!

答:当我打开快速入门时,它显示“Precession: Gradio 需要Python 3.8 或更高版本”。只需切换到3.8环境并重新安装即可。

林泽

Gradio:AI算法的轻松可视化部署

#python系列以上关于deep_study系列: Gradio:轻松可视化部署AI算法相关内容来源网络,仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91603.html

(0)
CSDN的头像CSDN
上一篇 2024年6月22日
下一篇 2024年6月22日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注