设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

使用深度学习检测疟疾(8)

发布时间:2019-05-24 20:19 所属栏目:21 来源:Dipanjan (dj) Sarkar
导读:从整个输出可以明显看出,在我们的模型中我们有了很多层,我们将只利用 VGG-19 模型的冻结层作为特征提取器。你可以使用下列代码来验证我们的模型有多少层是实际可训练的,以及我们的网络中总共存在多少层。 print(

从整个输出可以明显看出,在我们的模型中我们有了很多层,我们将只利用 VGG-19 模型的冻结层作为特征提取器。你可以使用下列代码来验证我们的模型有多少层是实际可训练的,以及我们的网络中总共存在多少层。

  1. print("Total Layers:", len(model.layers))
  2. print("Total trainable layers:",
  3. sum([1 for l in model.layers if l.trainable]))
  4.  
  5. # Output
  6. Total Layers: 28
  7. Total trainable layers: 6

我们将使用和我们之前的模型相似的配置和回调来训练我们的模型。参考我的 GitHub 仓库以获取训练模型的完整代码。我们观察下列图表,以显示模型精确度和损失曲线。

使用深度学习检测疟疾

冻结的预训练的 CNN 的学习曲线

这表明我们的模型没有像我们的基础 CNN 模型那样过拟合,但是性能有点不如我们的基础的 CNN 模型。让我们保存这个模型,以备将来的评估。

  1. model.save('vgg_frozen.h5')

模型 3:使用图像增强来微调预训练的模型

在我们的最后一个模型中,我们将在预定义好的 VGG-19 模型的最后两个块中微调层的位权。我们同样引入了图像增强的概念。图像增强背后的想法和其名字一样。我们从训练数据集中载入现有图像,并且应用转换操作,例如旋转、裁剪、转换、放大缩小等等,来产生新的、改变过的版本。由于这些随机转换,我们每次获取到的图像不一样。我们将应用 tf.keras 中的一个名为 ImageDataGenerator 的优秀工具来帮助构建图像增强器。

  1. train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255,
  2. zoom_range=0.05,
  3. rotation_range=25,
  4. width_shift_range=0.05,
  5. height_shift_range=0.05,
  6. shear_range=0.05, horizontal_flip=True,
  7. fill_mode='nearest')
  8.  
  9. val_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255)
  10.  
  11. # build image augmentation generators
  12. train_generator = train_datagen.flow(train_data, train_labels_enc, batch_size=BATCH_SIZE, shuffle=True)
  13. val_generator = val_datagen.flow(val_data, val_labels_enc, batch_size=BATCH_SIZE, shuffle=False)

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读