Я пытаюсь выполнить двоичную классификацию с помощью RNN с тензорным потоком. Ярлыки моих обучающих и тестовых данных - 0 и 1. Когда я пытаюсь использовать свою RNN на моей готовой модели, она возвращает почти одинаковые прогнозы для каждой отдельной выборки:
model.predict(holdout_x[400:500])
array([[-4.116061 , -1.3410028],
[-4.1405125, -1.3521721],
[-4.171639 , -1.3665637],
[-4.1515126, -1.356805 ],
[-4.1466017, -1.3546 ],
[-4.1306634, -1.3479614],
[-4.1259437, -1.3455958],
[-4.1161146, -1.3414239],
[-4.135389 , -1.3504343],
[-4.1410503, -1.3527975],
[-4.1413574, -1.3528765],
[-4.1483955, -1.3562942],
[-4.208541 , -1.383785 ],
[-4.212775 , -1.3856986],
[-4.2415767, -1.3998709],
[-4.250041 , -1.4033642],
[-4.2150397, -1.3866954],
[-4.2094893, -1.3843822],
[-4.1996937, -1.380172 ],
[-4.0357003, -1.3077384],
[-4.030937 , -1.3050178],
[-4.0273657, -1.3041242],
[-4.0044518, -1.2939129],
[-4.003211 , -1.2922926],
[-4.015193 , -1.2991027],
[-3.9627366, -1.2757865],
[-3.9252415, -1.2586563],
[-3.936089 , -1.265475 ],
[-3.8994193, -1.2497959],
[-3.918683 , -1.2593002],
[-3.7673016, -1.1924615],
[-3.7568831, -1.1912583]], dtype=float32)
Вот как моя модель смотрит:
model = tf.keras.Sequential()
model.add(keras.layers.LSTM(200, input_shape=(200, 7), return_sequences=True))
model.add(keras.layers.LSTM(200, input_shape=(200, 7), return_sequences=True))
model.add(keras.layers.LSTM(200))
# Add a Dense layer with 10 units.
model.add(keras.layers.Dense(2))
model.summary()
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Как я могу этого не допустить?