(三)重构ResNet50以诊断COVID-19
目录
重构基础模型
冻结权重
下一步
- 下载源 - 300.4 KB
在本系列文章中,我们将应用深度学习网络ResNet50来诊断胸部X射线图像中的Covid-19。我们将使用Python的TensorFlow库在Jupyter Notebook上训练神经网络。
此项目所需的工具和库是:
IDE:
- Jupyter Notebook
库:
- TensorFlow 2.0
- Keras
- NumPy
- Matplotlib
- CV2
我们假设您熟悉使用Python和Jupyter notebook进行深度学习。如果您不熟悉Python,请从本教程开始。如果您还不熟悉Jupyter,请从这里开始。
在上一篇文章中,我们加载了基础模型并展示了它的层。现在,我们将使这个基础模型适合新的分类任务:COVID-19和正常胸部X射线。我们将使用ResNet50模型和一个包含 2,484张图像的数据集——与ImageNet相比,这是一个小数据集。为了使我们的模型适合上述新任务,我们需要:
- 去掉网络的全连接层,增加一个全局平均层来压缩所有的特征图
- 用新层替换基础模型的全连接层
- 添加一个新的密集输出层,其中有两个节点代表两个目标类别:COVID-19和Normal
- 在特征提取部分冻结预训练层的权重,并随机化新的全连接层的权重
- 训练ResNet50只更新全连接层的权重
重构基础模型
如上所述,重塑我们的ResNet50以应用迁移学习的第一步是移除完全连接的层并添加一个全局平均池化层,该层用于压缩来自基础模型的所有特征图。此外,使用了两个密集层——一个有512个节点,另一个有2个代表两个目标类。
x = base_model.output
x = tf.keras.layers.GlobalAveragePooling2D()(x)x = tf.keras.layers.Dense(1024, activation='relu')(x)
x = tf.keras.layers.Dense(1024, activation='relu')(x)
x = tf.keras.layers.Dense(1024, activation='relu')(x)
x = tf.keras.layers.Dense(512, activation='relu')(x)
preds = tf.keras.layers.Dense(2, activation ='softmax')(x)
现在,我们可以使用新结构创建一个模型,其中包含基础模型(特征提取部分)、新输入数据和输出结构(preds)。
model = tf.keras.models.Model(inputs=base_model.input, outputs=preds)
print(model.summary())
图 5 显示了重塑后的模型与基础模型相似。不同之处在于添加的全局平均池化层和一些完全连接的密集层,它们改变了网络输出以适应我们新的目标分类任务。
图 5:重塑的 ResNet50模型的快照
冻结权重
现在是时候在全局平均池化层之前冻结所有层的权重了。
我们将使用在上一篇文章中使用的相同代码来帮助我们枚举层,然后我们将通过将它们设置为“False”来冻结它们。
for i, layer in enumerate(model.layers):print(i, layer.name)for layer in model.layers[:175]:layer.trainable = False
在冻结层的权重后,我们将通过将新添加的层设置为“True”来将它们设置为可训练的。
for layer in model.layers[175:]:layer.trainable = True
下一步
在接下来的文章中,我们将调整我们ResNet50模型。敬请关注!
codeproject.com/Articles/5294463/Restructuring-ResNet50-to-Diagnose-COVID-19
(三)重构ResNet50以诊断COVID-19相关推荐
- (四)微调ResNet50以诊断COVID-19
目录 训练模型 评估模型 渐变权重类激活映射(Grad-Cam) 下一步 下载源300.4 KB 在本系列文章中,我们将应用深度学习(DL)网络ResNet50来诊断胸部X射线图像中的Covid-19 ...
- covid 19如何重塑美国科技公司的工作文化
未来 , 技术 , 观点 (Future, Technology, Opinion) Who would have thought that a single virus would take dow ...
- stata中心化处理_带有stata第2部分自定义配色方案的covid 19可视化
stata中心化处理 This guide will cover an important, yet, under-explored part of Stata: the use of custom ...
- 【李宏毅《机器学习》2022】作业1:COVID 19 Cases Prediction (Regression)
文章目录 [李宏毅<机器学习>2022]作业1:COVID 19 Cases Prediction (Regression) 作业内容 1.目标 2.任务描述 3.数据 4.评价指标 代码 ...
- 【深度学习项目三】ResNet50多分类任务【十二生肖分类】
相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...
- JVM(二十二) -- 性能监控与调优(三) -- JVM监控及诊断工具--GUI篇
1.工具概述 1.1 图形化总和诊断工具: JDK自带的工具 第三方工具 2. jConsole(了解) 从java5开始,在JDK中自带的java监控和管理控制台. 用于对JVM中内存.线程和类等的 ...
- ikeas电子商务在covid 19时期就已经很糟糕了,它绝对崩溃了
By Mark Wilson 马克·威尔逊(Mark Wilson) Ikea has long known the shortcomings of its business. The world's ...
- 三大运营商已确定在19个城市启用5G网络
5G网络建设提上议程已久,2017年中开始,三大运营商已经在13座城市陆续开展5G试点,包括北上广深.杭州.武汉.成都.天津.南京等城市. 5G特点 而近日又传来捷报!三大运营商第一批5G网络覆盖城市 ...
- covid 19个案例数据如何收集
This week, health informatics became a hot topic in the US as the responsibility for collecting COVI ...
最新文章
- 嵌入式系统linux之光标隐藏解决
- CCNA Discovery第二学期 (版本 4.1)
- 新项目UX设计0到1的正确开启方式
- 作为一名后端开发者,你需要学习和掌握的技术栈都有哪些呢?
- arcgis python脚本筛选与线共边的面_ArcGis Python脚本——遍历输出面或折线要素的折点坐标...
- 【软件开发底层知识修炼】十八 快速学习GDB调试五 使用GDB进行调试的一些小技巧
- Yii2.0 rules验证规则大全
- 软件架构 —— 消息范式
- 将Excel(.xlsx)中的数据导入到数据库中
- css 布局什么时候用百分比_用手机拍视频学会这个布局方法,拍什么都好看
- VS调试按钮和运行按钮无法使用
- linux 卸载nvidia显卡驱动,Ubuntu 16.04 卸载Nvidia显卡驱动和cuda
- html5如何直接源码,html5源码可以直接使用吗
- sm缩写代表什么意思_狗狗各种表情都分别代表着什么意思
- 2020switch电信最快的dns_《2020switch电信最快的dns》电影_2020switch电信最快的dns正片免费观看-深圳市创业发科技有限公司...
- EV录屏怎么把自己的摄像头放进去,摄像头好的,但是人像很花,看不清人脸
- ACT - 动作游戏
- c语言程序中复合句用什么表示,c语言程序设计(包云)c第1章概述
- 爬美女图的的脚本分享, 灯灯灯噔....
- Android - 游戏中的声音
热门文章
- html日期选择格式 now,JavaScript的Date.now()方法怎么用?
- windowswps怎么以文件形式发送_wps怎么以文件形式分享
- python mvc框架_MVC其实很简单(Django框架)
- mysql server8 jdbc_mysql8.0 jdbc连接注意事项
- python 调用gpu算力_数据科学家需要算力,GPU 如何实现?-控制器/处理器-与非网...
- 四边形可以分为几类_展台设计搭建可以分为哪几类?
- 蓝色中国风传统图案背景素材
- 别找了,你要的中国民间神话故事在这里!
- 圣诞节海报设计需要的手写字体素材
- UI设计新趋势|拟物风格UI设计素材模板