keras 获取某层输出 获取复用层的多次输出实例


Posted in Python onMay 23, 2020

官方文档很全面,搜索功能也很好。但是如果你想单独实现某个功能,根本无从搜寻。于是我写了这个笔记。从功能出发。

两个tensor经过一个layer实例会产生两个输出。

a = Input(shape=(280, 256))
b = Input(shape=(280, 256))
 
lstm = LSTM(32)
encoded_a = lstm(a)
encoded_b = lstm(b)
 
lstm.output

这个代码有错误,因为最后一行没有指定lstm这个layer实例的那个输出。

>> AttributeError: Layer lstm_1 has multiple inbound nodes,
hence the notion of "layer output" is ill-defined.
Use `get_output_at(node_index)` instead.

所以如果想要得到多个输出中的一个:

assert lstm.get_output_at(0) == encoded_a
assert lstm.get_output_at(1) == encoded_b

补充知识:kears训练中如何实时输出卷积层的结果?

在训练unet模型时,发现预测结果和真实结果几乎完全差距太大,想着打印每层输出的结果查看问题在哪?

但是发现kears只是提供了训练完成后在模型测试时输出每层的函数。并没有提供训练时的函数,同时本着不对原有代码进行太大改动。最后实现了这个方法。

即新建一个输出节点添加到现有的网络结构里面。

#新建一个打印层。
class PrintLayer(Layer):
	#初始化方法,不须改变
 def __init__(self, **kwargs):
  super(PrintLayer, self).__init__(**kwargs)
	#调用该层时执行的方法
 def call(self, x):
  x = tf.Print(x,[x],message="x is: ",summarize=65536)
  #调用tf的Print方法打印tensor方法,第一个参数为输入的x,第二个参数为要输出的参数,summarize参数为输出的元素个数。
  return x;
  #一定要返回tf.Print()函数返回的变量,不要直接使用传入的变量。
 
#接着在网络中引入
conv9 = Conv2D(2, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv9)
print11 = PrintLayer()(conv9)
conv10 = Conv2D(1, 1, activation = 'sigmoid')(print11)
#PrintLayer层处理的结果一定要在下一层用到,不然不会打印tensor。该结点可以加在任何结点之间。

以上这篇keras 获取某层输出 获取复用层的多次输出实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python http接口自动化脚本详解
Jan 02 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
windows下python安装小白入门教程
Sep 18 Python
Python定时任务工具之APScheduler使用方式
Jul 24 Python
python如何保证输入键入数字的方法
Aug 23 Python
Python3 pandas 操作列表实例详解
Sep 23 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
pytorch实现CNN卷积神经网络
Feb 19 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
sqlalchemy实现时间列自动更新教程
Sep 02 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 Python
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 #Python
keras小技巧——获取某一个网络层的输出方式
May 23 #Python
keras自定义回调函数查看训练的loss和accuracy方式
May 23 #Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
May 22 #Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 #Python
Softmax函数原理及Python实现过程解析
May 22 #Python
Python接口测试文件上传实例解析
May 22 #Python
You might like
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
python中常用检测字符串相关函数汇总
2015/04/15 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
numpy.transpose对三维数组的转置方法
2018/04/17 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
作风建设剖析材料
2014/10/06 职场文书
2014年公务员工作总结
2014/11/18 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书