前提・実現したいこと
参考サイト
このサイトを参考にし自分で用意したxとy座標のデータ(歩いた軌跡)を用いたディープラーニングをし行動予測をしようとしていました。合っているのかはわかりませんが自分の用意したデータに変えて実行してみたのでプロットをしてみようと思ったところ以下のようなエラーメッセージが出てきました。
発生している問題・エラーメッセージ
Length mismatch: Expected axis has 2 elements, new values have 1 elements
該当のソースコード
python3
1 2//--------------- 3def _load_data(data, n_prev = 20): 4 """ 5 data should be pd.DataFrame() 6 """ 7 8 docX, docY = [], [] 9 for i in range(len(data)-n_prev): 10 docX.append(data.iloc[i:i+n_prev].as_matrix()) 11 docY.append(data.iloc[i+n_prev].as_matrix()) 12 alsX = np.array(docX) 13 alsY = np.array(docY) 14 15 return alsX, alsY 16 17def train_test_split(df_posixy, test_size=0.1, n_prev = 20): 18 """ 19 This just splits data to training and testing parts 20 """ 21 ntrn = round(len(df_posixy) * (1 - test_size)) 22 ntrn = int(ntrn) 23 X_train, y_train = _load_data(df_posixy.iloc[0:ntrn], n_prev) 24 X_test, y_test = _load_data(df_posixy.iloc[ntrn:], n_prev) 25 26 return (X_train, y_train), (X_test, y_test) 27 28length_of_sequences = 20 29(X_train, y_train), (X_test, y_test) = train_test_split(df_posixy, n_prev =length_of_sequences) 30 31from keras.models import Sequential 32from keras.layers.core import Dense, Activation 33from keras.layers.recurrent import LSTM 34 35 36in_out_neurons = 2 37hidden_neurons = 500 38 39model = Sequential() 40model.add(LSTM(hidden_neurons, batch_input_shape=(None, length_of_sequences, in_out_neurons), return_sequences=False)) 41model.add(Dense(in_out_neurons)) 42model.add(Activation("linear")) 43model.compile(loss="mean_squared_error", optimizer="rmsprop" , metrics=['accuracy']) 44model.fit(X_train, y_train, batch_size=600, nb_epoch=15, validation_split=0.05) 45 46//---------ここまでは実行できた 47 48//以下プロットをしようとしてエラーが出た部分 49predicted = model.predict(X_test) 50dataf = pd.DataFrame(predicted[:100]) 51dataf.columns = ["predict"] 52dataf["input"] = y_test[:100] 53dataf.plot(figsize=(15, 5))
自分で用意したデータ
454行続く
補足情報
そもそもちゃんとできているのかがわからないため、間違っているところがありましたらお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。