前提・実現したいこと
Pythonを用いてDeeplearningを行いたいです。
ログを用いて異常検知を行うことを目的に行なっているのですが、エラーが出て前に進めない状況です。
dataには列数が1106,行数が151186ある行列が入っています。
それをX_train, X_test, Y_train, Y_testに分けていきます。
これを実装するとうまくいかずエラーが出てしまう現状です
### 発生している問題・エラーメッセージ Traceback (most recent call last): File "lstm_tokutyou.py", line 73, in <module> callbacks=[early_stopping]) File "//anaconda3/lib/python3.7/site-packages/keras/engine/training.py", line 952, in fit batch_size=batch_size) File "//anaconda3/lib/python3.7/site-packages/keras/engine/training.py", line 751, in _standardize_user_data exception_prefix='input') File "//anaconda3/lib/python3.7/site-packages/keras/engine/training_utils.py", line 128, in standardize_input_data 'with shape ' + str(data_shape)) ValueError: Error when checking input: expected bidirectional_1_input to have 3 dimensions, but got array with shape (84664, 1105)V
該当のソースコード
python
1ソースコード 2import csv 3import re 4import datetime 5import time 6import numpy as np 7import matplotlib.pyplot as plt 8from keras.models import Sequential 9from keras.layers.core import Dense, Activation 10from keras.layers.recurrent import LSTM 11from keras.layers.wrappers import Bidirectional 12from keras.optimizers import Adam 13from keras.callbacks import EarlyStopping 14from sklearn import datasets 15from sklearn.model_selection import train_test_split 16from sklearn.utils import shuffle 17 18data = np.loadtxt("lstm_tokutyou1002.csv",delimiter=",") 19X = data[:,:1105] 20y = data[:,-1] 21Y = np.eye(2)[y.astype(int)] 22del y 23X_train, X_test, Y_train, Y_test = \ 24 train_test_split(X, Y, test_size=0.3) 25 26X_train, X_validation, Y_train, Y_validation = \ 27 train_test_split(X_train, Y_train, test_size=0.2) 28 29''' 30モデル設定 31''' 32n_in = 151186 33n_long = 1105 34n_hidden = 128 35n_out = 10 36 37 38def weight_variable(shape, name=None): 39 return np.random.normal(scale=.01, size=shape) 40 41 42early_stopping = EarlyStopping(monitor='val_loss', patience=10, verbose=1) 43 44model = Sequential() 45model.add(Bidirectional(LSTM(n_hidden), 46 input_shape=(n_long,n_in))) 47model.add(Dense(n_out, kernel_initializer=initializers.RandomNormal())) 48model.add(Activation('softmax')) 49 50model.compile(loss='categorical_crossentropy', 51 optimizer=Adam(lr=0.001, beta_1=0.9, beta_2=0.999), 52 metrics=['accuracy']) 53 54''' 55モデル学習 56''' 57epochs = 300 58batch_size = 250 59 60hist = model.fit(X_train, Y_train, 61 batch_size=batch_size, 62 epochs=epochs, 63 validation_data=(X_validation, Y_validation), 64 callbacks=[early_stopping]) 65 66''' 67学習の進み具合 68''' 69acc = hist.history['val_acc'] 70loss = hist.history['val_loss'] 71 72plt.rc('font', family='serif') 73fig = plt.figure() 74plt.plot(range(len(loss)), loss, 75 label='loss', color='black') 76plt.xlabel('epochs') 77plt.show() 78 79''' 80予測精度の評価 81''' 82loss_and_metrics = model.evaluate(X_test, Y_test) 83print(loss_and_metrics) 84
試したこと
ネットで調べてもいい回答が見つかりませんでした。
補足情報(FW/ツールのバージョンなど)
機種名: Mac mini
機種ID: Macmini7,1
プロセッサ名: Intel Core i7
プロセッサ速度: 3 GHz
absl-py 0.8.0
astor 0.8.0
chainer 5.1.0
cycler 0.10.0
filelock 3.0.10
gast 0.3.2
google-pasta 0.1.7
grpcio 1.23.0
h5py 2.10.0
Keras 2.3.0
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0
kiwisolver 1.1.0
Markdown 3.1.1
matplotlib 3.1.1
numpy 1.15.4
pandas 0.23.4
pip 19.1.1
protobuf 3.6.1
pyparsing 2.4.2
python-dateutil 2.7.5
pytz 2018.7
PyYAML 5.1.2
scikit-learn 0.20.1
scipy 1.1.0
setuptools 41.0.1
six 1.12.0
sklearn 0.0
tensorboard 1.14.0
tensorflow 1.14.0
tensorflow-estimator 1.14.0
termcolor 1.1.0
Werkzeug 0.15.6
wheel 0.33.4
wrapt 1.11.2
回答1件
あなたの回答
tips
プレビュー