title: python RNN LSTM error
body: <p>This is a recurrent neural network LSTM model meant to predict the future values of forex market movement.</p>
  
  <p>The data set shape is (1713, 50), the first column is the Date time index and the others are numeric values.
  but right after printing the Training data and Validation data shapes the error start.</p>
  
  <p>When I tried to implement this code:</p>
  
  <pre><code>from sklearn.preprocessing import MinMaxScaler
  from keras.layers.core import Dense, Activation, Dropout
  from keras.layers.recurrent import LSTM
  from keras.models import Sequential
  import matplotlib.pyplot as plt
  import numpy as np
  import pandas as pd
  
  df = pd.read_csv(r"E:\Business\Stocks\StocksDF.csv", parse_dates=[0], index_col=[0], low_memory=False, dtype='object')
  features = len(df.columns)
  val_ratio = 0.2
  epochs = 500
  batch_size = df.__len__()
  sequence_length = 822
  
  data = df.as_matrix()
  data_processed = []
  for index in range(len(data) - sequence_length):
      data_processed.append(data[index: index + sequence_length])
  data_processed = np.array(data_processed)
  
  val_split = round((1 - val_ratio) * data_processed.shape[0])
  train = data_processed[:, int(val_split), :]
  val = data_processed[int(val_split):, :]
  
  print('Training data: {}'.format(train.shape))
  print('Validation data: {}'.format(val.shape))
  
  
  
  train_samples, train_nx, train_ny = train.shape
  val_samples, val_nx, val_ny = val.shape
  
  train = train.reshape((train_samples, train_nx * train_ny))
  val = val.reshape((val_samples, val_nx * val_ny))
  
  preprocessor = MinMaxScaler().fit(train)
  train = preprocessor.transform(train)
  val = preprocessor.transform(val)
  
  train = train.reshape((train_samples, train_nx, train_ny))
  val = val.reshape((val_samples, val_nx, val_ny))
  
  X_train = train[:, : -1]
  y_train = train[:, -1][:, -1]
  X_val = val[:, : -1]
  y_val = val[:, -1][:, -1]
  
  X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], features))
  X_val = np.reshape(X_val, (X_val.shape[0], X_val.shape[1], features))
  
  model = Sequential()
  model.add(LSTM(input_shape=(X_train.shape[1:]), units=100, return_sequences=True))
  model.add(Dropout(0.5))
  model.add(LSTM(2, return_sequences=False))
  model.add(Dropout(0.25))
  model.add(Dense(units=1))
  model.add(Activation("relu"))
  
  model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mae', 'mse', 'accuracy'])
  
  history = model.fit(
      X_train,
      y_train,
      batch_size=batch_size,
      epochs=epochs,
      verbose=2)
  
  preds_val = model.predict(X_val)
  diff = []
  for i in range(len(y_val)):
      pred = preds_val[i][0]
      diff.append(y_val[i] - pred)
  
  real_min = preprocessor.data_min_[104]
  real_max = preprocessor.data_max_[104]
  print(preprocessor.data_min_[:1])
  print(preprocessor.data_max_[:1])
  
  preds_real = preds_val * (real_max - real_min) + real_min
  y_val_real = y_val * (real_max - real_min) + real_min
  
  plt.plot(preds_real, label='Predictions')
  plt.plot(y_val_real, label='Actual values')
  plt.xlabel('test')
  plt.legend(loc=0)
  plt.show()
  print(model.summary())
  </code></pre>
  
  <p>I got this error:</p>
  
  <p>Using TensorFlow backend.</p>
  
  <p>Traceback (most recent call last):</p>
  
  <p>Training data: (891, 50)</p>
  
  <p>File "E:/Tutorial/new.py", line 31, in 
  Validation data: (178, 822, 50)</p>
  
  <p>train_samples, train_nx, train_ny = train.shape</p>
  
  <p>ValueError: not enough values to unpack (expected 3, got 2)</p>