[container.requirements.dataraces] / 2 говорит:
Несмотря на (17.6.5.9), реализации необходимы, чтобы избежать гонок данных, когда содержимое содержащегося объекта в разных элементах в тот же контейнер, за исключением
blockquote>vector<bool>
, изменяется одновременно.Таким образом, вы можете безопасно изменять отдельные элементы одного и того же контейнера стандартной библиотеки из отдельных потоков, за исключением случаев, когда этот контейнер является
vector<bool>
.
Идея Ankish Bansal разбить длинную последовательность на маленькие окна может быть хорошим подходом. Но вы можете захотеть сохранить всю последовательность по какой-то причине.
В этом случае вы должны установить input_shape=(None,98)
, таким образом, ваша модель принимает любую длину последовательности. (При условии, что вы не используете слой Flatten
или другой слой, для которого требуются фиксированные размеры.)
Но, если в ваших данных «более одной последовательности», вам, вероятно, следует просмотреть все, потому что число из последовательностей обычно должен быть размер партии.
Слой Keras LSTM ожидает, что на входе будет 3 димма, как (batch_size, seq_length, input_dims), но вы его неправильно присвоили. Попробуйте это
Сначала измените ваши данные следующим образом: (1,18227, 98) и набор тестов x_test измерений (1,3217, 98)
X_train = x_train.reshape(-1,98)
X_test = x_test.reshape(-1,98)
Теперь используйте выбор [113 ], я выбрал 10.
seq_length = 10
X_train1 = []
X_test1 = []
for i in range(0, X_train.shape[0] - seq_length, 1):
X_train1.append(X_train[i:i+seq_length])
X_test1.append(X_test[i:i+seq_length])
# labels.append(labels[i+seq_length-1])
import numpy as np
X_train1 = np.reshape(X_train1, (-1, seq_length, 98))
X_test1 = np.reshape(X_test1, (-1, seq_length, 98))
Теперь вы готовы идти
input_dims = 98 # an integer
seq_length = 10 # an integer
model = Sequential()
model.add(LSTM(128, activation='relu', input_shape=(seq_length, input_dims), return_sequences=True))
Вы использовали одну последовательность для своей модели, что неэффективно.