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

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

图示过程

image.png


核心代码

def mini_XCEPTION(input_shape, num_classes, l2_regularization=0.01):

   regularization = l2(l2_regularization)

   # base

   img_input = Input(input_shape)

   x = Conv2D(8, (3, 3), strides=(1, 1), kernel_regularizer=regularization,

                                           use_bias=False)(img_input)

   x = BatchNormalization()(x)

   x = Activation('relu')(x)

   x = Conv2D(8, (3, 3), strides=(1, 1), kernel_regularizer=regularization,

                                           use_bias=False)(x)

   x = BatchNormalization()(x)

   x = Activation('relu')(x)

   # module 1

   residual = Conv2D(16, (1, 1), strides=(2, 2),

                     padding='same', use_bias=False)(x)

   residual = BatchNormalization()(residual)

   x = SeparableConv2D(16, (3, 3), padding='same',

                       kernel_regularizer=regularization,

                       use_bias=False)(x)

   x = BatchNormalization()(x)

   x = Activation('relu')(x)

   x = SeparableConv2D(16, (3, 3), padding='same',

                       kernel_regularizer=regularization,

                       use_bias=False)(x)

   x = BatchNormalization()(x)

   x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)

   x = layers.add([x, residual])

   # module 2

   residual = Conv2D(32, (1, 1), strides=(2, 2),

                     padding='same', use_bias=False)(x)

   residual = BatchNormalization()(residual)

   x = SeparableConv2D(32, (3, 3), padding='same',

                       kernel_regularizer=regularization,

                       use_bias=False)(x)

   x = BatchNormalization()(x)

   x = Activation('relu')(x)

   x = SeparableConv2D(32, (3, 3), padding='same',

                       kernel_regularizer=regularization,

                       use_bias=False)(x)

   x = BatchNormalization()(x)

   x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)

   x = layers.add([x, residual])

   # module 3

   residual = Conv2D(64, (1, 1), strides=(2, 2),

                     padding='same', use_bias=False)(x)

   residual = BatchNormalization()(residual)

   x = SeparableConv2D(64, (3, 3), padding='same',

                       kernel_regularizer=regularization,

                       use_bias=False)(x)

   x = BatchNormalization()(x)

   x = Activation('relu')(x)

   x = SeparableConv2D(64, (3, 3), padding='same',

                       kernel_regularizer=regularization,

                       use_bias=False)(x)

   x = BatchNormalization()(x)

   x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)

   x = layers.add([x, residual])

   # module 4

   residual = Conv2D(128, (1, 1), strides=(2, 2),

                     padding='same', use_bias=False)(x)

   residual = BatchNormalization()(residual)

   x = SeparableConv2D(128, (3, 3), padding='same',

                       kernel_regularizer=regularization,

                       use_bias=False)(x)

   x = BatchNormalization()(x)

   x = Activation('relu')(x)

   x = SeparableConv2D(128, (3, 3), padding='same',

                       kernel_regularizer=regularization,

                       use_bias=False)(x)

   x = BatchNormalization()(x)

   x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)

   x = layers.add([x, residual])

   x = Conv2D(num_classes, (3, 3),

           #kernel_regularizer=regularization,

           padding='same')(x)

   x = GlobalAveragePooling2D()(x)

   output = Activation('softmax',name='predictions')(x)

   model = Model(img_input, output)

   return model


相关文章
|
1月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
44 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
3月前
|
机器学习/深度学习 数据采集 人工智能
揭秘!47页文档拆解苹果智能,从架构、数据到训练和优化
【8月更文挑战第23天】苹果公司发布了一份47页的研究文档,深入解析了其在智能基础语言模型领域的探索与突破。文档揭示了苹果在此领域的雄厚实力,并分享了其独特的混合架构设计,该设计融合了Transformer与RNN的优势,显著提高了模型处理序列数据的效能与表现力。然而,这种架构也带来了诸如权重平衡与资源消耗等挑战。苹果利用海量、多样的高质量数据集训练模型,但确保数据质量及处理噪声仍需克服。此外,苹果采取了自监督与无监督学习相结合的高效训练策略,以增强模型的泛化与稳健性,但仍需解决预训练任务选择及超参数调优等问题。
150 66
|
1月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
84 0
|
14天前
|
机器学习/深度学习 自然语言处理 C++
TSMamba:基于Mamba架构的高效时间序列预测基础模型
TSMamba通过其创新的架构设计和训练策略,成功解决了传统时间序列预测模型面临的多个关键问题。
55 4
TSMamba:基于Mamba架构的高效时间序列预测基础模型
|
1月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
71 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
2月前
|
机器学习/深度学习
ACM MM24:复旦提出首个基于扩散模型的视频非限制性对抗攻击框架,主流CNN和ViT架构都防不住它
【9月更文挑战第23天】复旦大学研究团队提出了ReToMe-VA,一种基于扩散模型的视频非限制性对抗攻击框架,通过时间步长对抗性潜在优化(TALO)与递归令牌合并(ReToMe)策略,实现了高转移性且难以察觉的对抗性视频生成。TALO优化去噪步骤扰动,提升空间难以察觉性及计算效率;ReToMe则确保时间一致性,增强帧间交互。实验表明,ReToMe-VA在攻击转移性上超越现有方法,但面临计算成本高、实时应用受限及隐私安全等挑战。[论文链接](http://arxiv.org/abs/2408.05479)
74 3
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
|
2月前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
96 4
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
本文详细介绍如何使用PyTorch构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行图像分类。从数据预处理、模型定义到训练过程及结果可视化,文章全面展示了深度学习项目的全流程。通过实际操作,读者可以深入了解CNN在图像分类任务中的应用,并掌握PyTorch的基本使用方法。希望本文为您的深度学习项目提供有价值的参考与启示。
|
2月前
|
分布式计算 负载均衡 监控
p2p网络架构模型
P2P(Peer-to-Peer)模式是一种网络架构模型,在这种模型中,每个节点(peer)既是服务的提供者也是服务的消费者。这意味着每个参与的节点都可以直接与其他节点通信,并且可以相互提供资源和服务,例如文件共享、流媒体传输等。
83 6

热门文章

最新文章

下一篇
无影云桌面