Obtención de gradiente de salida del modelo con pesos w.r.t usando Keras

Estoy interesado en construir modelos de aprendizaje de refuerzo con la simplicidad de la API de Keras. Desafortunadamente, no puedo extraer el gradiente de la salida (no error) con respecto a los pesos. Encontré el siguiente código que realiza una función similar (Mapas de prominencia de redes neuronales (usando Keras))

get_output = theano.function([model.layers[0].input],model.layers[-1].output,allow_input_downcast=True)
fx = theano.function([model.layers[0].input] ,T.jacobian(model.layers[-1].output.flatten(),model.layers[0].input), allow_input_downcast=True)
grad = fx([trainingData])

Cualquier idea sobre cómo calcular el gradiente de la salida del modelo con respecto a los pesos para cada capa sería apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta