Keras: Компиляция модели дает "Индекс 200005 выходит за границы для оси 0 с размером 200000" Ошибка - PullRequest
0 голосов
/ 21 февраля 2019

Я использую Климатические данные Джены, на которые моя книга дает ссылку.У меня есть это ниже;https://s3.amazonaws.com/keras-datasets/jena_climate_2009_2016.csv.zip


Я пытался связываться с ним, но я понятия не имею, почему индекс превышает 200000. Я не уверен, почему он достигает 200005, так как мои данные обучения имеют длину 200001 наблюдений.

Я также получил сообщение об ошибке: «Индекс 200000 выходит за пределы оси 0 с размером 200000».

Данные представляют собой 420551x14 данных о погоде.Мой код выглядит следующим образом:

import pandas as pd
import numpy as np
import keras

data = pd.read_csv("D:\\School\\Spring_2019\\GraduateProject\\jena_climate_2009_2016_Data\\jena_climate_2009_2016.csv")
data = data.iloc[:,data.columns!='Date Time']
data

# Standardize the Data
from sklearn import preprocessing
data = preprocessing.scale(data[:200000])

# Build Generators
from keras.preprocessing.sequence import TimeseriesGenerator
target = data[:,1] # Should target be scaled?
# ? Do I need to remove targets from the data variable?
trainGen = TimeseriesGenerator(data,targets=target,length=1440,
                               sampling_rate=6,
                               batch_size=190,
                               start_index=0,
                               end_index=200000)
valGen = TimeseriesGenerator(data,targets=target,length=1440,
                             sampling_rate=6,
                             batch_size=190,
                               start_index=199999,
                               end_index=300000)
testGen = TimeseriesGenerator(data,targets=target,length=6,
                              batch_size=128,
                             start_index=300000,
                             end_index=420550)

from keras.models import Sequential
from keras import layers
from keras.optimizers import RMSprop
from keras.layers import LSTM

#Flatten part is: 240 = lookback//step. This is 1440/6 because we are looking at 
model = Sequential()
model.add(layers.Flatten(input_shape=(240,data.shape[-1])))
model.add(layers.Dense(32,activation='relu'))
model.add(layers.Dense(1))

val_steps = 300000-200001-1440
model.compile(optimizer=RMSprop(),loss='mae')
history = model.fit_generator(trainGen,
                             steps_per_epoch=250,
                             epochs=20,
                             validation_data=valGen,
                             validation_steps=val_steps)

Дайте мне знать, если вам нужно что-то еще, и заранее большое спасибо.

...