You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kaggle Notebook中用Python读取JPEG图片并用于Keras CNN模型?

在Kaggle Notebook中读取JPEG图片并适配Keras CNN模型

在Kaggle Notebook里处理JPEG图片并对接Keras CNN模型,推荐用tf.keras.preprocessing模块里的两种方案,根据你的场景选择:

方案一:批量读取(适合结构化分类数据集)

如果你的图片按类别存放在子文件夹中(比如train/cat/、train/dog/),用ImageDataGenerator可以直接生成可喂给模型的迭代器,还能顺便做数据增强:

  1. 导入依赖库
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
  1. 初始化数据生成器
# 基础版:仅做像素归一化(把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  # 随机水平翻转
)
  1. 从目录加载图片
# 替换为你的数据集路径,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:

  1. 导入依赖库
from tensorflow.keras.preprocessing.image import load_img, img_to_array
  1. 读取并处理单张图片
# 替换为你的图片路径
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:01:11