2017-02-01 2 views
0

Je sais qu'il y avait déjà quelques questions dans ce domaine, mais je ne pouvais pas trouver la réponse à mon problème. J'ai un LSTM (avec tflearn) pour un problème de régression. J'obtiens 3 types d'erreurs, peu importe le genre de modifications que je fais.Flux de données dans lstm en utilisant 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))) 

À la première manche lors du démarrage nouveau noyau i get

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

Puis, à la deuxième fois

AssertionError: Input dim should be at least 3. 

et il se réfère à la deuxième couche de LSTM. J'ai essayé d'enlever la deuxième LSTM une couche d'abandon scolaire, mais j'obtenir

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

Si vous lisez ceci, un beau jour. Je vous réponds, merci beaucoup!

Répondre

3

Ok, je l'ai résolu. Je l'affiche donc peut-être ça aide quelqu'un:

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