Данные относятся к записи движения предплечья, выполняющей 8 возможных жестов, у меня есть акселерометр (x, y, z), гироскоп (x, y, z) и кватернион ориентации.Я готовлю эти данные для классификации и прогнозирования с использованием модели LSTM в Керасе.Я сомневаюсь в том, как правильно отформатировать y_train, когда X_Train организован партиями.
Данные состоят из 10 функций (ускорение, гироскоп, кватернион), 71850 выборок и 9 классов (один не жестовый)и 8 жестов).Каждый жест имеет временное окно 75 сэмплов, что составляет 1,25 с.
Мой вопрос заключается в том, как адаптировать y_train к X_train.В следующем коде sf имеет форму (71850, 10) и gest (71850, 1).Я перевожу sf в X_train с формой (958, 75, 10) (партии, временные шаги, функции).Я начал строить y_train, используя вектор One-Hot-Encoding, имеющий форму (71850, 9).И вот где я в ловушке.Как отформатировать y_train, чтобы окончательно передать его в модель LSTM?Как я понимаю, это должно быть (958, 9). Значит ли это, что мне просто нужно извлекать вектор one_hot_encoding каждые 75 шагов?
sf, gest = readFileAndReturnData(0)
print(sf.shape, gest.shape)
num_classes = 9
y = keras.utils.to_categorical(gest, num_classes)
print(y.shape)
samples = list()
length = 75
n = sf.shape[0]
print('division:', n / length)
print('total samples', sf.shape[0])
print('sample error', sf.shape[0] % length)
# step over the size of data in jumps of 75
for i in range(0, n, length):
# grab from i to i + length
sample = sf[i:i + length]
samples.append(sample)
print('minibatch samples:', len(samples))
# convert list of arrays into 2d array
X_train = np.array(samples)
print(X_train.shape)
'''
(71850, 10) (71850, 1)
(71850, 9)
total samples 71850
sample error 0
minibatch samples: 958
(958, 75, 10)
'''