news 2026/7/23 10:17:39

Gradio.Net 开发指南 -- Flag功能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Gradio.Net 开发指南 -- Flag功能

目录

Flag功能

基本使用

自定义标记目录

标记选项

图像示例

标记模式

总结



上一篇

Gradio.Net (https://github.com/feiyun0112/Gradio.Net)是一个开源的 .NET 库,它是 Gradio 的 .NET 移植版本,允许你为机器学习模型、API 或任何 C# 函数快速构建演示或 Web 应用程序,无需任何 JavaScript、CSS 或 Web 开发经验!

Flag功能

你可能已经注意到,在Gradio.Net界面中默认会显示一个"Flag"(标记)按钮。当使用你的演示的用户看到有趣的输出,例如错误或意外的模型行为时,他们可以标记这个输入供你查看。在通过flaggingDir参数指定的目录中,会生成一个CSV文件来记录标记的输入。如果界面涉及文件数据,例如Image和Audio组件,还会创建文件夹来存储这些标记的数据。

基本使用

让我们来看一个简单的计算器示例,展示标记功能的基本使用:

using Gradio.Net; decimal Calculator(decimal num1, string operation, decimal num2) { if (operation == "加") { return num1 + num2; } else if (operation == "减") { return num1 - num2; } else if (operation == "乘") { return num1 * num2; } else if (operation == "除") { if (num2 == 0) { throw new Exception("不能除以零!"); } return num1 / num2; } return 0; } var demo = gr.Interface( fn: Calculator, inputs: new object[] { "number", gr.Radio(choices: new[] { "加", "减", "乘", "除" }), "number" }, outputs: "number", title: "简易计算器", description: "这是一个示例计算器,展示标记功能。", flaggingMode: "manual" // 设置为手动标记模式 ); await demo.Launch();

运行这个示例后,当你在界面上点击"Flag"按钮时,Gradio.Net会在当前目录下创建一个flagged文件夹,并在其中生成一个logs.csv文件,记录标记的输入和输出。

自定义标记目录

你可以通过flaggingDir参数自定义标记数据的存储目录:

var demo = gr.Interface( fn: Calculator, inputs: new object[] { "number", gr.Radio(choices: new[] { "加", "减", "乘", "除" }), "number" }, outputs: "number", title: "简易计算器", description: "这是一个示例计算器,展示标记功能。", flaggingMode: "manual", flaggingDir: "my_flagged_data" // 自定义标记目录 );

这样,标记的数据会存储在my_flagged_data文件夹中,而不是默认的flagged文件夹。

标记选项

如果你希望用户在标记时提供原因,你可以通过flaggingOptions参数传递一个字符串列表。用户在标记时必须选择其中一个字符串,这将作为额外的列保存到CSV文件中。

var demo = gr.Interface( fn: Calculator, inputs: new object[] { "number", gr.Radio(choices: new[] { "加", "减", "乘", "除" }), "number" }, outputs: "number", title: "简易计算器", description: "这是一个示例计算器,展示标记功能。", flaggingMode: "manual", flaggingOptions: new List<string> { "结果错误", "输入异常", "其他原因" } // 标记选项 );

图像示例

对于涉及图像等文件类型的界面,Gradio.Net会自动创建文件夹来存储标记的图像文件。让我们来看一个图像示例:

using Gradio.Net; using SixLabors.ImageSharp; using SixLabors.ImageSharp.PixelFormats; string Sepia(string inputImg) { // 加载图像 using var image = SixLabors.ImageSharp.Image.Load<Rgb24>(inputImg); // 应用 sepia 滤镜 for (int y = 0; y < image.Height; y++) { for (int x = 0; x < image.Width; x++) { var pixel = image[x, y]; // Sepia 滤镜矩阵 int tr = (int)(0.393 * pixel.R + 0.769 * pixel.G + 0.189 * pixel.B); int tg = (int)(0.349 * pixel.R + 0.686 * pixel.G + 0.168 * pixel.B); int tb = (int)(0.272 * pixel.R + 0.534 * pixel.G + 0.131 * pixel.B); // 确保值在有效范围内 pixel.R = (byte)Math.Min(255, tr); pixel.G = (byte)Math.Min(255, tg); pixel.B = (byte)Math.Min(255, tb); image[x, y] = pixel; } } // 保存处理后的图像 string outputPath = Path.Combine(Path.GetTempPath(), $"sepia_{Guid.NewGuid()}.png"); image.Save(outputPath); return outputPath; } var demo = gr.Interface( fn: Sepia, inputs: gr.Image(), outputs: "image", title: "Sepia 滤镜演示", description: "上传图像应用 Sepia 滤镜,并可标记结果。", flaggingMode: "manual" ); await demo.Launch();

在这个示例中,当用户标记一个结果时,Gradio.Net会:

  1. 在‎flagged目录下创建一个‎logs.csv文件

  2. 创建‎inputImg文件夹存储输入图像

  3. 创建‎output文件夹存储输出图像

  4. 在CSV文件中记录图像路径

标记模式

Gradio.Net支持三种标记模式,通过flaggingMode参数设置:

  • "manual":手动标记模式,用户需要点击"Flag"按钮来标记输入

  • "auto":自动标记模式,每次提交都会自动标记

  • "never":禁用标记功能,不显示"Flag"按钮

总结

标记功能是Gradio.Net中一个非常有用的特性,它允许你收集和分析用户反馈,以便改进你的模型或应用。你可以自定义标记目录、添加标记选项,并根据需要选择不同的标记模式。

引入地址

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/23 10:16:41

Unity编辑器定制开发:提升游戏开发效率的关键技术

1. 为什么需要定制Unity编辑器 作为Unity开发者&#xff0c;我们每天80%的时间都在与编辑器打交道。标准编辑器虽然功能完善&#xff0c;但面对特定项目需求时往往力不从心。上周我接手一个2D像素游戏项目时&#xff0c;美术团队抱怨每次导入精灵都要手动设置像素单位&#xff…

作者头像 李华
网站建设 2026/7/23 10:16:26

老规矩,还是先上个代码:

这个代码的逻辑非常简单&#xff0c;首先我们搞了一个线程池&#xff0c;然后起一个 for 循环往线程池里面仍了 5 个任务&#xff0c;这是核心逻辑。 对于这几个任务&#xff0c;我们的这个自定义线程池处理起来&#xff0c;不能说得心应手吧&#xff0c;至少也是手拿把掐。 其…

作者头像 李华
网站建设 2026/7/23 10:12:43

LM89远程温度传感器实战:从SMBus通信到PCB布局的完整指南

1. LM89远程温度传感器&#xff1a;从芯片手册到系统集成的实战指南在服务器主板、高性能计算卡或者任何对温度敏感的嵌入式系统里&#xff0c;你总能看到一个不起眼的8脚芯片&#xff0c;默默地监控着CPU或GPU的“体温”。它就是远程温度传感器&#xff0c;比如德州仪器&#…

作者头像 李华
网站建设 2026/7/23 10:12:32

毕业设计项目 基于深度学习的图像修复算法 DCGAN

文章目录0 简介1 图像修复2 生成对抗网络与图像修复2.1 生成对抗网络简介3 生成对抗网络在图像修复上的应用4 深度卷积对抗网络与图像修复4.1 深度卷积对抗网络简介4.2 深度卷积对抗网络与图像修复5 算法实现5.1 数据集5.2 基于人脸图片数据集的图像生成模型的构建5.3 实现效果…

作者头像 李华
网站建设 2026/7/23 10:06:06

搞懂 Maven:settings.xml 与 pom.xml 的关系与生效流程

搞懂 Maven&#xff1a;settings.xml 与 pom.xml 的关系与生效流程 写给被 Maven 配置绕晕的你。读完这篇&#xff0c;你会彻底明白 settings.xml 和 pom.xml 各自管什么、怎么联动&#xff0c;以及那个神秘的 mirror 到底在干嘛。 目录 一、两个文件,各管一摊二、settings.xm…

作者头像 李华