代码之家  ›  专栏  ›  技术社区  ›  Halbort

计算每个输入路缘石的坡度

  •  0
  • Halbort  · 技术社区  · 5 年前

    我想能够访问keras神经网络的梯度函数。我想能够计算出在很多输入值下输出相对于输入的梯度。本质上,我希望能够计算梯度作为一个函数。

    model = Sequential()
    model.add(Dense(500, activation='relu'))
    model.add(Dense(500, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(1, activation='sigmoid'))
    
    model.compile(loss='binary_crossentropy', optimizer='adam',  metrics=['accuracy'])
    model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=2, verbose = 1)
    

    现在,我不想计算每个输入的输出,而是要计算每个输入的梯度。我该怎么做?

    这就是我试过的。

    grads = K.gradients(model.output, model.input)
    gradient_func = K.function([model.input], [grads[0]])
    print(gradient_func([x]))
    
    0 回复  |  直到 5 年前