CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下

简介: CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下

图示过程

image.png


核心代码

from keras.callbacks import CSVLogger, ModelCheckpoint, EarlyStopping

from keras.callbacks import ReduceLROnPlateau

from models.cnn import mini_XCEPTION

# parameters1、定义参数:每个batch的采样本数、训练轮数、输入shape、部分比例分离用于验证、冗长参数、分类个数、patience、do_random_crop

batch_size = 32

num_epochs = 1000

validation_split = .2

do_random_crop = False  #random crop only works for classification since the current implementation does no transform bounding boxes

patience = 100

num_classes = 2

dataset_name = 'imdb'

input_shape = (64, 64, 1)

#if判断,然后指定图像、log、loghdf5各自保存路径

if input_shape[2] == 1:

   grayscale = True

images_path = '../datasets/imdb_crop/'

log_file_path = '../trained_models/gender_models/gender_training.log'

trained_models_path = '../trained_models/gender_models/gender_mini_XCEPTION'

# data loader

data_loader = DataManager(dataset_name) #自定义DataManager函数实现根据数据集name进行加载

ground_truth_data = data_loader.get_data() #自定义get_data函数根据不同数据集name得到各自的ground truth data,

train_keys, val_keys = split_imdb_data(ground_truth_data, validation_split)

print('Number of training samples:', len(train_keys))

print('Number of validation samples:', len(val_keys))

#调用ImageDataGenerator函数实现实时数据增强生成小批量的图像数据。

image_generator = ImageGenerator(ground_truth_data, batch_size,

                                input_shape[:2],

                                train_keys, val_keys, None,

                                path_prefix=images_path,

                                vertical_flip_probability=0,

                                grayscale=grayscale,

                                do_random_crop=do_random_crop)

# model parameters/compilation2、建立XCEPTION模型并compile编译配置参数,最后输出网络摘要

model = mini_XCEPTION(input_shape, num_classes)

model.compile(optimizer='adam',

             loss='categorical_crossentropy',

             metrics=['accuracy'])

model.summary()

#3、指定要训练的数据集(gender→imdb即男女数据集)

# model callbacks

# callbacks4、回调:通过调用CSVLogger、EarlyStopping、ReduceLROnPlateau、ModelCheckpoint等函数得到训练参数存到一个list内

early_stop = EarlyStopping('val_loss', patience=patience)

reduce_lr = ReduceLROnPlateau('val_loss', factor=0.1,

                             patience=int(patience/2), verbose=1)

csv_logger = CSVLogger(log_file_path, append=False)

model_names = trained_models_path + '.{epoch:02d}-{val_acc:.2f}.hdf5'

model_checkpoint = ModelCheckpoint(model_names,

                                  monitor='val_loss',

                                  verbose=1,

                                  save_best_only=True,

                                  save_weights_only=False)

callbacks = [model_checkpoint, csv_logger, early_stop, reduce_lr]

# training model5、调用fit_generator函数训练模型

model.fit_generator(image_generator.flow(mode='train'),

                   steps_per_epoch=int(len(train_keys) / batch_size),

                   epochs=num_epochs, verbose=1,

                   callbacks=callbacks,

                   validation_data=image_generator.flow('val'),

                   validation_steps=int(len(val_keys) / batch_size))


相关文章
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
497 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
2月前
|
机器学习/深度学习 数据可视化 网络架构
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
PINNs训练难因多目标优化易失衡。通过设计硬约束网络架构,将初始与边界条件内嵌于模型输出,可自动满足约束,仅需优化方程残差,简化训练过程,提升稳定性与精度,适用于气候、生物医学等高要求仿真场景。
333 4
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
|
机器学习/深度学习 数据采集 人工智能
揭秘!47页文档拆解苹果智能,从架构、数据到训练和优化
【8月更文挑战第23天】苹果公司发布了一份47页的研究文档,深入解析了其在智能基础语言模型领域的探索与突破。文档揭示了苹果在此领域的雄厚实力,并分享了其独特的混合架构设计,该设计融合了Transformer与RNN的优势,显著提高了模型处理序列数据的效能与表现力。然而,这种架构也带来了诸如权重平衡与资源消耗等挑战。苹果利用海量、多样的高质量数据集训练模型,但确保数据质量及处理噪声仍需克服。此外,苹果采取了自监督与无监督学习相结合的高效训练策略,以增强模型的泛化与稳健性,但仍需解决预训练任务选择及超参数调优等问题。
336 66
|
9月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
787 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
机器学习/深度学习 计算机视觉 异构计算
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
|
11月前
|
机器学习/深度学习 人工智能 NoSQL
记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法
Meta研究团队开发的记忆层技术通过替换Transformer中的前馈网络(FFN),显著提升了大语言模型的性能。记忆层使用可训练的固定键值对,规模达百万级别,仅计算最相似的前k个键值,优化了计算效率。实验显示,记忆层使模型在事实准确性上提升超100%,且在代码生成和通用知识领域表现优异,媲美4倍计算资源训练的传统模型。这一创新对下一代AI架构的发展具有重要意义。
576 11
记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法
|
机器学习/深度学习
CNN网络编译和训练
【8月更文挑战第10天】CNN网络编译和训练。
222 20
|
机器学习/深度学习 数据采集 数据可视化
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
本文详细介绍如何使用PyTorch构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行图像分类。从数据预处理、模型定义到训练过程及结果可视化,文章全面展示了深度学习项目的全流程。通过实际操作,读者可以深入了解CNN在图像分类任务中的应用,并掌握PyTorch的基本使用方法。希望本文为您的深度学习项目提供有价值的参考与启示。
|
机器学习/深度学习 人工智能
清华研究登Nature,首创全前向智能光计算训练架构,戴琼海、方璐领衔
【8月更文挑战第30天】清华大学研究人员在《自然》杂志上发表了一项开创性成果,提出了一种全前向智能光计算训练架构,解决了传统光学AI方法依赖电子计算机模拟和优化的问题,实现了光学系统的自学习和自设计。该架构通过将光学系统映射到参数化神经网络中,消除了反向传播需求,展示了在多个领域的广泛应用前景,如深度光学神经网络和高分辨率散射成像等。这一成果为光学AI的发展开辟了新道路,但实际应用中仍需克服一些挑战。论文详情见:https://www.nature.com/articles/s41586-024-07687-4
308 2
|
机器学习/深度学习 分布式计算 Cloud Native
云原生架构下的高性能计算解决方案:利用分布式计算资源加速机器学习训练
【8月更文第19天】随着大数据和人工智能技术的发展,机器学习模型的训练数据量和复杂度都在迅速增长。传统的单机训练方式已经无法满足日益增长的计算需求。云原生架构为高性能计算提供了新的可能性,通过利用分布式计算资源,可以在短时间内完成大规模数据集的训练任务。本文将探讨如何在云原生环境下搭建高性能计算平台,并展示如何使用 PyTorch 和 TensorFlow 这样的流行框架进行分布式训练。
352 2