# How to split main dataset into train, dev, test as DatasetDict

**URL:** <https://discuss.huggingface.co/t/how-to-split-main-dataset-into-train-dev-test-as-datasetdict/1090>\
**Category:** 🤗Datasets\
**Created:** [September 11, 2020, 7:30pm UTC](https://discuss.huggingface.co/t/how-to-split-main-dataset-into-train-dev-test-as-datasetdict/1090 "2020-09-11T19:30:30Z")\
**Posts on this page:** 1\
**Showing post:** 21

<div class="post-metadata">

**Author:** ![Resi](https://avatars.discourse-cdn.com/v4/letter/r/c37758/32.png) [@Resi](https://discuss.huggingface.co/u/Resi)\
**Post date:** [March 27, 2024, 9:43am UTC](https://discuss.huggingface.co/t/how-to-split-main-dataset-into-train-dev-test-as-datasetdict/1090/21 "2024-03-27T09:43:50Z")

</div>

From now on it is written like this:

from datasets import DatasetDict  
#split into test, train, val

# 90% train, 10% test + validation

train\_testvalid = dataset.train\_test\_split(test\_size=0.1)

# Split the 10% test + valid in half test, half valid

test\_valid = train\_testvalid[‘test’].train\_test\_split(test\_size=0.5)

# gather everyone if you want to have a single DatasetDict

train\_test\_valid\_dataset = DatasetDict({  
‘train’: train\_testvalid[‘train’],  
‘test’: test\_valid[‘test’],  
‘valid’: test\_valid[‘train’]})

train\_test\_valid\_dataset

---

_[View the full topic](https://discuss.huggingface.co/t/how-to-split-main-dataset-into-train-dev-test-as-datasetdict/1090)._
