1、retinaNN_training.py
模型Model的compile方法:

model.compile(self, optimizer, loss, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics = None, target_tensors=None)

本项目中:

model.compile(optimizer='sgd', loss='categorical_crossentropy',metrics=['accuracy'])

本函数编译模型以供训练,参数有
optimizer:优化器,为预定义优化器名或优化器对

loss:损失函数,为预定义损失函数名或一个目标函数

metrics:列表,包含评估模型在训练和测试时的性能的指标,典型用法是metrics=[‘accuracy’]如果要在多输出模型中为不同的输出指定不同的指标,可像该参数传递一个字典,例如metrics={‘ouput_a’: ‘accuracy’}

sample_weight_mode:如果需要按时间步为样本赋权(2D权矩阵),将该值设为“temporal”。默认为“None”,代表按样本赋权(1D权)。如果模型有多个输出,可以向该参数传入指定sample_weight_mode的字典或列表。在下面fit函数的解释中有相关的参考内容。

weighted_metrics: metrics列表,在训练和测试过程中,这些metrics将由sample_weight或clss_weight计算并赋权

target_tensors: 默认情况下,Keras将为模型的目标创建一个占位符,该占位符在训练过程中将被目标数据代替。如果你想使用自己的目标张量(相应的,Keras将不会在训练时期望为这些目标张量载入外部的numpy数据),你可以通过该参数手动指定。目标张量可以是一个单独的张量(对应于单输出模型),也可以是一个张量列表,或者一个name->tensor的张量字典。

kwargs:使用TensorFlow作为后端请忽略该参数,若使用Theano/CNTK作为后端,kwargs的值将会传递给 K.function。如果使用TensorFlow为后端,这里的值会被传给tf.Session.run

在Keras中,compile主要完成损失函数和优化器的一些配置,是为训练服务的。

下面的回调函数将在每个epoch后保存模型到filepath:

checkpointer = ModelCheckpoint(filepath='./'+name_experiment+'/'+name_experiment +'_best_weights.h5', verbose=1, monitor='val_loss', mode='auto', save_best_only=True)

filename:字符串,保存模型的路径
monitor:需要监视的值
verbose:信息展示模式,0或1
save_best_only:当设置为True时,将只保存在验证集上性能最好的模型
mode:‘auto’,‘min’,‘max’之一,在save_best_only=True时决定性能最佳模型的评判准则,例如,当监测值为val_acc时,模式应为max,当检测值为val_loss时,模式应为min。在auto模式下,评价准则由被监测值的名字自动推断
save_weights_only:若设置为True,则只保存模型权重,否则将保存整个模型(包括模型结构,配置信息等)
period:CheckPoint之间的间隔的epoch数

下面的回调函数是学习率调度器:

lrate_drop = LearningRateScheduler(step_decay)

schedule:函数,该函数以epoch号为参数(从0算起的整数),返回一个新学习率(浮点数)

 def step_decay(epoch):lrate = 0.01 #the initial learning rate (by default in keras)if epoch==100:return 0.005else:return lratelrate_drop = LearningRateScheduler(step_decay)

Unet实现图像分割(三)相关推荐

  1. 使用U-Net 进行图像分割

    最近做病理AI的细胞计数问题,需要对图像中的各个细胞进行分类,若采用普通的CNN+普通图像分割,估计实现效果不佳.为了解决这个问题,大致有两种方案:目标检测 和 图像分割.目标检测的算法以Faster ...

  2. nnU-Net: 基于U-Net医学图像分割技术的自适应框架

    ** nnU-Net: 基于U-Net医学图像分割技术的自适应框架 ** https://arxiv.org/pdf/1809.10486.pdf 作者:Fabian Isensee 提要 U-Net ...

  3. keras搭建Unet实现图像分割

    本文运行系统为Windows,若使用Linux请注意相关指令及操作. 目录 一.环境配置 1.创建及激活虚拟环境. 2.安装相关库 二.Unet原理讲解 1.结构简析 2.结构细述 三.模型训练及测试 ...

  4. Unet实现图像分割(一)

    在Rrtina-Unet-master文件夹下新建一个test文件夹(源代码没有这个test文件夹会报错) 将lib文件夹下的三个py文件里面的from xxx import xxx格式改成一致,就是 ...

  5. U-net进行图像分割

    数据准备 原始数据:首先准备数据,参考数据来自于 ISBI 挑战的数据集.数据可以在 这里 下载到,含30张训练图.30张对应的标签.30张测试图片,均为.tif 格式文件 程序准备 程序地址:这里 ...

  6. TensorFlow实现Unet遥感图像分割

    Unet是一种U型网络,分为左右两部分卷积,左边为下采样提取高维特征,右边为上采样并与左侧融合实现图像分割.这里使用TensorFlow实现Unet网络,实现对遥感影像的道路分割. 训练数据: 标签图 ...

  7. Tensorflow2.0 U-Net医学图像分割(胸部X光图像分割)

    1.U-Net网络结构 论文题目:<U-Net: Convolutional Networks for Biomedical Image Segmentation> 论文地址:https: ...

  8. Unet实现图像分割(四)

    configuration.txt #数据路径 以及 训练集 测试集的名字 [data paths] path_local = ./DRIVE_datasets_training_testing/ t ...

  9. Unet实现图像分割(二)

    使用了google colaboratory的免费GPU进行训练,调整了源代码的各个参数,下面是configuration.txt文件的解析: [data paths] 只有在修改了prepare_d ...

最新文章

  1. 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群
  2. Oracle 分组统计,抽取每组前十
  3. 2008-08-24
  4. 面试前抢救一下--朴素贝叶斯分类器
  5. Oracle Service Bus简介
  6. 有关系统环境变量的设置问题
  7. 基于顺序存储结构的图书信息表的创建和输出(C++)
  8. mysql一条sql更新多条数据_执行一条sql语句update多条记录实现思路
  9. 【转载】DXUT进阶
  10. 为何需要实施数据治理
  11. VDI序曲十一 微软桌面虚拟化之授权服务器
  12. 十大免费java开源商城系统
  13. freeCAD transform stepamp;amp; stp to stl logging py2exe 打包
  14. 饥饿游戏3:嘲笑鸟(下)[The Hunger Games: Mockingjay - Part 2]
  15. c语言写拼图游戏算法,[原创]拼图游戏移动算法,简单易懂
  16. Python每日一练-----Excel表序号
  17. IDA使用初探-1.启动IDA
  18. SQLServer将日期转换成字符串格式
  19. matlab 图像去白边,Matlab生成的图片如何去掉白边?
  20. 【“探索者”小车】机器人大赛“探索者”全地形小车参赛经验分享

热门文章

  1. js中!和!!的区别及用法
  2. Git tag 打标签
  3. pip 系统无法将文件移到不同的磁盘驱动器 的问题
  4. 全卷积网络(FCN)与图像分割
  5. 青龙面板薅羊毛–都爱玩(日收益2元左右)
  6. 运维Linux redis,系统运维|如何在 CentOS 7 上安装 Redis 服务器
  7. mysql 非正常关闭,centos非正常关机后,mysql竟然启动不了
  8. linux下安装mysql5.7.25详细教程
  9. 前端学习路线_前端学习路线图
  10. linux nand 坏块_linux内核中对nand的坏块管理