查看keras各种网络结构各层的名字方式


Posted in Python onJune 11, 2020

举例

base_model = ResNet50(weights=‘imagenet', include_top=True)
print(base_model.summary())

得到这个结果

查看keras各种网络结构各层的名字方式

补充知识:使用keras,在load_model()时,出现NameError: name '***' is not defined

是因为在构造模型是,使用了自定义的层,如Lambda()

# 文本相似度评估方式
def exponent_neg_manhattan_distance(sent_left, sent_middle, sent_right):
  '''基于曼哈顿空间距离计算两个字符串语义空间表示相似度计算'''
  return ((K.exp(-K.sum(K.abs(sent_left - sent_middle), axis=1, keepdims=True)) - K.exp(-K.sum(K.abs(sent_left - sent_right), axis=1, keepdims=True))) + 1) / 2
 
def bilstm_siamese_model():
  '''搭建孪生网络'''
  #可以在这里调参
  embedding_layer = Embedding(VOCAB_SIZE + 1,
                EMBEDDING_DIM,
                weights=[embedding_matrix],
                input_length=MAX_LENGTH,
                trainable=True, #原本为False
                mask_zero=True)
  #输入层
  left_input = Input(shape=(MAX_LENGTH,), dtype='float32', name="left_x") #(?, 25)
  middle_input = Input(shape=(MAX_LENGTH,), dtype='float32', name="middle_x") #(?, 25)
  right_input = Input(shape=(MAX_LENGTH,), dtype='float32', name='right_x')
  #嵌入层
  encoded_left = embedding_layer(left_input) #(?, 25, 300)
  encoded_middle = embedding_layer(middle_input) #(?, 25, 300)
  encoded_right = embedding_layer(right_input)
  # print(encoded_left)
  #孪生网络
  shared_lstm = create_base_network(input_shape=(MAX_LENGTH, EMBEDDING_DIM))
  left_output = shared_lstm(encoded_left)
  middle_output = shared_lstm(encoded_middle)
  right_output = shared_lstm(encoded_right)
 
  # 文本相似度评估方式
  distance = Lambda(lambda x: exponent_neg_manhattan_distance(x[0], x[1], x[2]),output_shape=lambda x: (x[0][0], 1))([left_output, middle_output, right_output]) #第二个lambda函数的输入参数不清楚,x[0][0]
  print('distance',distance)
  model = Model([left_input, middle_input, right_input], distance)
  model.compile(loss='binary_crossentropy',
         optimizer='nadam',
         metrics=['accuracy'])
  model.summary()
  return model

虽然之前已经定义好了exponent_neg_manhattan_distance(),但是在load_model()依然会报NameError: name 'exponent_neg_manhattan_distance' is not defined

解决办法:

查看keras各种网络结构各层的名字方式

在load_model的时候,加一个custom_objects参数就可以了,即

model = load_model(model_path,custom_objects={'exponent_neg_manhattan_distance': exponent_neg_manhattan_distance}) #对自定义层一定要说明

注:用Google搜bug比用baidu搜质量会高不少。

以上这篇查看keras各种网络结构各层的名字方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
基于hashlib模块--加密(详解)
Jun 21 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
对python文件读写的缓冲行为详解
Feb 13 Python
python多线程抽象编程模型详解
Mar 20 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
selenium+PhantomJS爬取豆瓣读书
Aug 26 Python
使用Python和百度语音识别生成视频字幕的实现
Apr 09 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
详解Python中import机制
Sep 11 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 Python
Python中requests库的用法详解
Jun 05 Python
python datetime时间格式的相互转换问题
Jun 11 #Python
完美解决keras保存好的model不能成功加载问题
Jun 11 #Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 #Python
Pyinstaller加密打包应用的示例代码
Jun 11 #Python
解决keras加入lambda层时shape的问题
Jun 11 #Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 #Python
keras slice layer 层实现方式
Jun 11 #Python
You might like
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
php设计模式之单例模式代码
2016/06/11 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
javascript innerText和innerHtml应用
2010/01/28 Javascript
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
vue实现分页加载效果
2019/12/24 Javascript
使用python实现扫描端口示例
2014/03/29 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
python对html过滤处理的方法
2018/10/21 Python
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
初中政治教学反思
2014/01/17 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
护理自荐信
2019/05/14 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis