{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 数据采样\n", "\n", "[![下载Notebook](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.8/resource/_static/logo_notebook.png)](https://obs.dualstack.cn-north-4.myhuaweicloud.com/mindspore-website/notebook/r1.8/tutorials/zh_cn/advanced/dataset/mindspore_sampler.ipynb) \n", "[![下载样例代码](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.8/resource/_static/logo_download_code.png)](https://obs.dualstack.cn-north-4.myhuaweicloud.com/mindspore-website/notebook/r1.8/tutorials/zh_cn/advanced/dataset/mindspore_sampler.py) \n", "[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.8/resource/_static/logo_source.png)](https://gitee.com/mindspore/docs/blob/r1.8/tutorials/source_zh_cn/advanced/dataset/sampler.ipynb)\n", "\n", "为满足训练需求,解决诸如数据集过大或样本类别分布不均等问题,MindSpore提供了多种不同用途的采样器(Sampler),帮助用户对数据集进行不同形式的采样。用户只需在加载数据集时传入采样器对象,即可实现数据的采样。\n", "\n", "MindSpore目前提供了如`RandomSampler`、`WeightedRandomSampler`、`SubsetRandomSampler`等多种采样器。此外,用户也可以根据需要实现自定义的采样器类。\n", "\n", "> 更多采样器的使用方法参见[采样器API文档](https://www.mindspore.cn/docs/zh-CN/r1.8/api_python/mindspore.dataset.html#采样器)。\n", "\n", "## 采样器\n", "\n", "下面主要以CIFAR-10数据集为例,介绍几种常用MindSpore采样器的使用方法。\n", "\n", "![cifar10](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.8/tutorials/source_zh_cn/advanced/dataset/images/cifar10.jpg)\n", "\n", "在介绍采样器之前,我们首先把示例中用到的数据集通过[MindSpore Vision套件](https://mindspore.cn/vision/docs/zh-CN/r0.1/index.html)提供的接口下载下来,并解压到指定位置。\n", "\n", "> 本章节中的示例代码依赖`matplotlib`和`mindvision`,可分别使用命令`pip install matplotlib`和`pip install mindvision`安装。如本文档以Notebook运行时,完成安装后需要重启kernel才能执行后续代码。\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from mindvision import dataset\n", "\n", "dl_path = \"./datasets\"\n", "data_dir = \"./datasets/cifar-10-batches-bin/\"\n", "dl_url = \"https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/cifar-10-binary.tar.gz\"\n", "\n", "dl = dataset.DownLoad() # 下载CIFAR-10数据集\n", "dl.download_and_extract_archive(url=dl_url, download_path=dl_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "解压后数据集文件的目录结构如下:\n", "\n", "```text\n", ".\n", "└── cifar-10-batches-bin\n", " ├── batches.meta.txt\n", " ├── data_batch_1.bin\n", " ├── data_batch_2.bin\n", " ├── data_batch_3.bin\n", " ├── data_batch_4.bin\n", " ├── data_batch_5.bin\n", " ├── readme.html\n", " └── test_batch.bin\n", "```\n", "\n", "### RandomSampler\n", "\n", "从索引序列中随机采样指定数目的数据。\n", "\n", "下面的样例使用随机采样器,分别从数据集中有放回和无放回地随机采样5个数据,并打印展示。为了便于观察有放回与无放回的效果,这里自定义了一个数据量较小的数据集。" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "With Replacement: 5 5 6 7 5 \n", "Without Replacement: 1 3 2 6 4 " ] } ], "source": [ "import mindspore.dataset as ds\n", "\n", "ds.config.set_seed(0)\n", "\n", "np_data = [1, 2, 3, 4, 5, 6, 7, 8] # 数据集\n", "\n", "# 定义有放回采样器,采样5条数据\n", "sampler1 = ds.RandomSampler(replacement=True, num_samples=5)\n", "dataset1 = ds.NumpySlicesDataset(np_data, column_names=[\"data\"], sampler=sampler1)\n", "\n", "print(\"With Replacement: \", end='')\n", "for data in dataset1.create_tuple_iterator():\n", " print(data[0], end=' ')\n", "\n", "# 定义无放回采样器,采样5条数据\n", "sampler2 = ds.RandomSampler(replacement=False, num_samples=5)\n", "dataset2 = ds.NumpySlicesDataset(np_data, column_names=[\"data\"], sampler=sampler2)\n", "\n", "print(\"\\nWithout Replacement: \", end='')\n", "for data in dataset2.create_tuple_iterator():\n", " print(data[0], end=' ')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "从上面的打印结果可以看出,使用有放回采样器时,同一条数据可能会被多次获取;使用无放回采样器时,同一条数据只能被获取一次。\n", "\n", "### WeightedRandomSampler\n", "\n", "指定长度为N的采样概率列表,按照概率在前N个样本中随机采样指定数目的数据。\n", "\n", "下面的样例使用带权随机采样器从CIFAR-10数据集的前10个样本中按概率获取6个样本,并展示已读取数据的形状和标签。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Image shape: (32, 32, 3) , Label: 9\n", "Image shape: (32, 32, 3) , Label: 9\n", "Image shape: (32, 32, 3) , Label: 6\n", "Image shape: (32, 32, 3) , Label: 9\n", "Image shape: (32, 32, 3) , Label: 6\n", "Image shape: (32, 32, 3) , Label: 6\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import math\n", "import matplotlib.pyplot as plt\n", "import mindspore.dataset as ds\n", "%matplotlib inline\n", "\n", "ds.config.set_seed(1) # 设置随机数种子\n", "\n", "DATA_DIR = \"./datasets/cifar-10-batches-bin/\"\n", "\n", "# 指定前10个样本的采样概率并进行采样\n", "weights = [0.8, 0.5, 0, 0, 0, 0, 0, 0, 0, 0]\n", "sampler = ds.WeightedRandomSampler(weights, num_samples=6)\n", "dataset = ds.Cifar10Dataset(DATA_DIR, sampler=sampler) # 加载数据\n", "\n", "def plt_result(dataset, row):\n", " \"\"\"显示采样结果\"\"\"\n", " num = 1\n", " for data in dataset.create_dict_iterator():\n", " print(\"Image shape:\", data['image'].shape, \", Label:\", data['label'])\n", " plt.subplot(row, math.ceil(dataset.get_dataset_size() / row), num)\n", " image = data['image'].asnumpy()\n", " plt.imshow(image, interpolation=\"None\")\n", " num += 1\n", "\n", "plt_result(dataset, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "从上面的打印结果可以看出,本次再前一共在前10个样本中随机采样了6条数据,只有前面两个采样概率不为0的样本才有机会被采样。\n", "\n", "### SubsetRandomSampler\n", "\n", "从指定样本索引子序列中随机采样指定数目的样本数据。\n", "\n", "下面的样例使用子序列随机采样器从CIFAR-10数据集的指定子序列中抽样3个样本,并展示已读取数据的形状和标签。" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Image shape: (32, 32, 3) , Label: 1\n", "Image shape: (32, 32, 3) , Label: 6\n", "Image shape: (32, 32, 3) , Label: 4\n", "Image shape: (32, 32, 3) , Label: 9\n", "Image shape: (32, 32, 3) , Label: 9\n", "Image shape: (32, 32, 3) , Label: 1\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import mindspore.dataset as ds\n", "\n", "ds.config.set_seed(2) # 设置随机数种子\n", "\n", "DATA_DIR = \"./datasets/cifar-10-batches-bin/\" # CIFAR-10数据集存放路径\n", "\n", "# 指定样本索引序列\n", "indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n", "sampler = ds.SubsetRandomSampler(indices, num_samples=6)\n", "# 加载数据\n", "dataset = ds.Cifar10Dataset(DATA_DIR, sampler=sampler)\n", "\n", "plt_result(dataset, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "从上面的打印结果可以看到,采样器从索引序列中随机采样了6个样本。\n", "\n", "### PKSampler\n", "\n", "在指定的数据集类别P中,每种类别各采样K条数据。\n", "\n", "下面的样例使用PK采样器从CIFAR-10数据集中每种类别抽样2个样本,最多20个样本,并展示已读取数据的形状和标签。" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Image shape: (32, 32, 3) , Label: 0\n", "Image shape: (32, 32, 3) , Label: 0\n", "Image shape: (32, 32, 3) , Label: 1\n", "Image shape: (32, 32, 3) , Label: 1\n", "Image shape: (32, 32, 3) , Label: 2\n", "Image shape: (32, 32, 3) , Label: 2\n", "Image shape: (32, 32, 3) , Label: 3\n", "Image shape: (32, 32, 3) , Label: 3\n", "Image shape: (32, 32, 3) , Label: 4\n", "Image shape: (32, 32, 3) , Label: 4\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import mindspore.dataset as ds\n", "\n", "ds.config.set_seed(3) # 设置随机数种子\n", "DATA_DIR = \"./datasets/cifar-10-batches-bin/\" # CIFAR-10数据集存放路径\n", "\n", "# 每种类别抽样2个样本,最多10个样本\n", "sampler = ds.PKSampler(num_val=2, class_column='label', num_samples=10)\n", "dataset = ds.Cifar10Dataset(DATA_DIR, sampler=sampler)\n", "\n", "plt_result(dataset, 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "从上面的打印结果可以看出,采样器对数据集中的每种标签都采样了2个样本,一共10个样本。\n", "\n", "### DistributedSampler\n", "\n", "在分布式训练中,对数据集分片进行采样。\n", "\n", "下面的样例使用分布式采样器将构建的数据集分为4片,在分片抽取一个样本,共中采样3个样本,并展示已读取的数据。" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'data': Tensor(shape=[], dtype=Int64, value= 0)}\n", "{'data': Tensor(shape=[], dtype=Int64, value= 4)}\n", "{'data': Tensor(shape=[], dtype=Int64, value= 8)}\n" ] } ], "source": [ "import mindspore.dataset as ds\n", "\n", "# 自定义数据集\n", "data_source = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]\n", "\n", "# 构建的数据集分为4片,共采样3个数据样本\n", "sampler = ds.DistributedSampler(num_shards=4, shard_id=0, shuffle=False, num_samples=3)\n", "dataset = ds.NumpySlicesDataset(data_source, column_names=[\"data\"], sampler=sampler)\n", "\n", "# 打印数据集\n", "for data in dataset.create_dict_iterator():\n", " print(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "从上面的打印结果可以看出,数据集被分成了4片,每片有3个样本,本次获取的是id为0的片中的样本。\n", "\n", "## 自定义采样器\n", "\n", "用户可以继承`Sampler`基类,通过实现`__iter__`方法来自定义采样器的采样方式。\n", "\n", "下面的样例定义了一个从下标0至下标9间隔为2采样的采样器,将其作用于自定义数据集,并展示已读取数据。" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a c e g i " ] } ], "source": [ "import mindspore.dataset as ds\n", "\n", "# 自定义采样器\n", "class MySampler(ds.Sampler):\n", " def __iter__(self):\n", " for i in range(0, 10, 2):\n", " yield i\n", "\n", "# 自定义数据集\n", "np_data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l']\n", "\n", "# 加载数据\n", "sampler = ds.IterSampler(sampler=MySampler())\n", "dataset = ds.NumpySlicesDataset(np_data, column_names=[\"data\"], sampler=sampler)\n", "for data in dataset.create_tuple_iterator():\n", " print(data[0], end=' ')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "从上面的打印可以看出,自定义的采样器读取了下标为0、2、4、6、8的样本数据,这与自定义采样器的采样目的一致。" ] } ], "metadata": { "kernelspec": { "display_name": "MindSpore", "language": "python", "name": "mindspore" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 4 }