{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据采样\n",
    "\n",
    "[![在OpenI运行](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.9/resource/_static/logo_openi.png)](https://openi.pcl.ac.cn/MindSpore/docs/src/branch/r1.9/tutorials/source_zh_cn/advanced/dataset/sampler.ipynb) [![下载Notebook](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.9/resource/_static/logo_notebook.png)](https://obs.dualstack.cn-north-4.myhuaweicloud.com/mindspore-website/notebook/r1.9/tutorials/zh_cn/advanced/dataset/mindspore_sampler.ipynb) \n",
    "[![下载样例代码](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.9/resource/_static/logo_download_code.png)](https://obs.dualstack.cn-north-4.myhuaweicloud.com/mindspore-website/notebook/r1.9/tutorials/zh_cn/advanced/dataset/mindspore_sampler.py) \n",
    "[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r1.9/resource/_static/logo_source.png)](https://gitee.com/mindspore/docs/blob/r1.9/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.9/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.9/tutorials/source_zh_cn/advanced/dataset/images/cifar10.jpg)\n",
    "\n",
    "在介绍采样器之前,我们首先把示例中用到的数据集下载下来,并解压到指定位置。\n",
    "\n",
    "> 本章节中的示例代码依赖`matplotlib`和`download`,可使用命令`pip install matplotlib`和`pip install download`安装。如本文档以Notebook运行时,完成安装后需要重启kernel才能执行后续代码。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading data from https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/cifar-10-binary.tar.gz (162.2 MB)\n",
      "\n",
      "file_sizes: 100%|████████████████████████████| 170M/170M [00:26<00:00, 6.35MB/s]\n",
      "Extracting tar.gz file...\n",
      "Successfully downloaded / unzipped to ./\n"
     ]
    }
   ],
   "source": [
    "from download import download\n",
    "\n",
    "url = \"https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/datasets/cifar-10-binary.tar.gz\"\n",
    "\n",
    "download(url, \"./\", kind=\"tar.gz\", replace=True)"
   ]
  },
  {
   "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 7 1 7 7 \n",
      "Without Replacement: 1 5 7 2 4 "
     ]
    }
   ],
   "source": [
    "from mindspore.dataset import RandomSampler, NumpySlicesDataset\n",
    "\n",
    "np_data = [1, 2, 3, 4, 5, 6, 7, 8]  # 数据集\n",
    "\n",
    "# 定义有放回采样器,采样5条数据\n",
    "sampler1 = RandomSampler(replacement=True, num_samples=5)\n",
    "dataset1 = NumpySlicesDataset(np_data, column_names=[\"data\"], sampler=sampler1)\n",
    "\n",
    "print(\"With Replacement:    \", end='')\n",
    "for data in dataset1.create_tuple_iterator(output_numpy=True):\n",
    "    print(data[0], end=' ')\n",
    "\n",
    "# 定义无放回采样器,采样5条数据\n",
    "sampler2 = RandomSampler(replacement=False, num_samples=5)\n",
    "dataset2 = NumpySlicesDataset(np_data, column_names=[\"data\"], sampler=sampler2)\n",
    "\n",
    "print(\"\\nWithout Replacement: \", end='')\n",
    "for data in dataset2.create_tuple_iterator(output_numpy=True):\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: 6\n",
      "Image shape: (32, 32, 3) , Label: 6\n",
      "Image shape: (32, 32, 3) , Label: 6\n",
      "Image shape: (32, 32, 3) , Label: 9\n",
      "Image shape: (32, 32, 3) , Label: 9\n",
      "Image shape: (32, 32, 3) , Label: 9\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import math\n",
    "import matplotlib.pyplot as plt\n",
    "from mindspore.dataset import WeightedRandomSampler, Cifar10Dataset\n",
    "%matplotlib inline\n",
    "\n",
    "DATA_DIR = \"./cifar-10-batches-bin/\"\n",
    "\n",
    "# 指定前10个样本的采样概率并进行采样\n",
    "weights = [0.8, 0.5, 0, 0, 0, 0, 0, 0, 0, 0]\n",
    "sampler = WeightedRandomSampler(weights, num_samples=6)\n",
    "dataset = Cifar10Dataset(DATA_DIR, sampler=sampler)  # 加载数据\n",
    "\n",
    "def plt_result(dataset, row):\n",
    "    \"\"\"显示采样结果\"\"\"\n",
    "    num = 1\n",
    "    for data in dataset.create_dict_iterator(output_numpy=True):\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']\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: 9\n",
      "Image shape: (32, 32, 3) , Label: 4\n",
      "Image shape: (32, 32, 3) , Label: 9\n",
      "Image shape: (32, 32, 3) , Label: 1\n",
      "Image shape: (32, 32, 3) , Label: 6\n",
      "Image shape: (32, 32, 3) , Label: 1\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from mindspore.dataset import SubsetRandomSampler\n",
    "\n",
    "# 指定样本索引序列\n",
    "indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n",
    "sampler = SubsetRandomSampler(indices, num_samples=6)\n",
    "# 加载数据\n",
    "dataset = 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": [
       "<Figure size 432x288 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from mindspore.dataset import PKSampler\n",
    "\n",
    "# 每种类别抽样2个样本,最多10个样本\n",
    "sampler = PKSampler(num_val=2, class_column='label', num_samples=10)\n",
    "dataset = 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": [
    "from mindspore.dataset import DistributedSampler\n",
    "\n",
    "# 自定义数据集\n",
    "data_source = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]\n",
    "\n",
    "# 构建的数据集分为4片,共采样3个数据样本\n",
    "sampler = DistributedSampler(num_shards=4, shard_id=0, shuffle=False, num_samples=3)\n",
    "dataset = 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",
    "用户可以自定义采样器,并把它应用到数据集上。\n",
    "\n",
    "### \\_\\_iter\\_\\_ 模式\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",
    "\n",
    "for data in dataset.create_tuple_iterator(output_numpy=True):\n",
    "    print(data[0], end=' ')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上面的打印可以看出,自定义的采样器读取了下标为0、2、4、6、8的样本数据,这与自定义采样器的采样目的一致。\n",
    "\n",
    "### \\_\\_getitem\\_\\_ 模式\n",
    "\n",
    "用户可以定义一个采样器类,该类包含 `__init__` 、 `__getitem__` 和 `__len__` 方法。\n",
    "\n",
    "下面的样例定义了一个下标为 `[3, 4, 3, 2, 0, 11, 5, 5, 5, 9, 1, 11, 11, 11, 11, 8]` 的采样器类,将其作用于自定义数据集,并展示已读取数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "d e d c a l f f f j b l "
     ]
    }
   ],
   "source": [
    "import mindspore.dataset as ds\n",
    "\n",
    "# 自定义采样器\n",
    "class MySampler():\n",
    "    def __init__(self):\n",
    "        self.index_ids = [3, 4, 3, 2, 0, 11, 5, 5, 5, 9, 1, 11, 11, 11, 11, 8]\n",
    "    def __getitem__(self, index):\n",
    "        return self.index_ids[index]\n",
    "    def __len__(self):\n",
    "        return len(self.index_ids)\n",
    "\n",
    "# 自定义数据集\n",
    "np_data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l']\n",
    "\n",
    "# 加载数据\n",
    "dataset = ds.NumpySlicesDataset(np_data, column_names=[\"data\"], sampler=MySampler())\n",
    "for data in dataset.create_tuple_iterator(output_numpy=True):\n",
    "    print(data[0], end=' ')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上面的打印可以看出,自定义的采样器读取了下标为 `[3, 4, 3, 2, 0, 11, 5, 5, 5, 9, 1, 11, 11, 11, 11, 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.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}