2016-05-13 2 views
0

J'ai un modèle ANN et j'essaie d'obtenir les valeurs d'activation de toutes les couches cachées. J'ai formé le réseau avec une matrice de 90dim et j'ai 1 couches cachées qui est 150dim. Ma structure de modèle est une couche d'entrée de 90dim, une couche cachée de 150dim et une sortie de 90dim. J'ai formé et testé les données. Après cela, j'utilise la fonction .predict() pour prédire la sortie en utilisant mon jeu de données de test. J'alimente la sortie prédite comme entrée suivante et ainsi de suite. Maintenant, je veux obtenir la valeur d'activation des couches cachées de la fonction de prédiction. J'utilise le code suivant pour y parvenir, mais sa ne fonctionne pas:Comment puis-je obtenir la valeur d'activation de chaque couche cachée d'un ANN

write_predict_data = pd.ExcelWriter("/home/workstation/ANN/prediction_data_2.xlsx",engine="xlsxwriter") 

write_activations_data = pd.ExcelWriter("/home/rianzaman/Downloads/activition_of_hidden_node_2.xlsx",engine="xlsxwriter") 

for i in range(0, 200): 
    print("Predicting ...",) 
    next_prediction = my_model.predict(X_test, 1,) 
    output_file_data = pd.DataFrame(next_prediction) 
    output_file_data.to_excel(write_predict_data, sheet_name='Sheet1') 

    #To get activation 

    get_activations = theano.function([my_model.layers[0].input], my_model.layers[1].get_output(train=False), 
             allow_input_downcast=True) 
    activations = get_activations(next_prediction) 
    output_file_data_activation = pd.DataFrame(activations) 
    output_file_data_activation.to_excel(write_activations_data, sheet_name='Sheet1') 

X_test = next_prediction 
write_predict_data.save() 

Quand je ne suis pas l'exécution du code i m obtenir une sortie qui 90dim essentiellement je pense est le jeu de données de couches de sortie. Quelqu'un peut-il me dire quel est le problème avec le code?

Répondre

0

get_activations(next_prediction) devrait être get_activations(X_test) - vous voulez passer les entrées à get_activations, pas d'étiquettes.

+0

Eh bien, j'ai utilisé "X_test" et il semble que cela ne fonctionne pas non plus. Je ne reçois pas les données des calques masqués, mais plutôt les données de la couche de sortie. Lorsque j'écris les données de la fonction de prédiction ainsi que la fonction d'activation, les sorties sont simplement identiques aux deux fonctions. –

+0

Vous voulez probablement 'my_model.layers [0] .get_output (train = False)' au lieu de 'my_model.layers [1] .get_output (train = False)' aussi? –