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

使用MobileNet提取数据集图像特征时遇ValueError问题求助

解决MobileNet提取特征时的ValueError: Sequence has length 0问题

这个错误的核心原因是flow_from_directory没有加载到任何图像,主要由数据集目录结构错误或路径问题导致,以下是具体解决方案:

1. 修正数据集目录结构

flow_from_directory要求数据集必须遵循「主目录→子目录(类别)→图片」的层级结构,哪怕所有图片属于同一类别,也需要在主目录下创建至少一个子文件夹存放图片。

正确目录结构示例:

16k_images/
    all_imgs/  # 子目录名称可自定义
        img1.jpg
        img2.jpg
        ...

如果直接把图片放在16k_images根目录下,生成器会识别不到有效图像,导致序列长度为0。

2. 验证路径与加载数量

  • 路径中的//可简化为/,避免转义冲突,修改后的路径为:'C:/Users/mahit/OneDrive/Pictures/Desktop/DATA AND VIDEOS/16k_images'
  • 在创建生成器后添加打印语句,确认加载的图片数量:
    print(f"Loaded images count: {image_generator.samples}")
    
    如果输出为0,说明路径错误或目录结构不符合要求,需要重新核对。

3. 修正预测参数与补全依赖

  • 原代码未导入numpy,需添加import numpy as np
  • 不要硬编码steps参数(原代码中的16042),应根据实际加载的图片数和batch_size计算,避免数量不匹配:
    steps = image_generator.samples // image_generator.batch_size
    if image_generator.samples % image_generator.batch_size != 0:
        steps += 1
    

修正后的完整代码

import numpy as np
from keras.applications import MobileNet
from keras.preprocessing.image import ImageDataGenerator
from keras.applications.mobilenet import preprocess_input

# Load the MobileNet model
base_model = MobileNet(weights='imagenet', include_top=False)

# Define the data generator
data_generator = ImageDataGenerator(preprocessing_function=preprocess_input)

# Create the data generator for the custom dataset
image_generator = data_generator.flow_from_directory(
        'C:/Users/mahit/OneDrive/Pictures/Desktop/DATA AND VIDEOS/16k_images',
        target_size=(224, 224),
        batch_size=32,  # 增大batch_size提升特征提取效率
        class_mode=None,
        shuffle=False)

# 验证图片加载情况
print(f"Loaded {image_generator.samples} images")
if image_generator.samples == 0:
    raise ValueError("未找到任何图片,请检查目录结构或路径是否正确。")

# 计算所需步数
steps = image_generator.samples // image_generator.batch_size
if image_generator.samples % image_generator.batch_size != 0:
    steps += 1

# 提取图像特征
image_features = base_model.predict(image_generator, steps=steps)

# 保存特征文件
np.save('mobilenet_image_features.npy', image_features)

内容的提问来源于stack exchange,提问作者MAHITHA POTTI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:20:25