Какую функцию потерь использовать для многоцелевой регрессии?
есть задача написать модель регрессии с несколькими выходами (4) с помощью фреймворка keras Пытался скомпилировать модель с функцией потерь mse, но выдает ошибку:
ValueError: A target array with shape (50, 1) was passed for an output of shape (None, 4) while using as loss mean_squared_error. This loss expects targets to have the same shape as the output.
Искал в интернете, но не смог найти подходящую информацию Собственно и вопрос: какую функцию потерь использовать?
Вот модель:
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation="relu", input_shape=(200, 200, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation="relu"))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation="relu"))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation="relu"))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation="relu"))
model.add(layers.Dense(4))
model.compile(optimizer="rmsprop", loss="mse", metrics=["mae"])
Ответы (1 шт):
А вам поставлена учебная задача использовать именно keras? Потому как в sklearn есть чудненькая функция MultiOutputRegressorдля построения именно многоцелевой регрессии. С автоматическим определением функции детерминации в качестве метрики.