Du kannst ein LSTM (Long short term memory) Netzwerk auf "binary_crossentropy" trainieren. Hier ein Beispiel. Zuerst versiehst du die Trainingsdaten mit Labels.
import numpy as np
from tensorflow.keras.models import Sequential, model_from_json, load_model
from tensorflow.keras.layers import LSTM, Dense
original_data = np.array([
[1, 0, 1, 1, 1, 0, 1, 1],
[1, 1, 0, 0, 1, 1, 0, 0],
[0, 1, 0, 1, 1, 1, 0, 1],
[1, 1, 1, 0, 0, 0, 1, 0],
[1, 0, 0, 1, 1, 1, 0, 0],
[1, 0, 1, 1, 1, 0, 0, 1],
[0, 0, 1, 1, 0, 1, 0, 0],
[1, 0, 1, 1, 0, 1, 1, 0],
[1, 0, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 1, 1, 0]
])
original_labels = np.array([1, 0, 1, 0, 1, 1, 0, 0, 1, 0])
data_with_labels = np.column_stack((original_data, original_labels))
data = data_with_labels[:, :-1]
labels = data_with_labels[:, -1]
Das Modell könnte so aussehen.
model = Sequential()
model.add(LSTM(16, input_shape=(data.shape[1], 1)))
model.add(Dense(1, activation='sigmoid'))
Und trainieren kannst du es mit.
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(data, labels, epochs = 100, batch_size = 1, verbose = True)