DL之Attention:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+SpatialTransformer)实现多分类预测(二)

简介: DL之Attention:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+SpatialTransformer)实现多分类预测

image.png

image.png


核心代码

   #(2)、建立ST定位网络:尝试更多的conv层,并分别在X轴和y轴上做最大池化

   # localization net. TODO: try more conv layers, and do max pooling on X- and Y-axes respectively

   locnet = Sequential()

   # locnet.add(MaxPooling2D(pool_size=(2,2), input_shape=input_shape))

   # locnet.add(Convolution2D(32, (5, 5)))

   locnet.add(Convolution2D(32, (5, 5), input_shape=input_shape))

   locnet.add(Activation('relu'))

   # locnet.add(Dropout(0.2)) # 0.2

   locnet.add(MaxPooling2D(pool_size=(2,2)))

   locnet.add(Convolution2D(64, (5, 5)))

   locnet.add(Activation('relu'))

   # locnet.add(Dropout(0.2)) # 0.3

   locnet.add(Convolution2D(64, (3, 3)))

   locnet.add(Activation('relu'))

   locnet.add(MaxPooling2D(pool_size=(2,2)))

 

   locnet.add(Flatten())

   locnet.add(Dense(50))

   locnet.add(Activation('relu'))

   locnet.add(Dense(6, weights=weights))

   print(locnet.summary())

 

 

   #(3)、建立CNN网络

   model = Sequential()

   model.add(SpatialTransformer(localization_net=locnet,

                                output_size=(30,30), input_shape=input_shape))

   # model.add(Convolution2D(32, (3, 3), padding='same'))

   # model.add(Activation('relu'))

   # model.add(MaxPooling2D(pool_size=(2, 2)))

   # model.add(Convolution2D(64, (3, 3)))

   # model.add(Activation('relu'))

   # model.add(MaxPooling2D(pool_size=(2, 2)))

   # model.add(Dropout(0.5)) # 0.25

 

   # E: removed first 3 dropout layers

   model.add(Conv2D(32, kernel_size=(3, 3), activation='relu'))

   model.add(Dropout(0.5)) # 0.5

   model.add(Conv2D(64, (3, 3), activation='relu'))

   model.add(Dropout(0.5)) # 0.5

   model.add(MaxPooling2D(pool_size=(2, 2)))

   model.add(Conv2D(64, kernel_size=(3, 3),

                    activation='relu'))

   model.add(Dropout(0.5)) # 0.5

   model.add(MaxPooling2D(pool_size=(2, 2)))

   # model.add(Conv2D(64, (3, 3), activation='relu'))

   # model.add(Dropout(0.5))

   model.add(Flatten())

   model.add(Dense(256)) # 256

   model.add(Dropout(0.5)) # 0.5

   model.add(Activation('relu'))

   model.add(Dense(nb_classes))

   model.add(Activation('softmax'))


相关文章
|
1月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
103 4
|
25天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。
|
4月前
|
数据采集 机器学习/深度学习 算法
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
173 9
|
4月前
|
机器学习/深度学习 监控 算法
R-CNN系列目标算法
8月更文挑战第12天
|
6月前
|
存储 算法 Java
Java数据结构与算法:用于高效地存储和检索字符串数据集
Java数据结构与算法:用于高效地存储和检索字符串数据集
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
176 7

热门文章

最新文章