#IndexError: tuple index out of range

1 messages · Page 1 of 1 (latest)

pure dirge
#

Now the code:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM
from sklearn.preprocessing import MinMaxScaler
import joblib

dataset_data = pd.read_csv('../../datos_noname.csv')

dataset_data['timestamp'] = pd.to_datetime(dataset_data['fecha'] + ' ' + dataset_data['hora']).astype(np.int64) // 10 ** 9

dataset_data = dataset_data[['timestamp', 'numero']].values

scaler = MinMaxScaler(feature_range=(0, 1))
dataset_data = scaler.fit_transform(dataset_data)

time_window_val = 5

train_size = int(len(dataset_data) * 0.7)
train_data = dataset_data[:train_size]
test_data = dataset_data[train_size:]

def create_time_windows(data, time_window):
    x = []
    y = []
    for i in range(time_window, len(data)):
        x.append(data[i-time_window:i, 0])
        y.append(data[i, 1])
    x = np.array(x)
    y = np.array(y)
    x = np.reshape(x, (x.shape[0], x.shape[1], 1))
    return x, y

X_train, y_train = create_time_windows(train_data, time_window_val)
X_test, y_test = create_time_windows(test_data, time_window_val)

model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(X_train.shape[1], 1)))
model.add(LSTM(units=50))
model.add(Dense(units=1))

model.compile(optimizer='adam', loss='mean_squared_error')

history = model.fit(X_train, y_train, epochs=100, batch_size=32, validation_data=(X_test, y_test))

joblib.dump(scaler, 'models/scaler.pkl')
model.save('models/model.h5')

plt.plot(history.history['loss'], label='entrenamiento')
plt.plot(history.history['val_loss'], label='validación')
plt.title('Pérdida durante el entrenamiento')
plt.xlabel('Época')
plt.ylabel('Pérdida')
plt.legend()
plt.show()
#

Now info about error

create_time_windows
    x = np.reshape(x, (x.shape[0], x.shape[1], 1))
IndexError: tuple index out of range