如何在Kaggle Notebook中用Python读取JPEG图片并用于Keras CNN模型?
在Kaggle Notebook中读取JPEG图片并适配Keras CNN模型
在Kaggle Notebook里处理JPEG图片并对接Keras CNN模型,推荐用tf.keras.preprocessing模块里的两种方案,根据你的场景选择:
方案一:批量读取(适合结构化分类数据集)
如果你的图片按类别存放在子文件夹中(比如train/cat/、train/dog/),用ImageDataGenerator可以直接生成可喂给模型的迭代器,还能顺便做数据增强:
- 导入依赖库
import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator
- 初始化数据生成器
# 基础版:仅做像素归一化(把0-255的像素值缩到0-1) datagen = ImageDataGenerator(rescale=1./255) # 增强版:添加数据增强(缓解CNN过拟合) datagen = ImageDataGenerator( rescale=1./255, rotation_range=20, # 随机旋转角度范围 width_shift_range=0.2, # 水平平移比例 height_shift_range=0.2, # 垂直平移比例 horizontal_flip=True # 随机水平翻转 )
- 从目录加载图片
# 替换为你的数据集路径,Kaggle数据集默认在/kaggle/input/下 train_generator = datagen.flow_from_directory( '/kaggle/input/your-dataset-folder/train/', target_size=(224, 224), # 统一图片尺寸,匹配CNN输入要求 batch_size=32, # 每次批量处理的图片数量 class_mode='categorical' # 多分类用categorical,二分类用binary )
直接用这个迭代器训练模型:
# 假设你已经定义好了CNN模型model model.fit(train_generator, epochs=10)
方案二:单张读取(适合单图处理/预测)
如果需要单独处理单张图片,用load_img和img_to_array:
- 导入依赖库
from tensorflow.keras.preprocessing.image import load_img, img_to_array
- 读取并处理单张图片
# 替换为你的图片路径 img_path = '/kaggle/input/your-dataset-folder/test/sample.jpg' # 加载图片并调整尺寸 img = load_img(img_path, target_size=(224, 224)) # 转为numpy数组(形状:(224, 224, 3)) img_array = img_to_array(img) # 像素归一化 img_array = img_array / 255.0 # 扩展维度,匹配模型的批量输入要求(形状变为:(1, 224, 224, 3)) img_array = tf.expand_dims(img_array, axis=0)
处理后的数组可以直接输入到CNN模型做预测:
predictions = model.predict(img_array)
注意事项
- Kaggle中数据集默认挂载在
/kaggle/input/目录下,可通过!ls /kaggle/input/命令查看具体路径 target_size需要和你的CNN模型输入层尺寸保持一致
内容的提问来源于stack exchange,提问作者DatBigD
相关产品推荐
相关产品推荐

