c#训练yolov5-yolo26
form1using Microsoft.VisualBasic.ApplicationServices; // VB应用程序服务本程序实际上没有使用可以删除 using System; // C#基础类 using System.Diagnostics; // Process进程类 using System.Windows.Forms; // WinForms界面 using System.Xml.Linq; // XML操作本程序没有使用可以删除 namespace YOLOTrainTool { public partial class Form1 : Form { // 保存启动的Python进程 Process process; // 窗体构造函数 public Form1() { // 初始化窗体控件 InitializeComponent(); } /// summary /// 点击开始训练 /// /summary private void btnStart_Click(object sender, EventArgs e) { // Python解释器路径 string pythonExe \\Python38\\python.exe; // train.py路径 string script txtScript.Text; // data.yaml路径 string data txtData.Text; // 训练轮数 string epochs txtEpochs.Text; // 组合命令参数 // 最终效果 // python train.py --data xxx.yaml --epochs 100 string args $\{script}\ --data \{data}\ --epochs {epochs}; // 创建启动信息对象 ProcessStartInfo psi new ProcessStartInfo(); // 要启动的程序 psi.FileName pythonExe; // 传递给python的参数 psi.Arguments args; // 不使用Windows Shell启动 psi.UseShellExecute false; // 重定向标准输出 psi.RedirectStandardOutput true; // 重定向错误输出 psi.RedirectStandardError true; // 不弹CMD窗口 psi.CreateNoWindow true; // 创建进程对象 process new Process(); // 设置启动参数 process.StartInfo psi; // Python正常输出事件 process.OutputDataReceived (s, ev) { // 判断是否有输出 if (ev.Data ! null) // 因为不是UI线程所以需要Invoke更新界面 Invoke(new Action(() txtLog.AppendText(ev.Data \r\n))); }; // Python错误输出事件 process.ErrorDataReceived (s, ev) { if (ev.Data ! null) // 红色输出可以自己改RichTextBox实现 Invoke(new Action(() txtLog.AppendText([ERR] ev.Data \r\n))); }; // 启动Python process.Start(); // 开始异步读取标准输出 process.BeginOutputReadLine(); // 开始异步读取错误输出 process.BeginErrorReadLine(); // 日志提示 txtLog.AppendText(训练启动...\r\n); } /// summary /// 点击停止训练 /// /summary private void btnStop_Click(object sender, EventArgs e) { // 判断进程是否存在并且还没退出 if (process ! null !process.HasExited) { // 强制结束Python process.Kill(); // 输出提示 txtLog.AppendText(训练停止\r\n); } } /// summary /// 选择train.py /// /summary private void btnSelectScript_Click(object sender, EventArgs e) { // 文件选择框 OpenFileDialog dlg new OpenFileDialog(); // 过滤Python文件 dlg.Filter Python Files|*.py; // 点击确定 if (dlg.ShowDialog() DialogResult.OK) // 保存路径 txtScript.Text dlg.FileName; } /// summary /// 选择data.yaml /// /summary private void btnSelectData_Click(object sender, EventArgs e) { // 文件选择框 OpenFileDialog dlg new OpenFileDialog(); // 过滤yaml dlg.Filter YAML Files|*.yaml; // 点击确定 if (dlg.ShowDialog() DialogResult.OK) // 保存路径 txtData.Text dlg.FileName; } /// summary /// 选择Python解释器 /// /summary private void btnSelectPython_Click(object sender, EventArgs e) { // 文件选择框 OpenFileDialog dlg new OpenFileDialog(); // 只显示python.exe dlg.Filter Python|python.exe; // 点击确定 if (dlg.ShowDialog() DialogResult.OK) // 保存Python路径 txtPython.Text dlg.FileName; } } }

相关新闻

Docker Swarm服务部署与镜像管理最佳实践

Docker Swarm服务部署与镜像管理最佳实践

1. Docker Swarm服务部署与镜像管理核心逻辑在容器编排领域,服务部署和镜像管理是两大支柱性功能。Docker Swarm通过声明式API将这两个核心功能紧密结合,形成了一套高效的工作流体系。当我们在Swarm集群中执行docker service create命令时,实…

