当我在本地训练模型时,我使用 20% 的测试集,然后交叉验证。Sagameker 似乎需要一个专用的评估集(至少在我遵循的教程中)。目前我有 20% 的测试,10% 的验证,剩下的 70% 用于训练 - 因此与在本地训练时相比,我丢失了 10% 的训练数据,因此有一些性能损失。
我可以采用本地训练的模型并覆盖存储在 s3 中的 sagemaker 模型,但这似乎有点变通办法。有没有办法在不必拥有专用验证集的情况下使用 Sagemaker?
谢谢
SageMaker 似乎允许单个训练集,而在交叉验证中,您可以在例如 5 个不同的训练集之间进行迭代,每个训练集在不同的保持集上验证。因此,SageMaker培训服务似乎不太适合交叉验证。当然,交叉验证通常对小(准确地说是低方差)数据很有用,因此在这些情况下,您可以将训练基础结构设置为本地(因此不会花费大量时间),然后手动迭代以实现交叉验证功能。但这不是开箱即用的东西。
抱歉,当您说"SageMaker 似乎需要一个专用的验证集(至少在我关注的教程中)"时,您能否详细说明您指的是哪些教程。
SageMaker 培训公开了将数据集分离到"通道"中的能力,因此您可以按照自己喜欢的任何方式分离数据集。
有关更多信息,请参见此处:https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-trainingdata