当前位置: 首页 > wzjs >正文

福建建设局网站招标哪里的网站建设好

福建建设局网站招标,哪里的网站建设好,标书制作标准,济南单位网站建设温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 本文详细介绍了一基于深度卷积神经网络的猴痘分类识别系统。采用TensorFlow和Keras框架,通过卷积神经网络(CNN)进行模型训练和预测,利用迁移学习中的…

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 

1. 项目简介

        本文详细介绍了一基于深度卷积神经网络的猴痘分类识别系统。采用TensorFlow和Keras框架,通过卷积神经网络(CNN)进行模型训练和预测,利用迁移学习中的VGG16模型实现99%的分类准确率。系统以Web平台形式呈现,允许患者上传拍摄的病患处图片进行在线测试,系统将自动识别是否患有猴痘病毒。该系统不仅体现了深度学习在医学图像分类中的应用,同时为患者提供了一种方便而准确的自我诊断服务。

2. 卷积神经网络

卷积神经网络(CNN),是一种专门用来处理具有类似网格结构的数据的神经网络。卷积网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。

卷积神经网络的基本结构由以下几个部分组成:输入层(input layer),卷积层(convolution layer),池化层(pooling layer),激活函数层和全连接层(full-connection layer)。下面以图像分类任务简单介绍一下卷积神经网络结构,具体结构如下图所示。

        核心函数包括:

1.models.Sequential():
Sequential()方法是一个容器,描述了神经网络的网络结构,在Sequential()的输入参数中描述从输入层到输出层的网络结构,可以在()中自定义搭建神经网络的网络结构,类比在桌面上拼积木的话,Sequential()相当于放置积木的桌面。

2.Conv2D():
卷积层,动态提取图片局部特征,
tf.keras.layers.Conv2D(
input_shape = (高, 宽, 通道数), #仅在第一层有
filters = 卷积核个数,对应输出的维数
kernel_size = 卷积核尺寸,(n,k),如果为一个整数则宽和高相同
strides = 卷积横向和纵向的步长,如果为一个整数则横向和纵向相同
padding = ‘SAME’ or ‘VALID’,valid:表示不够卷积核大小的块,则丢弃;same表示不够卷积核大小的块就补0,所以输出和输入形状相同
activation = ‘relu’ or ‘sigmoid’ or ‘tanh’ or ‘softmax’等
)

3.Dropout():
drop层,为了减少过拟合。Dropout的机制:在每次的神经网络的反向传播中,会随机选择一些神经元,设定其反向传播对应的参数为0,然后对于被改变后的神经网络进行反向传播,相当于在反向传播时有一些"神经元"被移除了(与L1正则化效果相同)
主要参数:dropout( rate=丢弃率) 设置为 0.1,则意味着会丢弃 10% 的神经元

4.MaxPooling2D():
layers.MaxPooling2D((2, 2))
主要参数:pool_size:2个整数的整数或元组/列表:(pool_height,pool_width),用于指定池窗口的大小;可以是单个整数,以指定所有空间维度的相同值.
平均池化层为AvgPooling2D()

5.Flatten(): 用于将输入层的数据压成一维的数据

6.Dense(): 全连接层
主要参数: layers.Dense(units, activation), #全连接层,特征进一步提取
units:输出的维度大小,即神经元的个数
activation:激活函数

7.model.summary(): 打印模型结构

3. 基于卷积神经网络的猴痘分类识别

3.1 猴痘图片数据集读取

train_loc = './datas/Train'
val_loc = './datas/Val'
test_loc = './datas/Test'# ......fig = plt.gcf()
fig.set_size_inches(10 , 10)
for idx , sample in enumerate(samples):sub = plt.subplot(4 , 3 , idx+1)img  = mpimg.imread(sample)plt.imshow(img)plt.show()

3.2 卷积神经网络模型构建

         利用Keras深度学习框架,搭建卷积神经网络模型:

