Ich möchte Euklidische Entfernung als eine Verlustfunktion für LSTM oder RNN festlegen.Euklidische Distanzverlustfunktion für RNN (Keras)
Welche Ausgabe sollte eine solche Funktion haben: float, (batch_size) oder (batch_size, timesteps)?
Modelleingabe X_train ist (n_samples, timesteps, data_dim). Y_train hat die gleichen Abmessungen.
Beispielcode:
def euc_dist_keras(x, y):
return K.sqrt(K.sum(K.square(x - y), axis=-1, keepdims=True))
model = Sequential()
model.add(SimpleRNN(n_units, activation='relu', input_shape=(timesteps, data_dim), return_sequences=True))
model.add(Dense(n_output, activation='linear'))
model.compile(loss=euc_dist_keras, optimizer='adagrad')
model.fit(y_train, y_train, batch_size=512, epochs=10)
So sollte ich durchschnittliche Verlust über Zeitschritte Dimension und/oder batch_size?