ValueError: Ошибка при проверке ввода: ожидалось, что lstm_1_input будет иметь 3 измерения, но получит массив с формой (6782, 36) - PullRequest
0 голосов
/ 22 марта 2019

Я пытался сделать модель распознавания действий позы человека, Я отослал эту модель

Мне нравится использовать LSTM для этой модели. Поэтому я внес некоторые изменения в train.py

Мой код поезда.py:

import pandas as pd
from enum import Enum
import numpy as np
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.layers.normalization import BatchNormalization
from keras.optimizers import Adam
from keras.models import load_model
from keras.layers import LSTM

class Actions(Enum):

    sit = 0
    stand = 1
    walk = 2
    sleep= 3

raw_data = pd.read_csv('7537real1.csv', header=0)
dataset = raw_data.values

X = dataset[0:7537, 0:36].astype(float)  
Y = dataset[0:7537, 36]

encoder_Y = [0]* 4479 + [1]* 1425 + [2] * 1164 + [3] * 468
dummy_Y = np_utils.to_categorical(encoder_Y)
X_train, X_test, Y_train, Y_test = train_test_split(X, dummy_Y, test_size=0.1, random_state=9)

model = Sequential()
model.add(LSTM(4, input_shape=(36,1)))
model.add(Dense(units=4, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=Adam(0.0001), metrics=['accuracy'])
model.fit(X_train, Y_train, batch_size=32, epochs=500, verbose=1, validation_data=(X_test, Y_test))
model.save('7537real1.h5')

Мой набор данных имеет 36 функций и атрибут класса (метки: 0,1,2,3) Всего в наборе данных 7537 записей. Когда я пытался построить модель последовательной классификации LSTM, я получил ошибку значения.

Также я прикрепил образец набора данных в виде скриншота (CSV-файл). enter image description here

Как изменить форму набора данных (массива) для этой модели и как построить последовательную модель LSTM?

...