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中处理字符串之endswith()方法的使用简介
May 18 Python
深入学习python的yield和generator
Mar 10 Python
PyCharm使用教程之搭建Python开发环境
Jun 07 Python
Python面向对象编程中关于类和方法的学习笔记
Jun 30 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
python修改字典键(key)的方法
Aug 05 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
python 实现汉诺塔游戏
Nov 28 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 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
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
javascript之AJAX框架使用说明
2010/04/24 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
常用jQuery代码分享
2015/07/14 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
Python GAE、Django导出Excel的方法
2008/11/24 Python
python算法学习之计数排序实例
2013/12/18 Python
python flask实现分页的示例代码
2018/08/02 Python
python绘制漏斗图步骤详解
2019/03/04 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
给分销商的致歉信
2014/01/14 职场文书
食品安全宣传标语
2014/06/07 职场文书
教育见习报告范文
2014/11/03 职场文书
浅谈Python协程asyncio
2021/06/20 Python
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS