我试图在标记的图像数据上实现一个UNet模型。数据集包含大约10,000幅图像及其各自的掩码(有色-RGB)。
图像尺寸: 500×500×3
面具不是黑白的,它们是彩色的(RGB),有3个类(技术上是4个):
这是模型的最后两个CONV块的代码:
model = Conv2D(64,(3,3),strides=(1, 1),padding='same')(concat_5)
model = LeakyReLU(0.1)(model)
model = BatchNormalization()(model)
model = Conv2D(4,(3,3),strides=(1, 1),padding='same', activation="softmax")(model)
model = Model(base_model.input,model)模型架构:
Model: "functional_1"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_1 (InputLayer) [(None, 500, 500, 3) 0
__________________________________________________________________________________________________
block1_conv1 (Conv2D) (None, 500, 500, 64) 1792 input_1[0][0]
__________________________________________________________________________________________________
block1_conv2 (Conv2D) (None, 500, 500, 64) 36928 block1_conv1[0][0]
__________________________________________________________________________________________________
block1_pool (MaxPooling2D) (None, 250, 250, 64) 0 block1_conv2[0][0]
__________________________________________________________________________________________________
block2_conv1 (Conv2D) (None, 250, 250, 128 73856 block1_pool[0][0]
__________________________________________________________________________________________________
block2_conv2 (Conv2D) (None, 250, 250, 128 147584 block2_conv1[0][0]
__________________________________________________________________________________________________
block2_pool (MaxPooling2D) (None, 125, 125, 128 0 block2_conv2[0][0]
__________________________________________________________________________________________________
block3_conv1 (Conv2D) (None, 125, 125, 256 295168 block2_pool[0][0]
__________________________________________________________________________________________________
block3_conv2 (Conv2D) (None, 125, 125, 256 590080 block3_conv1[0][0]
__________________________________________________________________________________________________
block3_conv3 (Conv2D) (None, 125, 125, 256 590080 block3_conv2[0][0]
__________________________________________________________________________________________________
block3_pool (MaxPooling2D) (None, 62, 62, 256) 0 block3_conv3[0][0]
__________________________________________________________________________________________________
block4_conv1 (Conv2D) (None, 62, 62, 512) 1180160 block3_pool[0][0]
__________________________________________________________________________________________________
block4_conv2 (Conv2D) (None, 62, 62, 512) 2359808 block4_conv1[0][0]
__________________________________________________________________________________________________
block4_conv3 (Conv2D) (None, 62, 62, 512) 2359808 block4_conv2[0][0]
__________________________________________________________________________________________________
block4_pool (MaxPooling2D) (None, 31, 31, 512) 0 block4_conv3[0][0]
__________________________________________________________________________________________________
block5_conv1 (Conv2D) (None, 31, 31, 512) 2359808 block4_pool[0][0]
__________________________________________________________________________________________________
block5_conv2 (Conv2D) (None, 31, 31, 512) 2359808 block5_conv1[0][0]
__________________________________________________________________________________________________
block5_conv3 (Conv2D) (None, 31, 31, 512) 2359808 block5_conv2[0][0]
__________________________________________________________________________________________________
block5_pool (MaxPooling2D) (None, 15, 15, 512) 0 block5_conv3[0][0]
__________________________________________________________________________________________________
conv2d_transpose_5 (Conv2DTrans (None, 31, 31, 256) 1179904 block5_pool[0][0]
__________________________________________________________________________________________________
leaky_re_lu_10 (LeakyReLU) (None, 31, 31, 256) 0 conv2d_transpose_5[0][0]
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 31, 31, 256) 1024 leaky_re_lu_10[0][0]
__________________________________________________________________________________________________
concatenate_5 (Concatenate) (None, 31, 31, 768) 0 batch_normalization_10[0][0]
block5_conv3[0][0]
__________________________________________________________________________________________________
conv2d_6 (Conv2D) (None, 31, 31, 512) 3539456 concatenate_5[0][0]
__________________________________________________________________________________________________
leaky_re_lu_11 (LeakyReLU) (None, 31, 31, 512) 0 conv2d_6[0][0]
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 31, 31, 512) 2048 leaky_re_lu_11[0][0]
__________________________________________________________________________________________________
conv2d_transpose_6 (Conv2DTrans (None, 62, 62, 512) 2359808 batch_normalization_11[0][0]
__________________________________________________________________________________________________
leaky_re_lu_12 (LeakyReLU) (None, 62, 62, 512) 0 conv2d_transpose_6[0][0]
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None, 62, 62, 512) 2048 leaky_re_lu_12[0][0]
__________________________________________________________________________________________________
concatenate_6 (Concatenate) (None, 62, 62, 1024) 0 batch_normalization_12[0][0]
block4_conv3[0][0]
__________________________________________________________________________________________________
conv2d_7 (Conv2D) (None, 62, 62, 512) 4719104 concatenate_6[0][0]
__________________________________________________________________________________________________
leaky_re_lu_13 (LeakyReLU) (None, 62, 62, 512) 0 conv2d_7[0][0]
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None, 62, 62, 512) 2048 leaky_re_lu_13[0][0]
__________________________________________________________________________________________________
conv2d_transpose_7 (Conv2DTrans (None, 125, 125, 512 2359808 batch_normalization_13[0][0]
__________________________________________________________________________________________________
leaky_re_lu_14 (LeakyReLU) (None, 125, 125, 512 0 conv2d_transpose_7[0][0]
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None, 125, 125, 512 2048 leaky_re_lu_14[0][0]
__________________________________________________________________________________________________
concatenate_7 (Concatenate) (None, 125, 125, 768 0 batch_normalization_14[0][0]
block3_conv3[0][0]
__________________________________________________________________________________________________
conv2d_8 (Conv2D) (None, 125, 125, 256 1769728 concatenate_7[0][0]
__________________________________________________________________________________________________
leaky_re_lu_15 (LeakyReLU) (None, 125, 125, 256 0 conv2d_8[0][0]
__________________________________________________________________________________________________
batch_normalization_15 (BatchNo (None, 125, 125, 256 1024 leaky_re_lu_15[0][0]
__________________________________________________________________________________________________
conv2d_transpose_8 (Conv2DTrans (None, 250, 250, 256 590080 batch_normalization_15[0][0]
__________________________________________________________________________________________________
leaky_re_lu_16 (LeakyReLU) (None, 250, 250, 256 0 conv2d_transpose_8[0][0]
__________________________________________________________________________________________________
batch_normalization_16 (BatchNo (None, 250, 250, 256 1024 leaky_re_lu_16[0][0]
__________________________________________________________________________________________________
concatenate_8 (Concatenate) (None, 250, 250, 384 0 batch_normalization_16[0][0]
block2_conv2[0][0]
__________________________________________________________________________________________________
conv2d_9 (Conv2D) (None, 250, 250, 128 442496 concatenate_8[0][0]
__________________________________________________________________________________________________
leaky_re_lu_17 (LeakyReLU) (None, 250, 250, 128 0 conv2d_9[0][0]
__________________________________________________________________________________________________
batch_normalization_17 (BatchNo (None, 250, 250, 128 512 leaky_re_lu_17[0][0]
__________________________________________________________________________________________________
conv2d_transpose_9 (Conv2DTrans (None, 500, 500, 128 147584 batch_normalization_17[0][0]
__________________________________________________________________________________________________
leaky_re_lu_18 (LeakyReLU) (None, 500, 500, 128 0 conv2d_transpose_9[0][0]
__________________________________________________________________________________________________
batch_normalization_18 (BatchNo (None, 500, 500, 128 512 leaky_re_lu_18[0][0]
__________________________________________________________________________________________________
concatenate_9 (Concatenate) (None, 500, 500, 192 0 batch_normalization_18[0][0]
block1_conv2[0][0]
__________________________________________________________________________________________________
conv2d_10 (Conv2D) (None, 500, 500, 64) 110656 concatenate_9[0][0]
__________________________________________________________________________________________________
leaky_re_lu_19 (LeakyReLU) (None, 500, 500, 64) 0 conv2d_10[0][0]
__________________________________________________________________________________________________
batch_normalization_19 (BatchNo (None, 500, 500, 64) 256 leaky_re_lu_19[0][0]
__________________________________________________________________________________________________
conv2d_11 (Conv2D) (None, 500, 500, 4) 2308 batch_normalization_19[0][0]
==================================================================================================
Total params: 31,948,164
Trainable params: 31,941,892
Non-trainable params: 6,272
__________________________________________________________________________________________________当我训练模型时,我会得到以下错误:
InvalidArgumentError: Incompatible shapes: [4,4,500,500] vs. [4,3,500,500]
[[node categorical_crossentropy/mul (defined at <ipython-input-15-b60b11ed9e76>:9) ]] [Op:__inference_train_function_5874]
Function call stack:
train_function模型的最后一层的维数似乎存在一些问题。我想就以下三件事提出建议:
softmax激活。categorical_crossentropy。发布于 2020-11-23 16:35:19
我认为问题来自你的课堂。它们的格式是什么?它们是单热编码的吗?
你的激活和丢失功能对我来说是正确的。我认为上一个卷积层应该使用1x1大小的过滤器(类似于最初的纸)。它确保了更好的像素分类。
https://stackoverflow.com/questions/64835509
复制相似问题