前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github项目推荐 | Keract - Keras中的激活映射(层输出)和渐变

Github项目推荐 | Keract - Keras中的激活映射(层输出)和渐变

作者头像
AI研习社
发布2019-05-08 17:26:11
2K0
发布2019-05-08 17:26:11
举报
文章被收录于专栏:AI研习社AI研习社

Keract: Keras Activations + Gradients

by philipperemy

代码语言:javascript
复制
pip install keract

这是获取Keras模型(LSTM,转换网......)中每一层的激活(输出)和渐变的一个简单方法。

Github项目地址:

https://github.com/philipperemy/keract#get-activations-outputs-of-each-layer (点击链接可直接打开)

API

  • get_activations
  • get_gradients_of_trainable_weights
  • get_gradients_of_activations

get_activations 获取激活(每层的输出)

代码语言:javascript
复制
from keract import get_activationsget_activations(model, x)

输入为:

  • model是一个keras.models.Model对象。
  • x 是一个numpy数组,作为输入提供给模型,在多端输入的情况下,x是List类型。我们使用Keras约定(来进行预测、适应等......)。

输出以字典形式呈现,包含输入x的每个model层的激活:

代码语言:javascript
复制
{  'conv2d_1/Relu:0': np.array(...),  'conv2d_2/Relu:0': np.array(...),  ...,  'dense_2/Softmax:0': np.array(...)}

键是层的名称,值是给定输入x对应的层的输出。

获得权重梯度

  • model是一个keras.models.Model对象。
  • x输入数据(numpy数组)。 Keras约定。
  • y:标签(numpy数组)。 Keras约定。
代码语言:javascript
复制
from keract import get_gradients_of_activationsget_gradients_of_activations(model, x, y)

输出以字典形式呈现,将每个可训练权重映射到其梯度值(关于x和y)。

示例

提供的示例包括:

  • keras.models.Sequential - mnist.py
  • keras.models.Model - multi_inputs.py
  • 递归网络 - recurrent.py

对于带有LeNet的MNIST,我们可以获取一批大小为128的激活:

代码语言:javascript
复制
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的另一个例子:

代码语言:javascript
复制
cd examplespython vgg16.py

一只猫

VGG16的第一个卷积层的输出。

此外,我们可以看见激活的热图:

代码语言:javascript
复制
cd examplespython heat_map.py
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • API
    • get_activations 获取激活(每层的输出)
      • 获得权重梯度
      • 示例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档