版本260406

This commit is contained in:
2026-04-06 22:04:05 +08:00
parent 7dc5e73af7
commit 0b150470be
216 changed files with 98993 additions and 33 deletions

View File

@@ -0,0 +1,280 @@
namespace OrpaonVision.Model.Training;
/// <summary>
/// 训练任务模型。
/// </summary>
public sealed class TrainingTaskModel
{
/// <summary>
/// 任务ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 任务名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 任务描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 任务类型。
/// </summary>
public TrainingTaskType TaskType { get; set; }
/// <summary>
/// 任务状态。
/// </summary>
public TrainingTaskStatus Status { get; set; }
/// <summary>
/// 优先级。
/// </summary>
public TrainingPriority Priority { get; set; }
/// <summary>
/// 模型类型。
/// </summary>
public string ModelType { get; set; } = string.Empty;
/// <summary>
/// 基础模型ID。
/// </summary>
public Guid? BaseModelId { get; set; }
/// <summary>
/// 数据集ID。
/// </summary>
public Guid DatasetId { get; set; }
/// <summary>
/// 训练参数JSON。
/// </summary>
public string TrainingParametersJson { get; set; } = string.Empty;
/// <summary>
/// 验证参数JSON。
/// </summary>
public string ValidationParametersJson { get; set; } = string.Empty;
/// <summary>
/// 计划开始时间UTC
/// </summary>
public DateTime? PlannedStartAtUtc { get; set; }
/// <summary>
/// 实际开始时间UTC
/// </summary>
public DateTime? ActualStartAtUtc { get; set; }
/// <summary>
/// 实际结束时间UTC
/// </summary>
public DateTime? ActualEndAtUtc { get; set; }
/// <summary>
/// 计划训练时长(分钟)。
/// </summary>
public int PlannedDurationMinutes { get; set; }
/// <summary>
/// 实际训练时长(分钟)。
/// </summary>
public int ActualDurationMinutes { get; set; }
/// <summary>
/// 当前轮次。
/// </summary>
public int CurrentEpoch { get; set; }
/// <summary>
/// 总轮次。
/// </summary>
public int TotalEpochs { get; set; }
/// <summary>
/// 当前损失值。
/// </summary>
public double CurrentLoss { get; set; }
/// <summary>
/// 最佳损失值。
/// </summary>
public double BestLoss { get; set; }
/// <summary>
/// 当前mAP。
/// </summary>
public double CurrentMap { get; set; }
/// <summary>
/// 最佳mAP。
/// </summary>
public double BestMap { get; set; }
/// <summary>
/// 训练进度0-100
/// </summary>
public double Progress { get; set; }
/// <summary>
/// 输出模型路径。
/// </summary>
public string? OutputModelPath { get; set; }
/// <summary>
/// 日志路径。
/// </summary>
public string? LogPath { get; set; }
/// <summary>
/// 错误消息。
/// </summary>
public string? ErrorMessage { get; set; }
/// <summary>
/// 创建人ID。
/// </summary>
public Guid CreatedById { get; set; }
/// <summary>
/// 创建人姓名。
/// </summary>
public string CreatedByName { get; set; } = string.Empty;
/// <summary>
/// 分配人ID。
/// </summary>
public Guid? AssignedToId { get; set; }
/// <summary>
/// 分配人姓名。
/// </summary>
public string? AssignedToName { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 更新时间UTC
/// </summary>
public DateTime UpdatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
/// <summary>
/// 更新人。
/// </summary>
public string UpdatedBy { get; set; } = string.Empty;
/// <summary>
/// 备注。
/// </summary>
public string? Remark { get; set; }
}
/// <summary>
/// 训练任务类型枚举。
/// </summary>
public enum TrainingTaskType
{
/// <summary>
/// 目标检测训练。
/// </summary>
ObjectDetection = 0,
/// <summary>
/// 分类训练。
/// </summary>
Classification = 1,
/// <summary>
/// 分割训练。
/// </summary>
Segmentation = 2,
/// <summary>
/// 微调训练。
/// </summary>
FineTuning = 3,
/// <summary>
/// 增量训练。
/// </summary>
Incremental = 4
}
/// <summary>
/// 训练任务状态枚举。
/// </summary>
public enum TrainingTaskStatus
{
/// <summary>
/// 草稿。
/// </summary>
Draft = 0,
/// <summary>
/// 等待中。
/// </summary>
Pending = 1,
/// <summary>
/// 运行中。
/// </summary>
Running = 2,
/// <summary>
/// 已暂停。
/// </summary>
Paused = 3,
/// <summary>
/// 已完成。
/// </summary>
Completed = 4,
/// <summary>
/// 已失败。
/// </summary>
Failed = 5,
/// <summary>
/// 已取消。
/// </summary>
Cancelled = 6
}
/// <summary>
/// 训练优先级枚举。
/// </summary>
public enum TrainingPriority
{
/// <summary>
/// 低。
/// </summary>
Low = 0,
/// <summary>
/// 中。
/// </summary>
Medium = 1,
/// <summary>
/// 高。
/// </summary>
High = 2,
/// <summary>
/// 紧急。
/// </summary>
Urgent = 3
}