2017-02-01 4 views
0

Ich weiß, es gab bereits einige Fragen in diesem Bereich, aber ich konnte die Antwort auf mein Problem nicht finden. Ich habe eine LSTM (mit tflearn) für ein Regressionsproblem. Ich bekomme 3 Arten von Fehlern, egal welche Art von Modifikationen ich mache.Feed Daten in lstm mit tflearn Python

import pandas 
import tflearn 
import tensorflow as tf 
from sklearn.cross_validation import train_test_split 


csv = pandas.read_csv('something.csv', sep = ',') 

X_train, X_test = train_test_split(csv.loc[:,['x1', 'x2', 
           'x3','x4','x5','x6', 
           'x7','x8','x9', 
           'x10']].as_matrix()) 
Y_train, Y_test = train_test_split(csv.loc[:,['y']].as_matrix()) 

#create LSTM 
g = tflearn.input_data(shape=[None, 1, 10]) 
g = tflearn.lstm(g, 512, return_seq = True) 
g = tflearn.dropout(g, 0.5) 
g = tflearn.lstm(g, 512) 
g = tflearn.dropout(g, 0.5) 
g = tflearn.fully_connected(g, 1, activation='softmax') 
g = tflearn.regression(g, optimizer='adam', loss = 'mean_square', 
        learning_rate=0.001) 

model = tflearn.DNN(g) 
model.fit(X_train, Y_train, validation_set = (Y_train, Y_test)) 

n_examples = Y_train.size 
def mean_squared_error(y,y_): 
    return tf.reduce_sum(tf.pow(y_ - y, 2))/(2 * n_examples) 

print() 
print("\nTest prediction") 
print(model.predict(X_test)) 
print(Y_test) 
Y_pred = model.predict(X_test) 
print('MSE Test: %.3f' % (mean_squared_error(Y_test,Y_pred))) 

Beim ersten Lauf, wenn neue Kernel i

erhalten Start-
ValueError: Cannot feed value of shape (100, 10) for Tensor 'InputData/X:0', which has shape '(?, 1, 10)' 

Dann beim zweiten Mal

AssertionError: Input dim should be at least 3. 

und es bezieht sich auf die zweite LSTM Schicht. Ich habe versucht, die zweite LSTM eine Dropout-Schichten zu entfernen, aber dann bekomme ich

feed_dict[net_inputs[i]] = x 
IndexError: list index out of range 

Wenn Sie diese Zeilen lesen, haben einen schönen Tag. Ich antworte dir, vielen Dank !!!!

Antwort

3

Ok, ich habe es gelöst. Ich poste es, vielleicht hilft es jemand:

X_train = X_train.reshape([-1,1,10]) 
X_test = X_test.reshape([-1,1,10])