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

开发者社区> 一个处女座的程序猿> 正文

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'))


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用LRU算法缓存图片,android 3.0
<p class="edui-filter-align-left" style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px"> 在您的UI中显示单个图片是非常简单的,如果您需要一次显示很多图片就有点复杂了。在很多情况下<br> (例如使用 ListView, GridView 或者 
1635 0
Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略
Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略
45 0
iOS中CoreData数据管理系列三——添加与查询数据
iOS中CoreData数据管理系列三——添加与查询数据
26 0
QT编写图片数据转换工具
学习QT已经一个月了,觉得QT真是个好东西,他的这种跨平台机制简直太棒了!还有QML这东西,真牛B!在这段学习期间,因为一个项目的需要,需要将图片转成数据,然后传出去,那边接收到数据后再对应转换成图片,才有了下面这个小工具,开发环境:QT 4.7.0,在LINUX下面重新编译也可以在LINUX下面运行,代码不用改!先放张截图吧。
758 0
DL之Attention:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+SpatialTransformer)实现多分类预测(一)
DL之Attention:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+SpatialTransformer)实现多分类预测
39 0
浅析图数据库 Nebula Graph 数据导入工具——Spark Writer
本文主要讲解 Nebula Graph 基于 Spark 的分布式数据导入工具—— Spark Writer,它基于 DataFrame 实现,能够将多种数据源中的数据转化为图的点和边批量导入到图数据库中
306 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载