2016-05-13 2 views
0

У меня есть модель ANN, и я пытаюсь получить значения активации всех скрытых слоев. Я тренировал сеть с матрицей 90dim, и у меня есть 1 скрытый слой, который равен 150dim. Моя структура модели - это один входной слой 90dim, один скрытый слой 150dim и один выход 90dim. Я подготовил и протестировал данные. После этого я использую функцию .prredict() для прогнозирования вывода с использованием моего тестового набора данных. Я питаю прогнозируемый результат как следующий вход и так далее. Теперь я хочу получить значение активации скрытых уровней функции прогнозирования. Я использую следующий код для его достижения, но он не работает:Как получить значение активации для каждого скрытого слоя 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() 

Когда я бегу код я получаю в 90dim выход, который в основном я думаю, это выходные слои набора данных. Может кто-нибудь сказать мне, что не так с кодом?

ответ

0

get_activations(next_prediction) должно быть get_activations(X_test) - Вы хотите ввести ввод в get_activations, а не этикетки.

+0

хорошо, я использовал «X_test», и кажется, что он тоже не работает. Я не получаю данные скрытых слоев, вместо этого получаю данные выходного уровня. Когда я пишу данные функции прогнозирования, а также функцию активации, выходы просто идентичны для обеих функций. –

+0

Вы, вероятно, хотите 'my_model.layers [0] .get_output (train = False)' вместо 'my_model.layers [1] .get_output (train = False)' также? –

Смежные вопросы