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

如何用Keras从图像文件名提取标签用于字母分类CNN训练?

实现方法

完全可以通过提取文件名的方式生成标签完成训练,具体实现步骤如下:

  • 第一步:按你现有逻辑加载训练、验证无标签数据集,同时保留文件路径映射
  • 第二步:编写标签提取函数,从文件路径中解析出对应的字母标签并转成分类可用的数值编码
  • 第三步:将原始图像数据集和标签做绑定,生成最终可用于训练的带标签数据集

完整代码示例

首先加载基础数据集:

import tensorflow as tf
import string
import os

# 定义字母到数值的映射表,a对应0,z对应25
char_to_label = {char: idx for idx, char in enumerate(string.ascii_lowercase)}
batch_size = 32 # 可按你自己的参数调整
directory = "你的数据集主目录路径"

# 加载训练集
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
    directory, label_mode=None, 
    validation_split=0.2,
    subset="training",
    seed=123,
    image_size=(32, 32),
    batch_size=batch_size
)
# 加载验证集
val_ds = tf.keras.preprocessing.image_dataset_from_directory(
    directory, label_mode=None, 
    validation_split=0.2,
    subset="validation",
    seed=123,
    image_size=(32, 32),
    batch_size=batch_size
)

再完成标签提取和数据集绑定:

def extract_label(file_path):
    # 从路径中拆分出文件名
    file_name = tf.strings.split(file_path, os.path.sep)[-1]
    # 取文件名第一个字符作为字母标签
    char = tf.strings.substr(file_name, 0, 1)
    # 转成对应的数值标签
    label = char_to_label[char.numpy().decode('utf-8')]
    return label

# 生成训练集的标签数据集
train_file_paths = train_ds.file_paths
train_labels = [extract_label(path) for path in train_file_paths]
train_label_ds = tf.data.Dataset.from_tensor_slices(train_labels)

# 生成验证集的标签数据集
val_file_paths = val_ds.file_paths
val_labels = [extract_label(path) for path in val_file_paths]
val_label_ds = tf.data.Dataset.from_tensor_slices(val_labels)

# 把原始图像数据集和标签数据集做合并,最终的数据集格式为(图像, 标签)
train_ds = tf.data.Dataset.zip((train_ds, train_label_ds))
val_ds = tf.data.Dataset.zip((val_ds, val_label_ds))

# 后续可正常添加shuffle、prefetch等数据集优化操作
train_ds = train_ds.shuffle(1000).prefetch(tf.data.AUTOTUNE)
val_ds = val_ds.prefetch(tf.data.AUTOTUNE)

注意事项

  • 如果文件名首字母存在大写情况,需要先统一转成小写再做映射
  • 如果你使用的TensorFlow版本较低,无法直接通过file_paths属性拿到路径,可以改用tf.data.Dataset.list_files先遍历所有文件,再自行拆分训练验证集,核心逻辑一致

内容的提问来源于stack exchange,提问作者khashayar ehteshami

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 14:00:03