Я хочу создать мобил enet для идентификации метки для изображений.
Мои формы ввода и маски: -
Проверка данных
import matplotlib.pyplot as plt
print(X_train.shape)
print(masks.shape)
( 409, 224, 224, 3) (409, 224, 224)
создать модель: -
def create_model(trainable=True,ALPHA = 1,HEIGHT_CELLS=28,WIDTH_CELLS=28):
model = MobileNet(input_shape=(IMAGE_HEIGHT, IMAGE_WIDTH, 3), include_top=False, alpha=ALPHA, weights="imagenet")
for layer in model.layers:
layer.trainable = trainable
block1 = model.get_layer("conv_pw_5_relu").output
block2 = model.get_layer("conv_pw_11_relu").output
block3 = model.get_layer("conv_pw_13_relu").output
x = Concatenate()([UpSampling2D()(block3), block2])
x = Concatenate()([UpSampling2D()(x), block1])
x = Conv2D(1, kernel_size=1, activation="sigmoid")(x)
x = Reshape((HEIGHT_CELLS, WIDTH_CELLS))(x)
return Model(inputs=model.input, outputs=x)
model = create_model (True, 1,224,224)
I хочу дополнить мою модель набором обучающих данных
model.fit(
x=X_train,
y=masks,
batch_size=1,
epochs=100,
)
, но я получил ошибку:
не может изменить тензор с 784 элементами для формирования [1 244 224 (50176 элементов) для ' {{node model_12 / reshape_14 / Reshape}} = Reshape [T = DT_FLOAT, Tshape = DT_INT32] (model_12 / conv2d_12 / Sigmoid, model_12 / reshape_14 / Reshape / shape) 'с входными формами: [1,28,28,1] , [3] и с входными тензорами, вычисленными как частичные формы: input [1] = [1,224,224].