【课后作业04】数据预处理 (Data Preprocessing) 习题答案

作者:欧新宇(Xinyu OU)

本文档所展示的测试结果,均运行于:Intel Core i7-7700K CPU 4.2GHz, nVidia GeForce GTX 1080 Ti
本教案所涉及的数据集仅用于教学和交流使用,请勿用作商用。

最后更新:2021-08-07


【实验目的】

  1. 理解数据预处理和数据增广的基本原理和方法
  2. 学会使用paddle.io.Dataset类将数据集组织成Paddle内置数据格式
  3. 学会使用paddle.vision.transforms类实现对数据进行预处理和数据增广
  4. 理解训练集、验证集和测试集在进行数据预处理时的区别,并学会使用Pathon实现编码
  5. 能够对编写的代码进行简单的测试和验证

【实验要求】

  1. 所有作业均在AIStudio上进行提交,提交时包含源代码和运行结果
  2. 完成测试代码和三个函数(类)的定义,包括:数据集定义类(Q1)、测试用十重切割函数(Q2)、测试用简单预处理函数(Q3);
  3. 输出数据集的基本信息,包括各个子集的数量,并从测试集任意取一个样本图例,分别输出数据预处理前、十重切割后、数据预处理后的数据形态(Q4);

    数据集包含训练数据1432个,验证数据210个,训练验证数据1642个,测试数据420个。 数据预处理前的数据形态: (100, 100, 3)
    十重切割后的数据形态: (10, 224, 224, 3)
    数据预处理后的数据形态: (10, 3, 224, 224)

  4. 可视化测试集中第7个样本,要求分别可视化未经过处理时,经过十重切割后,以及经过简单预处理后的状态(Q5

【实验内容】

Q1. 完成数据集的定义 (40分) ([Your codes 1]~[Your codes 4])

要求:

Q2. 完成十重切割区域裁剪部分代码 (20分) [Your codes 5]

示例代码中已包含右下角和右下角翻转样本,请补全其余部分,包括左上、右上、左下、中央及其对应的翻转,共计8个样本切片。

Q3. 完成对单幅图像进行预处理的代码 (10分) ([Your codes 6])

Q4. 补全基本测试代码,输出基本统计信息 (20分) ([Your codes 7])

要求:

Q5:可视化测试集中第7个样本,要求分别可视化未经过处理时,经过十重切割后,以及经过简单预处理后的状态 (10分) ([Your codes 8])