Keract: Keras Activations + Gradients
by philipperemy
pip install keract
这是获取Keras模型(LSTM,转换网......)中每一层的激活(输出)和渐变的一个简单方法。
Github项目地址:
https://github.com/philipperemy/keract#get-activations-outputs-of-each-layer (点击链接可直接打开)
from keract import get_activationsget_activations(model, x)
输入为:
输出以字典形式呈现,包含输入x的每个model层的激活:
{ 'conv2d_1/Relu:0': np.array(...), 'conv2d_2/Relu:0': np.array(...), ..., 'dense_2/Softmax:0': np.array(...)}
键是层的名称,值是给定输入x对应的层的输出。
from keract import get_gradients_of_activationsget_gradients_of_activations(model, x, y)
输出以字典形式呈现,将每个可训练权重映射到其梯度值(关于x和y)。
提供的示例包括:
对于带有LeNet的MNIST,我们可以获取一批大小为128的激活:
conv2d_1/Relu:0(128, 26, 26, 32)
conv2d_2/Relu:0(128, 24, 24, 64)
max_pooling2d_1/MaxPool:0(128, 12, 12, 64)
dropout_1/cond/Merge:0(128, 12, 12, 64)
flatten_1/Reshape:0(128, 9216)
dense_1/Relu:0(128, 128)
dropout_2/cond/Merge:0(128, 128)
dense_2/Softmax:0(128, 10)
我们可以将激活具体化。以下是使用VGG16的另一个例子:
cd examplespython vgg16.py
一只猫
VGG16的第一个卷积层的输出。
此外,我们可以看见激活的热图:
cd examplespython heat_map.py