重新缩放图像是数据预处理的一部分,重新缩放图像也称为图像标准化,此过程对于在构建模型之前为您正在使用的数据集或数值提供统一的缩放比例非常有用。在 keras 中,您可以根据您的目标使用以下方法之一以多种方式执行此操作:
如果您使用人工神经网络模型进行训练,您可以使用:-
“Batch normalization layer”或“Layer Normalization”或通过你提到的keras的rescale方法。您可以查看此资源以获取有关规范化的更多信息。
https://machinelearningknowledge.ai/keras-normalization-layers-explained-for-beginners-batch-normalization-vs-layer-normalization/
使用您提到的重新缩放方法:
#importing you libraries 1st
import tensorflow as tf
from tensorflow.keras.layers import BatchNormalization
#if your are using dataset from directory
import pathlib
然后导入您的数据集:
Dataset_Dir = '/Dataset/ path'
image size = (256,256) #the image size in your dataset
image shape = (96,96,3) #The shape you wish for your images in your network
然后将您的数据集划分为我使用 70-30% 的训练测试
Training_set = tf.keras.preprocessing.image_dataset_from_directory(Dataset_Dir,batch_size= 32,
image_size= image_size,
validation_split= 0.3,subset = "training",seed =123)
测试集
Testing_set = tf.keras.preprocessing.image_dataset_from_directory(Dataset_Dir,image_size= image_size,
validation_split=0.3,seed=123,subset ="validation")
标准化层:
normalization_layer = tf.keras.layers.experimental.preprocessing.Rescaling(1./255)
normalized_training_set = Training_set.map(lambda x, y: (normalization_layer(x), y))
training_image_batch,training_labels_batch = next(iter(normalized_training_set))
有关此方法的更多信息:
看张量流教程:
https://www.tensorflow.org/tutorials/images/classification