Ich verwende ein Keras Sequential-Modell, bei dem die Eingaben und Beschriftungen für jeden Lauf identisch sind. Keras verwendet ein Tensorflow-Backend.Kann ich Keras Training deterministisch durchführen?
Ich habe die Ebenenaktivierungen auf "Nullen" gesetzt und Batch-Shuffling während des Trainings deaktiviert.
model = Sequential()
model.add(Dense(128,
activation='relu',
kernel_initializer='zeros',
bias_initializer='zeros'))
...
model.compile(optimizer='rmsprop', loss='binary_crossentropy')
model.fit(x_train, y_train,
batch_size = 128, verbose = 1, epochs = 200,
validation_data=(x_validation, y_validation),
shuffle=False)
ich auch Numpy des random()
Methode Impfen habe versucht:
np.random.seed(7) # fix random seed for reproducibility
Mit der oben an Ort und Stelle erhalte ich immer noch unterschiedliche Genauigkeit und Verlustwerte nach dem Training.
Fehle ich etwas oder gibt es keine Möglichkeit, die Unterschiede zwischen den Trainings vollständig zu beseitigen?
[Vielleicht relevant ] (https://github.com/fchollet/keras/issues/2280) – sascha
Danke - yep, das ist ein bekanntes/offenes Problem. – RobertJoseph