基本概念
参考:手工编写继承KERAS.UTILS.SEQUENCE类的图像生成器
-
-
训练集:可以比喻为课本,学生通过课本学习
-
验证集:平时作业,可以了解学生的学习情况,从而可以调整对于课本讲授的方法调整
-
测试集:期末考试,之前完全没见过的内容,看看学习效果
-
基本操作
-
打乱训练数据,同时保证训练数据与标签数据的打乱模式一样
-
random.Random(1).shuffle(training_data)
-
random.Random(1).shuffle(label_data)
-
可以保证他们打乱的顺序是一致的,参数可以随便写
-
-
numpy.expand_dims(arr, axis=2)
-
增加 arr 的维度,适用于那种灰度图增加维度,或者神经网络输入维度固定,数据本身维度不够
-
另外就是 arr 可以是 Image 格式的数据,因此就方便很多,reshape 需要时 numpy.array 才可以
-
图像处理
参考:PIL Tutorial
参考:Image.fromarray的用法(实现array到image的转换)
参考:Python PIL Image.new()用法及代码示例
参考:Python图像处理库PIL的ImageOps模块介绍
-
keras.preprocessing.image.load_image()
-
通过路径读取图片文件,返回的格式为 PIL Image
-
默认为 RGB 格式,返回值形如:(160, 160, 3)
-
灰度图的话需要设置 color_mode="grayscale",返回值形如:(160, 160)
-
PIL Image 格式的数据直接赋值给 numpy.array 数组,即可以直接转为 numpy.array
-
-
Image.open()
-
通过路径读取图片文件,返回的格式为 PIL Image
- 通过 numpy.array(img) 可以转为 numpy.array 格式
-
-
cv2.imread()
-
通过路径读取图片文件,返回值为 numpy.array
-
-
PIL.ImageOps.autoconstrast(img)
- 参考:Python图像处理库PIL的ImageOps模块介绍
-
可以将 Image 格式的数据,直接扩展到 0~255
-
例如,原始值为 0,1,2,会分别扩展为 0,127,255
-
对于标签数据来说,本身分不清数字,扩展后可以清晰显示了