如何将训练数据集拆分为训练、验证和测试数据集?

我有一个自定义的图像数据集及其目标。我已经在PyTorch中创建了一个训练数据集。我想将其拆分为三部分:训练、验证和测试。如何操作呢?


回答:

一旦你有了“主”数据集,你可以使用 data.Subset 来进行拆分。
这是一个随机拆分的示例:

import torchfrom torch.utils import dataimport randommaster = data.Dataset( ... )  # 你的“主”数据集n = len(master)  # 总元素数量n_test = int( n * .05 )  # 测试/验证元素的数量n_train = n - 2 * n_testidx = list(range(n))  # 所有元素的索引random.shuffle(idx)  # 就地打乱索引以便随机拆分train_idx = idx[:n_train]val_idx = idx[n_train:(n_train + n_test)]test_idx = idx[(n_train + n_test):]train_set = data.Subset(master, train_idx)val_set = data.Subset(master, val_idx)test_set = data.Subset(master, test_idx)

这也可以通过 data.random_split 来实现:

train_set, val_set, test_set = data.random_split(master, (n_train, n_val, n_test))

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注