«TypeError: Ошибка преобразования фигуры в TensorShape: только массивы размера 1 могут быть преобразованы в скаляры Python» при компиляции нейронной сети LSTM - PullRequest
0 голосов
/ 27 января 2019

В настоящее время я создаю нейронную сеть LSTM для анализа цен закрытия биржевых данных.Я получаю сообщение об ошибке:

TypeError: Error converting shape to a TensorShape: only size-1 arrays can be converted to Python scalars.

при выполнении этого кода:

from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
#take user input to replace stock to analyze
userInput = input('Stocks: \n')
days = int(input('how many time series to analyze? \n'))
#read data
data = pd.read_csv('Stocks/%s.us.txt' % userInput, usecols=[5], engine = 'python', skipfooter = 3)
#convert it into numpy array
dataSet = data.values
#scale the data into a range of 0, 1
scaling = MinMaxScaler(feature_range = (0,1))
#transform testing data to have 0 mean
dataSet = scaling.fit_transform(dataSet)
#splitting to testing and training data
trainData = int(len(dataSet) * 0.80)
testData = len(dataSet) - trainData
#time series data shaping
features = []  
labels = []  
for i in range(days, len(dataSet)):  
    features.append(dataSet[i-days:i, 0])
    labels.append(dataSet[i, 0])
#convert features and labels to numpy arrays
features, labels = np.array(features), np.array(labels)
#building LSTM model
model = Sequential()
model.add(LSTM(1, input_shape=(1, dataSet)))
model.add(Dense(1))
model.compile(optimizer = 'adam', loss = 'mse')
model.fit(trainData, testData, batch_size = 32, epochs = 10)

В этом посте здесь это объясняет, что эта проблема может возникнуть из-за индексации строк разных измерений, а не длин, но я не понимаю, как это применимо к моему коду, поскольку я никогда не индексирую ничего подобного.Я пробовал искать в других сообщениях, но ни одно из решений не относится к моей проблеме. Стоит также отметить, что ошибка восходит к строке 143 файла Anaconda3 lib, например:

File "C:\Users\me\Anaconda3\lib\site-packages\tensorflow\python\eager\execute.py", line 143, in make_shape

Почему эта ошибка появляется и как я могу ее исправить?исправить это?

...