如何获得 ANN 的每个隐藏层的激活值
How can I get the activation value of each hidden layers of an ANN
我有一个 ANN 模型,我正在尝试获取所有隐藏层的激活值。我用 90dim 矩阵训练了网络,我有 1 个 150dim 的隐藏层。我的模型结构是一个 90dim 输入层,一个 150dim 隐藏层和一个 90dim 输出层。我已经训练和测试了数据。之后我使用 .predict() 函数来预测使用我的测试数据集的输出。我将预测输出作为下一个输入,依此类推。现在我想获得预测函数隐藏层的激活值。我正在使用以下代码来实现它,但它不起作用:
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 的输出,我认为这基本上是输出层数据集。
谁能告诉我代码有什么问题吗?
get_activations(next_prediction)
应该是 get_activations(X_test)
- 你想将输入传递给 get_activations
,而不是标签。
我有一个 ANN 模型,我正在尝试获取所有隐藏层的激活值。我用 90dim 矩阵训练了网络,我有 1 个 150dim 的隐藏层。我的模型结构是一个 90dim 输入层,一个 150dim 隐藏层和一个 90dim 输出层。我已经训练和测试了数据。之后我使用 .predict() 函数来预测使用我的测试数据集的输出。我将预测输出作为下一个输入,依此类推。现在我想获得预测函数隐藏层的激活值。我正在使用以下代码来实现它,但它不起作用:
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 的输出,我认为这基本上是输出层数据集。 谁能告诉我代码有什么问题吗?
get_activations(next_prediction)
应该是 get_activations(X_test)
- 你想将输入传递给 get_activations
,而不是标签。