model = tf.keras.models.Sequential([#data_augmentation,tf.keras.layers.Conv2D(16,(3,3), activation='relu', input_shape = (224,224,3)), ### 1st conv layertf.keras.layers.MaxPool2D((2,2), strides=(2, 2)),## 2nd conv layertf.keras.layers.Conv2D(32,(3,3), activation='relu'),tf.keras.layers.MaxPool2D((2,2), strides=(2, 2)),## 3rd conv layertf.keras.layers.Conv2D(64,(2,2), activation='relu'),tf.keras.layers.MaxPool2D((2,2), strides=(2, 2)),### 4th conv layertf.keras.layers.Conv2D(128,(2,2), activation='relu'),tf.keras.layers.MaxPool2D((2,2), strides=(2, 2)),### 5th conv layertf.keras.layers.Conv2D(32,(2,2), activation='relu'),tf.keras.layers.MaxPool2D((2,2), strides=(2, 2)),### flatten output and feed it into dense layertf.keras.layers.Flatten(),tf.keras.layers.Dense(32, activation='relu'),## output layertf.keras.layers.Dense(1, activation='sigmoid')]
)

3.3 模型训练和性能评估 

        对训练集完成 40个 epoch 的训练,同时设定 early stop 机制,并绘制模型训练损失函数和准确率曲线:

history = model.fit(train_dataset, batch_size=16,validation_data = validation_dataset,epochs=epochs,callbacks= [early_stopping_callback])print("Learning stoped on epoch:", early_stopping_callback.stopped_epoch)

         利用测试集进行模型性能评估,可以看出,测试集预测准确率为 92%,从损失函数曲线也可以看出,继续训练性能还会有所提升。

test_loss, test_acc = model.evaluate(test_dataset, verbose=2)
print('测试集预测准确率:', test_acc)
print('测试集平均损失:', test_loss)

8/8 - 0s - loss: 0.2652 - accuracy: 0.9211 - 356ms/epoch - 44ms/step
测试集预测准确率: 0.9210526347160339
测试集平均损失: 0.2651972472667694

4. 基于迁移学习的模型优化

4.1  VGG16 预训练模型

vgg16卷积神经网络总共有16层,13个卷积层和3个全连接层,第一次经过64个卷积核的两次卷积后,采用一次pooling,第二次经过两次128个卷积核卷积后,再采用pooling,再重复两次三个512个卷积核卷积后,再pooling,最后经过三次全连接。

        加载 VGG16 模型权重,并添加输出层:

# 加载模型参数
VGG16_model_con.load_weights('./vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5')
# 冻结前13层网络参数  保证加载的预训练参数不被改变
for layer in VGG16_model_con.layers[:13]:layer.trainable = False# 添加模型分类层(顶层)
VGG16_model_all = tf.keras.models.Sequential([VGG16_model_con,layers.Flatten(),                       layers.Dense(64, activation='relu'), layers.Dense(32, activation='relu'),layers.Dense(1, activation="sigmoid")               
])   
VGG16_model_all.summary()  # 打印网络结构

 4.2 模型训练和性能评估

history = VGG16_model_all.fit(train_dataset,validation_data=validation_dataset,epochs=epochs,callbacks=[checkpointer, earlystopper])# ......test_loss, test_acc = VGG16_model_all.evaluate(test_dataset, verbose=2)
print('测试集预测准确率:', test_acc)
print('测试集平均损失:', test_loss)

8/8 - 16s - loss: 5.6020e-04 - accuracy: 1.0000 - 16s/epoch - 2s/step
测试集预测准确率: 1.0
测试集平均损失: 0.0005602042656391859

         可以看出,利用VGG16进行迁移学习后,测试集的预测准确率达到了100%,效果非常好!

4.3 模型保存

        将训练好的模型权重保存为 h5 格式的权重文件:

save_id= 'vgg16_monkey_pox_best_model.h5' 
model_save_loc=os.path.join('./', save_id)
VGG16_model_all.save(model_save_loc)
print ('model was saved as ' , model_save_loc ) 

5. 猴痘分类识别系统

5.1 首页

5.2 猴痘病毒实时分类预测

6. 结论

        本文详细介绍了一基于深度卷积神经网络的猴痘分类识别系统。采用TensorFlow和Keras框架,通过卷积神经网络(CNN)进行模型训练和预测,利用迁移学习中的VGG16模型实现99%的分类准确率。系统以Web平台形式呈现,允许患者上传拍摄的病患处图片进行在线测试,系统将自动识别是否患有猴痘病毒。该系统不仅体现了深度学习在医学图像分类中的应用,同时为患者提供了一种方便而准确的自我诊断服务。

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。技术交流、源码获取认准下方 CSDN 官方提供的学长 QQ 名片 :)

精彩专栏推荐订阅:

1. Python 毕设精品实战案例
2. 自然语言处理 NLP 精品实战案例
3. 计算机视觉 CV 精品实战案例

http://www.dtcms.com/wzjs/812541.html

相关文章:

  • 郴州网站建设软件定制开发制作wordpress 默认搜索引擎
  • 网站营销是什么双语外贸网站源码
  • 网站举报电话是多少网页设计师证书含金量高吗
  • 赣州稳稳科技有限公司不改变网站怎么做关键词优化
  • 房产网站模板wordpress评论框提示
  • 出名的网站制作正规公司免费网络验证
  • wordpress建站系统西安模板建网站
  • 杭州网站开发设计网页设计购物网站模板
  • 网站要怎么创建用python做的网站模板
  • 网站建设邀标方案python基础教程pdf第三版
  • 郑州企业建站详情偃师建设局网站
  • 网站建设定制单网站设计 广西
  • seo 网站案例南京做网站咨询南京乐识
  • 镇网站制作价格免费公司起名网大全
  • 网站建设策划书 范文邢台网站维护
  • 织梦dede建站教程视频国家免费职业培训平台
  • 做网站开发面临的困难有哪些ui的设计网站
  • 营销型网站源码番禺电商网站建设
  • 百色住房和城乡建设部网站怎么做网页赚取点击率从而赚钱
  • 酒店网站的设计摘要什么是网站主题
  • 做网站是自学app开发难吗
  • 网站直播怎么做seo是什么意思的缩写
  • wordpress用法手机网站如何优化
  • 外贸网站建设需要多少钱手机网站解析
  • 为什么自己做的网站老是404错误wordpress除了写博客
  • 景德镇做网站竞品网站分析
  • 昆山网站设计公司软件制作下载
  • 主流建站开源程序有哪些毕设做网站有什么题目
  • 郑州哪些公司做网站比较好佛山市品牌网站建设公司
  • 建立主题网站的一般步骤私密浏览器免费版图片