向 U_Net Segmentation_Models 添加 Dropout 层

Posted

技术标签:

【中文标题】向 U_Net Segmentation_Models 添加 Dropout 层【英文标题】:Adding Dropout Layers to U_Net Segmentation_Models 【发布时间】:2021-12-12 01:41:06 【问题描述】:

我正在使用 U_Net 分割模型与 Kersa 和 Tensorflow 2 进行医学图像分割。我想在模型中添加一个 dropout,但我不知道在哪里添加它? 有谁可以帮忙?

谢谢

【问题讨论】:

【参考方案1】:

是的,在 unet 的实现中没有 dropout 层,但是你可以使用正则化器

set_regularization(model, kernel_regularizer=keras.regularizers.l2(0.001),bias_regularizer=keras.regularizers.l2(0.001))

您也可以尝试数据增强。但是,如果需要添加 dropout,您可以在某些层之后停止并在其后添加您想要的 dropout 层,如下所示:

model = sm.Unet(......)
model_input = model.input
model_output = model.get_layer('final_conv').output (any layer you want)
#add dropout
model_output = keras.layers.Dropout(0.3)(model_output)
#add activation
output = keras.layers.Activation(activation, name=activation)(model_output)
model_dp = keras.models.Model(model_input, output)

【讨论】:

谢谢。 .我正在构建自己的 Unet,而不是使用 TF 中已经构建的 Unet。那么我可以在任何图层之后添加它吗?并在编码器和解码器中?

以上是关于向 U_Net Segmentation_Models 添加 Dropout 层的主要内容,如果未能解决你的问题,请参考以下文章

砍树树的豁口向东,树最后向哪边倒?砍树树的豁口向东,树最后向哪边倒?

SPARK的计算向量化-已有的向量化项目

将数组向右而不是向左旋转

前向链接与后向链接

3、Kafka生产者-向Kafka写入数据

Matlab训练多层神经网络