我正在尝试使用带有 U-net 的批量归一化层来进行分割任务。相同的层适用于 res-net、vgg、xception 等,我很好奇这是否是架构相关的问题?在训练期间一切都很好,指标会增加损失 dpor,但是一旦我尝试评估模型或预测掩码,它就会产生垃圾。即使在测试和预测期间,这些层的学习权重似乎也在不断更新。如何在keras中解决这个问题?keras 版本 = 2.2.2
我试图仅在编码器部分使用 Batch norm 层,没有帮助。我也试图设置层参数:trainable=False,没有帮助。
from keras.models import Input, Model
from keras.layers import Conv2D, Concatenate, MaxPooling2D
from keras.layers import UpSampling2D, Dropout, BatchNormalization
def conv_block(m, dim, res, do=0):
n = Conv2D(dim, 3, padding='same')(m)
n = BatchNormalization()(n)
n = keras.layers.LeakyReLU(0)(n)
n = Dropout(do)(n) if do else n
n = Conv2D(dim, 3, padding='same')(n)
n = BatchNormalization()(n)
n = keras.layers.LeakyReLU(0)(n)
return Concatenate()([m, n]) if res else n
def conv_block_bn(m, dim, res, do=0):
n = Conv2D(dim, 3, …
Run Code Online (Sandbox Code Playgroud)