Как я могу отсортировать слой нейронной сети в Keras? - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю над многоцелевой проблемой регрессии в Керасе и хотел бы, чтобы прогнозируемые значения в последнем слое были отсортированы. В настоящее время я реализую что-то вроде этого:

# 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)

Кажется, это не работает каждый раз, так как некоторые прогнозы не выходят отсортированными. Может кто-нибудь объяснить, что я делаю неправильно и предложить хорошее исправление?

Спасибо!

...