1.网络结构

2.构建DenseNet

import tensorflow as tf
from tensorflow import keras

搭建卷积层,每一次卷积都会对输入同输出做Concatenate,以达到重用前面层的特征的作用

def conv_fn(x,growth_rate):x1 = keras.layers.BatchNormalization()(x)x1 = keras.layers.Activation('relu')(x1)x1 = keras.layers.Conv2D(4*growth_rate,1,1,padding="same")(x1)x1 = keras.layers.BatchNormalization()(x1)x1 = keras.layers.Activation("relu")(x1)x1 = keras.layers.Conv2D(growth_rate,3,1,padding="same")(x1)return keras.layers.Concatenate(axis=3)([x,x1])

每一个Densblock模块

def dense_block(x,block,growth_rate = 32):for i in range(block):x = conv_fn(x,growth_rate)return x

Transition layers:缩减特征图大小同时为了降低复杂度,减少特征图的数量

k = keras.backend
def trans_block(x,theta):x1 = keras.layers.BatchNormalization()(x)x1 = keras.layers.Activation("relu")(x1)x1 = keras.layers.Conv2D(int(k.int_shape(x)[3]*theta),1,1)(x1)x1 = keras.layers.AveragePooling2D(pool_size=(2,2),strides=2,padding="valid")(x1)return x1

搭建DenseNet

def densenet(input_shape,block,n_classes=12):# 56*56*64x_input = keras.layers.Input(shape=input_shape)x = keras.layers.Conv2D(64,kernel_size=(7,7),strides=2,padding="same")(x_input)x = keras.layers.BatchNormalization()(x)x = keras.layers.Activation("relu")(x)x = keras.layers.MaxPooling2D(pool_size=3,strides=2,padding="same")(x)x = dense_block(x,block[0])x = trans_block(x,0.5) # 28*28x = dense_block(x,block[1])x = trans_block(x,0.5) #14*14x = dense_block(x,block[2])x = trans_block(x,0.5) # 7*7x = dense_block(x,block[3])x = keras.layers.BatchNormalization()(x)x = keras.layers.Activation("relu")(x)x = keras.layers.GlobalAveragePooling2D()(x)outputs = keras.layers.Dense(n_classes,activation="softmax")(x)model = keras.models.Model(inputs=[x_input],outputs=[outputs])return model

不同的DenseNet

model_121 = densenet([224,224,3],[6,12,24,16]) #DenseNet-121
model_169 = densenet([224,224,3],[6,12,32,32]) #DenseNet-169
model_201 = densenet([224,224,3],[6,12,48,32]) # DenseNet-201
model_269 = densenet([224,224,3],[6,12,64,48]) # DenseNet-269

重现DenseNet网络(基于keras)相关推荐

  1. 基于Keras Application和Densenet迁移学习(transfer learning)的乳腺癌图像分类模型(良性、恶性)

    基于Keras Application和Densenet迁移学习(transfer learning)的乳腺癌图像分类模型(良性.恶性) 概论: 美国癌症学会官方期刊发表<2018年全球癌症统计 ...

  2. DL之DCGAN:基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成

    DL之DCGAN:基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成 目录 基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成 设计思路 ...

  3. Keras之TCN:基于keras框架利用时间卷积网络TCN算法对上海最高气温实现回归预测(把时间序列数据集转化为有监督学习数据集)案例

    Keras之TCN:基于keras框架利用时间卷积网络TCN算法对上海最高气温实现回归预测(把时间序列数据集转化为有监督学习数据集)案例 目录 利用时间卷积网络TCN算法对上海最高气温实现回归预测(把 ...

  4. 基于GNet网络和Keras框架实战眼底图像视杯视盘分割

    个人简介:李响Superb,CSDN百万访问量博主,普普通通男大学生,目前在读软件工程,计算机视觉.深度学习和医学图像处理专攻,偶尔也搞迁移学习和全栈开发. 博客地址:lixiang.blog.csd ...

  5. 基于keras的双层LSTM网络和双向LSTM网络

    1 前言 基于keras的双层LSTM网络和双向LSTM网络中,都会用到 LSTM层,主要参数如下: LSTM(units,input_shape,return_sequences=False) un ...

  6. 基于Keras搭建LSTM网络实现文本情感分类

    基于Keras搭建LSTM网络实现文本情感分类 一.语料概况 1.1 数据统计 1.1.1 查看样本均衡情况,对label进行统计 1.1.2 计句子长度及长度出现的频数 1.1.3 绘制句子长度累积 ...

  7. 基于Keras的生成对抗网络(1)——利用Keras搭建简单GAN生成手写体数字

    目录 0.前言 一.GAN结构 二.函数代码 2.1 生成器Generator 2.2 判别器Discriminator 2.3 train函数 三.结果演示 四.完整代码 五.常见问题汇总 0.前言 ...

  8. LSTM模型(基于Keras框架)预测特定城市或者区域的太阳光照量实战

    LSTM模型(基于Keras框架)预测特定城市或者区域的太阳光照量实战 LSTM在解决序列预测的问题时非常强大,因为它们能够存储之前的信息. LSTM是一种时间递归神经网络,它出现的原因是为了解决RN ...

  9. 基于keras的深度学习基本概念讲解

    基于keras的深度学习基本概念讲解 Tensorflow1.0正式发布,谷歌首届Tensorflow开发者大会在山景召开,深度学习迎来新的高潮和狂欢.随着深度学习框架的普及和推广,会有越来越多人加入 ...

最新文章

  1. php操作mysql的常用语句(大全)
  2. java B2B2C电子商务平台分析之十一------配置中心和消息总线
  3. ListView通过自定义适配器来显示数据并对Item项以及子view项的控件实现监听.
  4. 使用C#创建SQLite控制台应用程序
  5. 爬虫学习笔记(八)—— Scrapy框架(三):CrawSpider模板
  6. vba 判断文本框内容是否为空_校验数据一旦失败,VBA代码自动控制焦点返回的另一备选方案...
  7. 赠与大学毕业生_出售,赠与或交易iPhone之前应该做什么
  8. MacOSX环境上的多个Java JDK
  9. php 字符串 中文,php 中文字符串截取乱码
  10. iOS的消息机制和消息转发
  11. 让失焦影像更加清晰 运用AI深度学习还原影像
  12. Unity学习笔记(一)—— 基础知识
  13. Matlab中插值函数汇总及使用说明
  14. Codeforces 450A. Jzzhu and Children
  15. C++ 组合 (Composition)
  16. 电脑所有的文件打开很慢
  17. 2021年危险化学品经营单位主要负责人考试总结及危险化学品经营单位主要负责人考试试题
  18. [Android源码分析]L2CAP的bind分析以及psm和cid的介绍和实现
  19. CAJ与PDF与WORD转化方法
  20. 【项目】Vue3+TS 动态路由 面包屑 查询重置 列表

热门文章

  1. 彩票学习-存储开关状态
  2. 通过twisted来自己写scrapy框架来了解scrapy源码
  3. 【励志】如何成为ACM牛人
  4. death coming一直连接服务器,Death Coming无法连接服务器如何解决
  5. ASP.NET 2.0 – 为什么替GridView的BoundField设定的DataFormatString没有效?
  6. 传智播客学习之正则表达式
  7. 案例分享:Qt出版社书籍配套U盘资源播放器软件定制(脚本关联播放器与资源文件,播放器,兼容win7,win10和mac)
  8. 最新OpenShift免费空间申请与使用教程-1G内存1G空间支持PHP和MysqL
  9. 作为一名程序员情感语句
  10. 基于PaddleHub的圣诞节祝福语