Добрый день, для обучения используется keras в составе tensorflow, задача-регрессия ограничивающего прямоугольника, вот модель:
inputs = Input(shape=(300, 300, 1))
x = DepthwiseConv2D((3, 3), padding="same")(inputs)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = Conv2D(32, (1, 1), strides=2, padding="same")(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = DepthwiseConv2D((3, 3), padding="same")(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = Conv2D(64, (1, 1), strides=2, padding="same")(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = DepthwiseConv2D((3, 3), padding="same")(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = Conv2D(128, (1, 1), strides=2, padding="same")(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = DepthwiseConv2D((3, 3), padding="same")(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = Conv2D(128, (1, 1), strides=2, padding="same")(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = Flatten()(x)
x = Dense(512)(x)
out = Dense(4, activation="sigmoid")(x)
model = Model(inputs, out)
model.compile(optimizer=RMSprop(learning_rate=0.001), loss="mse", metrics=[iou], run_eagerly=True)
То есть архитектура довольно схожа с MobileNet, обучение происходит при batch_size=128 и количество тренировочных и валидационных данных 2000 и 750 соответственно Результат модели-выдача x,y верхнего левого и правого нижнего углов, все метки нормализованы между 0 и 1 (сигмоида обоснована) Тем не менее уже после первых нескольких эпох (от 1 до 3) валидационная функция потерь застревает на 0.02 (0.0199-0.0203) и никуда из этого диапазона не выходит При этом другие модели работают хорошо Подскажите пожалуйста, в чем загвоздка?