2016-12-30 2 views
0

J'ai une image RGBI comprenant 4 bandes et je veux pouvoir classer les pixels d'image en utilisant tensorflow et deep learning en deux classes. Dans les données d'apprentissage, chaque pixel est considéré comme une observation avec 4 valeurs/caractéristiques en tant qu'intensité d'image. J'ai utilisé la fonction suivante pour créer le réseauArchitecture Tensorflow pour la classification d'image basée sur les pixels

def deep_learn(X,Y,X_test,Y_test): 

    net = input_data(shape=[None, 1,4]) 
    net = tflearn.lstm(net, 128, return_seq=True) 
    net = tflearn.lstm(net, 128) 
    net = tflearn.fully_connected(net, 2, activation='softmax') 
    net = tflearn.regression(net, optimizer='adam', 
          loss='categorical_crossentropy', name="deep") 
    model = tflearn.DNN(net, tensorboard_verbose=2) 
    model.fit(X, Y, n_epoch=1, validation_set=0.1, show_metric=True, 
       snapshot_step=100) 
    # Save model when training is complete to a file 
    model.save("deep") 
    return model 

mais je suis l'erreur suivante

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

Je ne sais pas où est le problème. Y a-t-il un avantage à utiliser Deep Neural Networks par rapport à Random Forest pour la classification par pixel? et si oui, comment puis-je faire cela en utilisant la fonction ci-dessus.

Merci.

Répondre

0

Vous devez développer les dimensions de la variable X pour tenir compte du pas de temps dans le LSTM. Au lieu de passer directement X, utilisez np.expand_dims comme -

X = np.expand_dims(X, axis=1) 
+0

qui a résolu mon problème mais j'ai une autre question. Après l'entraînement du modèle, le résultat de p.array (model.predict (x_test)) est 1 seulement. Dans un exemple où j'ai eu 4 classes d'objet et je m'attendais à ce que le résultat de cette commande soit une étiquette entre 2 et 5 mais encore une fois la sortie de la fonction de prédiction est 1. Serait-ce un problème de phase d'entraînement? – user2148425

+0

Quelle est la couche de sortie de votre NN? Il est préférable que vous rejetiez/acceptiez cette réponse et que vous la posiez dans une nouvelle question, car elle n'est pas liée. Aussi, envoyez-moi un lien vers la nouvelle question ici – martianwars

+0

Voici le lien http://stackoverflow.com/questions/41414305/wrong-output-of-prediction-function-in-tensorflow – user2148425