2026/9/23 7:44:50 阅读更多 →
C++内存管理:new与栈对象的核心差异与选择策略

C++内存管理:new与栈对象的核心差异与选择策略

1. 从一道经典面试题说起: new 与栈对象的抉择 最近在带新人,发现很多刚接触C的朋友,甚至一些工作一两年的开发者,对 new 这个关键字的使用场景和背后的代价依然模糊不清。面试时也常遇到这样的问题:“说说在C里用…

2026/9/24 3:01:17 阅读更多 →
C++ istream深度解析:从状态管理到性能优化实战

C++ istream深度解析:从状态管理到性能优化实战

1. 项目概述:为什么需要深入理解istream?在C的世界里,输入输出(I/O)是程序与外界交互的基石。无论是从键盘读取用户指令,从文件加载配置数据,还是解析网络传输的字节流,都离不开I/O流…

2026/9/21 14:56:55 阅读更多 →

最新新闻

Sliver 网络侦察命令组实战:ifconfig 与 netstat 的架构、实现与使用详解

Sliver 网络侦察命令组实战:ifconfig 与 netstat 的架构、实现与使用详解

网络安全 【免费下载链接】sliver Adversary Emulation Framework 项目地址: https://gitcode.com/gh_mirrors/sl/sliver 点击查看 免费下载 导读 本篇技术指南以 Sliver 客户端 client/command/network 命令组为主线,深入解析其两个核心网络侦察命令 …

2026/9/24 3:02:17 阅读更多 →
多轨道二次编辑怎么用

多轨道二次编辑怎么用

多轨道二次编辑是剪映专业版针对初步剪辑完成的AI生成内容做精修的方法:你可以在已经排好的时间线上,只针对不满意的单个AI片段单独发起二次生成替换,保留其他轨道的内容和整体剪辑结构不变,不用重新调整整个成片的编排。这种方式…

2026/9/24 3:02:17 阅读更多 →
Kornia 迁移指南:BoxMotTracker 移除与基于 boxmot + RTDETRDetectorBuilder 的替代方案

Kornia 迁移指南:BoxMotTracker 移除与基于 boxmot + RTDETRDetectorBuilder 的替代方案

计算机视觉深度学习人工智能图像处理 【免费下载链接】kornia 🐍 空间人工智能的几何计算机视觉库 项目地址: https://gitcode.com/kornia/kornia 点击查看 免费下载 本篇技术指南聚焦 Kornia 开源仓库中的一项破坏性变更(Migration 004&…

2026/9/24 3:02:17 阅读更多 →
深入解析 wandb core 中的 Go JOSE v4:基于 RFC 7515/7516/7519 的 JWS、JWE 与 JWT 实现指南

深入解析 wandb core 中的 Go JOSE v4:基于 RFC 7515/7516/7519 的 JWS、JWE 与 JWT 实现指南

机器学习深度学习数据可视化可观测性 【免费下载链接】wandb The AI developer platform. Use Weights & Biases to train and fine-tune models, and manage models from experimentation to production. 项目地址: https://gitcode.com/gh_mirrors/wa/wandb 点…

2026/9/24 3:02:17 阅读更多 →
Orleans 生产环境部署与运维完全指南:集群规划、平台选型与故障恢复

Orleans 生产环境部署与运维完全指南:集群规划、平台选型与故障恢复

后端微服务 【免费下载链接】orleans Cloud Native application framework for .NET 项目地址: https://gitcode.com/gh_mirrors/or/orleans 点击查看 免费下载 导读 本文是 Orleans 生产部署与运维的完整操作指南。Orleans 的生产形态是一组通过 TCP 直连的 silo…

2026/9/24 3:02:17 阅读更多 →
视频掉帧怎么用AI补帧

视频掉帧怎么用AI补帧

遇到视频掉帧卡顿,首先要区分问题来源:是播放设备性能不足导致的预览卡顿,还是源视频本身帧率过低、运动画面存在跳帧或缺失。AI补帧解决的是源素材本身帧率不足导致的运动不流畅问题,无法修复播放设备或导出设置引起的播放卡顿。…

2026/9/24 3:01:16 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →