namespace OrpaonVision.Model.Training; /// /// 训练模型模型。 /// public sealed class TrainingModelModel { /// /// 模型ID。 /// public Guid Id { get; set; } /// /// 模型名称。 /// public string Name { get; set; } = string.Empty; /// /// 模型描述。 /// public string? Description { get; set; } /// /// 模型类型。 /// public string ModelType { get; set; } = string.Empty; /// /// 模型架构。 /// public string Architecture { get; set; } = string.Empty; /// /// 模型版本。 /// public string Version { get; set; } = string.Empty; /// /// 模型状态。 /// public ModelStatus Status { get; set; } /// /// 模型路径。 /// public string ModelPath { get; set; } = string.Empty; /// /// 权重文件路径。 /// public string? WeightsPath { get; set; } /// /// 配置文件路径。 /// public string? ConfigPath { get; set; } /// /// 标签文件路径。 /// public string? LabelsPath { get; set; } /// /// 输入尺寸。 /// public (int Width, int Height) InputSize { get; set; } /// /// 类别数量。 /// public int ClassCount { get; set; } /// /// 类别名称列表。 /// public string ClassNamesJson { get; set; } = string.Empty; /// /// 模型大小(字节)。 /// public long ModelSize { get; set; } /// /// 训练任务ID。 /// public Guid TrainingTaskId { get; set; } /// /// 基础模型ID。 /// public Guid? BaseModelId { get; set; } /// /// 训练数据集ID。 /// public Guid DatasetId { get; set; } /// /// 验证mAP。 /// public double ValidationMap { get; set; } /// /// 验证损失。 /// public double ValidationLoss { get; set; } /// /// 测试mAP。 /// public double TestMap { get; set; } /// /// 测试损失。 /// public double TestLoss { get; set; } /// /// 推理速度(FPS)。 /// public double InferenceFps { get; set; } /// /// 模型精度JSON。 /// public string? AccuracyMetricsJson { get; set; } /// /// 训练历史JSON。 /// public string? TrainingHistoryJson { get; set; } /// /// 是否已部署。 /// public bool IsDeployed { get; set; } /// /// 部署时间(UTC)。 /// public DateTime? DeployedAtUtc { get; set; } /// /// 部署人。 /// public string? DeployedBy { get; set; } /// /// 是否为当前版本。 /// public bool IsCurrentVersion { get; set; } /// /// 创建人ID。 /// public Guid CreatedById { get; set; } /// /// 创建人姓名。 /// public string CreatedByName { get; set; } = string.Empty; /// /// 创建时间(UTC)。 /// public DateTime CreatedAtUtc { get; set; } /// /// 更新时间(UTC)。 /// public DateTime UpdatedAtUtc { get; set; } /// /// 创建人。 /// public string CreatedBy { get; set; } = string.Empty; /// /// 更新人。 /// public string UpdatedBy { get; set; } = string.Empty; /// /// 备注。 /// public string? Remark { get; set; } } /// /// 模型状态枚举。 /// public enum ModelStatus { /// /// 训练中。 /// Training = 0, /// /// 已训练。 /// Trained = 1, /// /// 验证中。 /// Validating = 2, /// /// 已验证。 /// Validated = 3, /// /// 验证失败。 /// ValidationFailed = 4, /// /// 已发布。 /// Published = 5, /// /// 已部署。 /// Deployed = 6, /// /// 已停用。 /// Disabled = 7, /// /// 已归档。 /// Archived = 8 } /// /// 训练日志模型。 /// public sealed class TrainingLogModel { /// /// 日志ID。 /// public Guid Id { get; set; } /// /// 训练任务ID。 /// public Guid TrainingTaskId { get; set; } /// /// 轮次。 /// public int Epoch { get; set; } /// /// 步骤。 /// public int Step { get; set; } /// /// 日志级别。 /// public LogLevel LogLevel { get; set; } /// /// 日志消息。 /// public string Message { get; set; } = string.Empty; /// /// 训练损失。 /// public double? TrainLoss { get; set; } /// /// 验证损失。 /// public double? ValidationLoss { get; set; } /// /// 训练mAP。 /// public double? TrainMap { get; set; } /// /// 验证mAP。 /// public double? ValidationMap { get; set; } /// /// 学习率。 /// public double? LearningRate { get; set; } /// /// 额外数据JSON。 /// public string? ExtraDataJson { get; set; } /// /// 记录时间(UTC)。 /// public DateTime LoggedAtUtc { get; set; } /// /// 创建时间(UTC)。 /// public DateTime CreatedAtUtc { get; set; } } /// /// 日志级别枚举。 /// public enum LogLevel { /// /// 调试。 /// Debug = 0, /// /// 信息。 /// Info = 1, /// /// 警告。 /// Warning = 2, /// /// 错误。 /// Error = 3, /// /// 致命错误。 /// Fatal = 4 }