代码:

import keras
import keras.backend as K
import numpy as np
from keras.datasets import fashion_mnist
from keras_drop_block import DropBlock2D(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()x_train = np.expand_dims(x_train.astype(K.floatx()) / 255, axis=-1)
x_test = np.expand_dims(x_test.astype(K.floatx()) / 255, axis=-1)y_train, y_test = np.expand_dims(y_train, axis=-1), np.expand_dims(y_test, axis=-1)train_num = round(x_train.shape[0] * 0.9)
x_train, x_valid = x_train[:train_num, ...], x_train[train_num:, ...]
y_train, y_valid = y_train[:train_num, ...], y_train[train_num:, ...]def get_dropout_model():model = keras.models.Sequential()model.add(keras.layers.Dropout(input_shape=(28, 28, 1), rate=0.3, name='Input-Dropout'))model.add(keras.layers.Conv2D(filters=64, kernel_size=3, activation='relu', padding='same', name='Conv-1'))model.add(keras.layers.MaxPool2D(pool_size=2, name='Pool-1'))model.add(keras.layers.Dropout(rate=0.2, name='Dropout-1'))model.add(keras.layers.Conv2D(filters=32, kernel_size=3, activation='relu', padding='same', name='Conv-2'))model.add(keras.layers.MaxPool2D(pool_size=2, name='Pool-2'))model.add(keras.layers.Dropout(rate=0.2, name='Dropout-2'))model.add(keras.layers.Flatten(name='Flatten'))model.add(keras.layers.Dense(units=256, activation='relu', name='Dense'))model.add(keras.layers.Dropout(rate=0.2, name='Dense-Dropout'))model.add(keras.layers.Dense(units=10, activation='softmax', name='Softmax'))model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'],)return modeldropout_model = get_dropout_model()
dropout_model.summary()
dropout_model.fit(x=x_train,y=y_train,epochs=10,validation_data=(x_valid, y_valid),callbacks=[keras.callbacks.EarlyStopping(monitor='val_acc', patience=2)]
)
dropout_score = dropout_model.evaluate(x_test, y_test)
print('Score of dropout:\t%.4f' % dropout_score[1])def get_drop_block_model():model = keras.models.Sequential()model.add(DropBlock2D(input_shape=(28, 28, 1), block_size=7, keep_prob=0.8, name='Input-Dropout'))model.add(keras.layers.Conv2D(filters=64, kernel_size=3, activation='relu', padding='same', name='Conv-1'))model.add(keras.layers.MaxPool2D(pool_size=2, name='Pool-1'))model.add(DropBlock2D(block_size=5, keep_prob=0.8, name='Dropout-1'))model.add(keras.layers.Conv2D(filters=32, kernel_size=3, activation='relu', padding='same', name='Conv-2'))model.add(keras.layers.MaxPool2D(pool_size=2, name='Pool-2'))model.add(DropBlock2D(block_size=3, keep_prob=0.8, name='Dropout-2'))model.add(keras.layers.Flatten(name='Flatten'))model.add(keras.layers.Dense(units=256, activation='relu', name='Dense'))model.add(keras.layers.Dropout(rate=0.2, name='Dense-Dropout'))model.add(keras.layers.Dense(units=10, activation='softmax', name='Softmax'))model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'],)return modeldrop_block_model = get_drop_block_model()
drop_block_model.summary()
drop_block_model.fit(x=x_train,y=y_train,epochs=10,validation_data=(x_valid, y_valid),callbacks=[keras.callbacks.EarlyStopping(monitor='val_acc', patience=2)]
)
drop_block_score = drop_block_model.evaluate(x_test, y_test)
print('Score of dropout:\t%.4f' % dropout_score[1])
print('Score of DropBlock:\t%.4f' % drop_block_score[1])

keras下的代码测试,观察dropout和dropblock之间效果,后者在minist上高百分之2效果
写法的区别:
model.add(keras.layers.Dropout(input_shape=(28, 28, 1), rate=0.3, name=‘Input-Dropout’))
model.add(DropBlock2D(input_shape=(28, 28, 1), block_size=7, keep_prob=0.8, name=‘Input-Dropout’))
具体代码:https://github.com/qingfengting2017/keras-drop-block

论文翻译:https://blog.csdn.net/weixin_37958272/article/details/108006116

dropblock代码和介绍相关推荐

  1. mysql 死锁 代码_MySQL死锁问题解决的代码详细介绍

    一次MySQL死锁问题解决 一.环境CentOS, MySQL 5.6.21-70, JPA 问题场景:系统有定时批量更新数据状态操作,每次更新上千条记录,表中总记录数约为500W左右. 二.错误日志 ...

  2. 鲲鹏代码迁移工具介绍

    鲲鹏代码迁移工具介绍 代码迁移工具介绍 代码迁移工具是什么? ✨我们为什么会需要用到代码迁移工具? ✨处理器所支持的指令集不同,意味着开发者可能需要对代码进行跨平台的迁移. 这里我们常见到便是x86平 ...

  3. 30款低代码平台介绍及目前的排名

    目前很火爆是云计算.大数据.人工智能等,而目前低代码火得发紫,查一下一此资料,发现自己7年前就用了. 一.30款低代码平台介绍 史上最全"低代码开发平台"介绍合集,2022年国内3 ...

  4. State详细代码和介绍-Topsis熵权法评分(含视频教程)、Stata灰色关联度分析

    一.topsis熵权法评分 1.数据来源:自主计算 2.时间跨度:无 3.区域范围:无 4.指标说明: 基于熵权法的topsis综合评分方法,结合了熵权法的客观求权重,以及topsis法的综合评分本教 ...

  5. LOAM 原理及代码实现介绍

    文章目录 LOAM 原理及代码实现介绍 LOAM技术点 LOAM整体框架 退化问题 代码结构 LOAM 原理及代码实现介绍 paper:<Lidar Odometry and Mapping i ...

  6. jquery实现流程图绘制工具——展现红警三建造出兵操作 ——二、代码初步介绍,项目结构与文件介绍

    目录 一.简介 二.代码初步介绍 拓展.实现红警三录像文件读取与自动分析生成流程图信息 ======================= 大爽歌作,made by big shuang ======== ...

  7. python实现红警三录像文件读取与自动分析生成流程图信息——二、项目结构与代码初步介绍

    总目录 一.简介 二.项目结构与代码初步介绍 三.拓展给mod使用 ======================= 大爽歌作,made by big shuang ================== ...

  8. Python中测试代码的介绍

    文章目录 前言 一.测试的目的 二.测试函数 1.断言方法 2.可通过的测试 3.不可通过的测试 4.添加多个测试 三.测试类 1.简单的测试类 2.含多个答案的测试类 3.setUp()方法 总结 ...

  9. css游戏代码_介绍CSSBattle-第一个CSS代码搜寻游戏

    css游戏代码 by kushagra gour 由kushagra gour 介绍CSSBattle-第一个CSS代码搜寻游戏 (Introducing CSSBattle - the first ...

最新文章

  1. ATS插件中配置文件自动更新思路
  2. MATLAB编写ode文件,MATLABODE45问题M文件为br/functiondq 爱问知识人
  3. Boost::context模块callcc的jump mov测试程序
  4. AC66U-B1) 刷梅林固件教程
  5. clock gate cell
  6. 错误:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
  7. 小米进军欧洲智能手机市场:一面是狂欢,一面是考验
  8. 三级计算机信息安全基础知识
  9. paraview热流图(2):3D glyphs representation
  10. 【个人喜好诗词之一】归去来兮辞
  11. open函数里的newline
  12. 中国大学慕课第六周编程题
  13. 安装php扩展fileinfo
  14. YOLOv5数据集划分脚本(train、val、test)
  15. 论信息系统人力资源管理
  16. 教程:从零开始 使用Python进行深度学习!
  17. 视频处理入门 | 六
  18. 计算机的指标是什么意思,评价计算机的性能指标是什么
  19. iTunes备份文件路径正确修改方法(亲测可用,2018.10.19更新)
  20. DOM常用属性【DOM】

热门文章

  1. 浅谈基于流媒体转发技术的IP数字监控系统
  2. 从长城汽车透视自主品牌:多强争霸各有所长,布局背后现格局
  3. No qualifying bean of type ‘com.nanjing.cms.mapper.CrmBannerMapper‘ available: expected at least 1 b
  4. linux网卡驱动源码分析
  5. FS78P372N单片机替代义隆EM78P372N
  6. 美国站亚马逊UL2772测试报告16 CFR PART 1512自行车安全报告办理
  7. 分布式和大数据有什么区别?
  8. 【学习笔记】DeepCrossing
  9. From line 6, column 36 to line 6, column 71: Cannot apply ‘-‘ to arguments of type ‘<VARCHAR(214748
  10. 深圳大数据培训:HDFS基本概念