Я работаю над многоцелевой проблемой регрессии в Керасе и хотел бы, чтобы прогнозируемые значения в последнем слое были отсортированы. В настоящее время я реализую что-то вроде этого:
# Lambda layer
import tensorflow as tf
def sort_layer(tensor):
return tf.sort(tensor)
# Training model on train set
from keras.models import Sequential
from keras.layers import Dense,Lambda
model = Sequential()
model.add(Dense(100,input_dim=X_train.shape[1],activation="relu"))
model.add(Dense(150,activation="relu"))
model.add(Dense(50,activation="relu"))
model.add(Dense(y_train.shape[1],activation="linear"))
model.add(Lambda(sort_layer))
model.compile(loss="mse", optimizer="adam")
model.fit(X_train,y_train, epochs=100,batch_size=10, verbose=0)
Кажется, это не работает каждый раз, так как некоторые прогнозы не выходят отсортированными. Может кто-нибудь объяснить, что я делаю неправильно и предложить хорошее исправление?
Спасибо!