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
}