我正在实现一种使用Keras进行二进制图像分类的相当普遍的方法。我用于参考的代码可以在这里找到,但它看起来与我在网上看到的许多此类代码示例相似。
https://github.com/tatsuyah/CNN-Image-Classifier/blob/master/src/train-binary.py
https://github.com/tatsuyah/CNN-Image-Classifier/blob/master/src/predict-binary.py
重要的部分在这里
# while training
train_datagen = ImageDataGenerator(
rescale=1. / 255, # rescaling to range 0..1
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
# But while doing prediction
x = load_img(file, target_size=(img_width,img_height))
x = img_to_array(x)
x = np.expand_dims(x, axis=0)
array = model.predict(x)
从上面的代码中可以看到,预测时没有明显的缩放比例。实际上,我检查了x变量是否在0..1的范围内,但其值在0..255的范围内
尽管训练数据的范围为0..1,预测仍会自动以某种方式还是可以正常工作?