def __init__(self, model):
'''
:param model: Keras model.
This code makes a bunch of assumptions about the model:
- Model has single input
- Embedding is the first layer
- Model output is a scalar (logistic regression)
'''
input_tensor = model.input
embedding_tensor = model.layers[0](input_tensor)
output_tensor = embedding_tensor
for layer in model.layers[1:]:
output_tensor = layer(output_tensor)
grad_tensor, = tf.gradients(output_tensor, [embedding_tensor])
grad_sum_tensor = tf.reduce_sum(grad_tensor, reduction_indices=2)
self.model = model
self.input_tensor = input_tensor
self.grad_sum_tensor = grad_sum_tensor
评论列表
文章目录