Python 在确定神经网络的输出时,如何找到每个输入的重要性?

Python 在确定神经网络的输出时,如何找到每个输入的重要性?,python,tensorflow,machine-learning,neural-network,keras,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 = Sequenti

我有一个简单的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)

这可能有点棘手,我不知道如何在Keras中做到这一点,但将矩阵从输出单元(在可能结果的范围内)向后(前馈的相反方向)乘以输入单元可以显示网络与每个结果关联的输入单元的模式。看看: