Closed nehSgnaiL closed 5 years ago
Could someone help ?
Error: ValueError: Error when checking target: expected conv2d_19 to have 4 dimensions, but got array with shape (5, 256, 256)
Summary : Layer (type) Output Shape Param # Connected to input_1 (InputLayer) (None, 256, 256, 3) 0 conv2d_1 (Conv2D) (None, 256, 256, 32) 896 input_1[0][0] conv2d_2 (Conv2D) (None, 256, 256, 32) 9248 conv2d_1[0][0] max_pooling2d_1 (MaxPooling2D) (None, 128, 128, 32) 0 conv2d_2[0][0] conv2d_3 (Conv2D) (None, 128, 128, 64) 18496 max_pooling2d_1[0][0] conv2d_4 (Conv2D) (None, 128, 128, 64) 36928 conv2d_3[0][0] max_pooling2d_2 (MaxPooling2D) (None, 64, 64, 64) 0 conv2d_4[0][0] conv2d_5 (Conv2D) (None, 64, 64, 128) 73856 max_pooling2d_2[0][0] conv2d_6 (Conv2D) (None, 64, 64, 128) 147584 conv2d_5[0][0] max_pooling2d_3 (MaxPooling2D) (None, 32, 32, 128) 0 conv2d_6[0][0] conv2d_7 (Conv2D) (None, 32, 32, 256) 295168 max_pooling2d_3[0][0] conv2d_8 (Conv2D) (None, 32, 32, 256) 590080 conv2d_7[0][0] max_pooling2d_4 (MaxPooling2D) (None, 16, 16, 256) 0 conv2d_8[0][0] conv2d_9 (Conv2D) (None, 16, 16, 512) 1180160 max_pooling2d_4[0][0] conv2d_10 (Conv2D) (None, 16, 16, 512) 2359808 conv2d_9[0][0] up_sampling2d_1 (UpSampling2D) (None, 32, 32, 512) 0 conv2d_10[0][0] concatenate_1 (Concatenate) (None, 32, 32, 768) 0 up_sampling2d_1[0][0] conv2d_8[0][0] conv2d_11 (Conv2D) (None, 32, 32, 256) 1769728 concatenate_1[0][0] conv2d_12 (Conv2D) (None, 32, 32, 256) 590080 conv2d_11[0][0] up_sampling2d_2 (UpSampling2D) (None, 64, 64, 256) 0 conv2d_12[0][0] concatenate_2 (Concatenate) (None, 64, 64, 384) 0 up_sampling2d_2[0][0] conv2d_6[0][0] conv2d_13 (Conv2D) (None, 64, 64, 128) 442496 concatenate_2[0][0] conv2d_14 (Conv2D) (None, 64, 64, 128) 147584 conv2d_13[0][0] up_sampling2d_3 (UpSampling2D) (None, 128, 128, 128 0 conv2d_14[0][0] concatenate_3 (Concatenate) (None, 128, 128, 192 0 up_sampling2d_3[0][0] conv2d_4[0][0] conv2d_15 (Conv2D) (None, 128, 128, 64) 110656 concatenate_3[0][0] conv2d_16 (Conv2D) (None, 128, 128, 64) 36928 conv2d_15[0][0] up_sampling2d_4 (UpSampling2D) (None, 256, 256, 64) 0 conv2d_16[0][0] concatenate_4 (Concatenate) (None, 256, 256, 96) 0 up_sampling2d_4[0][0] conv2d_2[0][0] conv2d_17 (Conv2D) (None, 256, 256, 32) 27680 concatenate_4[0][0] conv2d_18 (Conv2D) (None, 256, 256, 32) 9248 conv2d_17[0][0] conv2d_19 (Conv2D) (None, 256, 256, 1) 33 conv2d_18[0][0]
Total params: 7,846,657 Trainable params: 7,846,657 Non-trainable params: 0
Code: `
def unet(): inputs = Input((img_w, img_h,3))
conv1 = Conv2D(32, (3, 3), activation="relu", padding="same")(inputs) conv1 = Conv2D(32, (3, 3), activation="relu", padding="same")(conv1) pool1 = MaxPooling2D(pool_size=(2, 2))(conv1) conv2 = Conv2D(64, (3, 3), activation="relu", padding="same")(pool1) conv2 = Conv2D(64, (3, 3), activation="relu", padding="same")(conv2) pool2 = MaxPooling2D(pool_size=(2, 2))(conv2) conv3 = Conv2D(128, (3, 3), activation="relu", padding="same")(pool2) conv3 = Conv2D(128, (3, 3), activation="relu", padding="same")(conv3) pool3 = MaxPooling2D(pool_size=(2, 2))(conv3) conv4 = Conv2D(256, (3, 3), activation="relu", padding="same")(pool3) conv4 = Conv2D(256, (3, 3), activation="relu", padding="same")(conv4) pool4 = MaxPooling2D(pool_size=(2, 2))(conv4) conv5 = Conv2D(512, (3, 3), activation="relu", padding="same")(pool4) conv5 = Conv2D(512, (3, 3), activation="relu", padding="same")(conv5) up6 = concatenate([UpSampling2D(size=(2, 2))(conv5), conv4], axis=3) conv6 = Conv2D(256, (3, 3), activation="relu", padding="same")(up6) conv6 = Conv2D(256, (3, 3), activation="relu", padding="same")(conv6) up7 = concatenate([UpSampling2D(size=(2, 2))(conv6), conv3], axis=3) conv7 = Conv2D(128, (3, 3), activation="relu", padding="same")(up7) conv7 = Conv2D(128, (3, 3), activation="relu", padding="same")(conv7) up8 = concatenate([UpSampling2D(size=(2, 2))(conv7), conv2], axis=3) conv8 = Conv2D(64, (3, 3), activation="relu", padding="same")(up8) conv8 = Conv2D(64, (3, 3), activation="relu", padding="same")(conv8) up9 = concatenate([UpSampling2D(size=(2, 2))(conv8), conv1], axis=3) conv9 = Conv2D(32, (3, 3), activation="relu", padding="same")(up9) conv9 = Conv2D(32, (3, 3), activation="relu", padding="same")(conv9) conv10 = Conv2D(n_label, (1, 1), activation="sigmoid")(conv9) #conv10= Conv2D(n_label, (1, 1), activation="softmax")(conv9) model = Model(inputs=inputs, outputs=conv10) model.compile(optimizer='Adam', loss='binary_crossentropy', metrics=['accuracy']) return model
`
最后加了conv 1×1 就好了 👍
Could someone help ?
Error: ValueError: Error when checking target: expected conv2d_19 to have 4 dimensions, but got array with shape (5, 256, 256)
Summary : Layer (type) Output Shape Param # Connected to
input_1 (InputLayer) (None, 256, 256, 3) 0
conv2d_1 (Conv2D) (None, 256, 256, 32) 896 input_1[0][0]
conv2d_2 (Conv2D) (None, 256, 256, 32) 9248 conv2d_1[0][0]
max_pooling2d_1 (MaxPooling2D) (None, 128, 128, 32) 0 conv2d_2[0][0]
conv2d_3 (Conv2D) (None, 128, 128, 64) 18496 max_pooling2d_1[0][0]
conv2d_4 (Conv2D) (None, 128, 128, 64) 36928 conv2d_3[0][0]
max_pooling2d_2 (MaxPooling2D) (None, 64, 64, 64) 0 conv2d_4[0][0]
conv2d_5 (Conv2D) (None, 64, 64, 128) 73856 max_pooling2d_2[0][0]
conv2d_6 (Conv2D) (None, 64, 64, 128) 147584 conv2d_5[0][0]
max_pooling2d_3 (MaxPooling2D) (None, 32, 32, 128) 0 conv2d_6[0][0]
conv2d_7 (Conv2D) (None, 32, 32, 256) 295168 max_pooling2d_3[0][0]
conv2d_8 (Conv2D) (None, 32, 32, 256) 590080 conv2d_7[0][0]
max_pooling2d_4 (MaxPooling2D) (None, 16, 16, 256) 0 conv2d_8[0][0]
conv2d_9 (Conv2D) (None, 16, 16, 512) 1180160 max_pooling2d_4[0][0]
conv2d_10 (Conv2D) (None, 16, 16, 512) 2359808 conv2d_9[0][0]
up_sampling2d_1 (UpSampling2D) (None, 32, 32, 512) 0 conv2d_10[0][0]
concatenate_1 (Concatenate) (None, 32, 32, 768) 0 up_sampling2d_1[0][0]
conv2d_8[0][0]
conv2d_11 (Conv2D) (None, 32, 32, 256) 1769728 concatenate_1[0][0]
conv2d_12 (Conv2D) (None, 32, 32, 256) 590080 conv2d_11[0][0]
up_sampling2d_2 (UpSampling2D) (None, 64, 64, 256) 0 conv2d_12[0][0]
concatenate_2 (Concatenate) (None, 64, 64, 384) 0 up_sampling2d_2[0][0]
conv2d_6[0][0]
conv2d_13 (Conv2D) (None, 64, 64, 128) 442496 concatenate_2[0][0]
conv2d_14 (Conv2D) (None, 64, 64, 128) 147584 conv2d_13[0][0]
up_sampling2d_3 (UpSampling2D) (None, 128, 128, 128 0 conv2d_14[0][0]
concatenate_3 (Concatenate) (None, 128, 128, 192 0 up_sampling2d_3[0][0]
conv2d_4[0][0]
conv2d_15 (Conv2D) (None, 128, 128, 64) 110656 concatenate_3[0][0]
conv2d_16 (Conv2D) (None, 128, 128, 64) 36928 conv2d_15[0][0]
up_sampling2d_4 (UpSampling2D) (None, 256, 256, 64) 0 conv2d_16[0][0]
concatenate_4 (Concatenate) (None, 256, 256, 96) 0 up_sampling2d_4[0][0]
conv2d_2[0][0]
conv2d_17 (Conv2D) (None, 256, 256, 32) 27680 concatenate_4[0][0]
conv2d_18 (Conv2D) (None, 256, 256, 32) 9248 conv2d_17[0][0]
conv2d_19 (Conv2D) (None, 256, 256, 1) 33 conv2d_18[0][0]
Total params: 7,846,657 Trainable params: 7,846,657 Non-trainable params: 0
Code: `
def unet(): inputs = Input((img_w, img_h,3))
`