如何确定每个输入在确定神经网络输出中的意义?

时间:2018-09-22 01:03:08

标签: python tensorflow machine-learning neural-network keras

我在Keras中有一个简单的神经网络,具有16个输入和1个输出。我希望能够找出这些输入中的哪个对确定输出最为重要(即更改哪个输入对输出的影响最大)。如何在Keras或TensorFlow中做到这一点?我知道我可以将经过训练的神经网络的权重转储到一个文件中,但这无济于事,因为权重只是从一个节点到下一个隐藏层中的另一个节点。

谢谢

Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, Y, test_size=.5)

model = Sequential()
model.add(Dense(20, activation='relu', input_dim=16))
model.add(Dense(10, activation='relu'))
model.add(Dense(5, activation='relu'))
model.add(Dense(1, activation='relu'))

model.compile(loss='mse', optimizer='rmsprop')
model.fit(Xtrain, Ytrain, validation_data=(Xtest,Ytest), epochs=200, batch_size=100, verbose=1)

Ypred = model.predict(Xtest)

1 个答案:

答案 0 :(得分:0)

这可能有点棘手,我不知道如何在Keras中做到这一点,而是将矩阵从输出单元(在可能的结果范围内)向输入单元倒退(与前馈相反)可以显示网络与每个结果关联的输入单位的模式。看看:https://github.com/makeyourownneuralnetwork/makeyourownneuralnetwork/blob/master/part3_neural_network_mnist_backquery.ipynb